summaryrefslogtreecommitdiff
path: root/hx
diff options
context:
space:
mode:
Diffstat (limited to 'hx')
-rw-r--r--hx/.config/helix/config.toml43
-rw-r--r--hx/.config/helix/languages.toml15
-rw-r--r--hx/.config/helix/themes/dust.toml88
-rw-r--r--hx/.config/helix/themes/fortune-dusk.toml68
-rw-r--r--hx/.config/helix/themes/lackluster.toml167
-rw-r--r--hx/.config/helix/themes/lightluster.toml164
-rw-r--r--hx/.config/helix/themes/tsoding.toml169
7 files changed, 714 insertions, 0 deletions
diff --git a/hx/.config/helix/config.toml b/hx/.config/helix/config.toml
new file mode 100644
index 0000000..efef0f5
--- /dev/null
+++ b/hx/.config/helix/config.toml
@@ -0,0 +1,43 @@
+theme = "flatwhite"
+
+[editor]
+bufferline = "always"
+auto-completion = true
+color-modes = true
+
+[editor.auto-pairs]
+"(" = ")"
+"{" = "}"
+"[" = "]"
+
+[editor.statusline]
+left = ["mode"]
+right = ["diagnostics", "position", "total-line-numbers"]
+separator = "|"
+
+[editor.statusline.mode]
+normal = ">> NOR >>"
+insert = "|| INS ||"
+select = "<< SEL <<"
+
+[keys.normal]
+n = "move_char_left"
+e = "move_line_down"
+i = "move_line_up"
+o = "move_char_right"
+s = "insert_mode"
+r = "replace"
+a = "select_mode"
+t = "append_mode"
+h = "find_till_char"
+l = "open_below"
+L = "open_above"
+k = "move_next_word_end"
+K = "move_next_long_word_end"
+S = "select_regex"
+
+[keys.select]
+n = "extend_char_left"
+e = "extend_line_down"
+i = "extend_line_up"
+o = "extend_char_right"
diff --git a/hx/.config/helix/languages.toml b/hx/.config/helix/languages.toml
new file mode 100644
index 0000000..a816f1d
--- /dev/null
+++ b/hx/.config/helix/languages.toml
@@ -0,0 +1,15 @@
+[language-server.emmet-ls]
+command = "/nix/store/...-emmet-ls/bin/emmet-ls"
+args = ["--stdio"]
+
+[language-server.emmet-ls.config.format]
+"output.selfClosingStyle" = "xhtml"
+
+[[language]]
+name = "html"
+language-servers = [
+ "vscode-html-language-server",
+ "emmet-ls",
+]
+formatter = { command = "prettier", args = ["--parser", "html"] }
+auto-format = true
diff --git a/hx/.config/helix/themes/dust.toml b/hx/.config/helix/themes/dust.toml
new file mode 100644
index 0000000..84c5b04
--- /dev/null
+++ b/hx/.config/helix/themes/dust.toml
@@ -0,0 +1,88 @@
+
+"ui.dim" = { fg = "dim-black" }
+"ui.text" = { fg = "fg" }
+"ui.cursor.normal" = { bg = "#DDDBE6", fg = "bg"}
+"ui.cursor.insert" = { bg = "red", fg = "bg"}
+"ui.cursor.select" = { bg = "blue", fg = "bg"}
+"ui.cursor.primary.normal" = { bg = "#DDDBE6", fg = "bg"}
+"ui.cursor.primary.insert" = { bg = "red", fg = "bg"}
+"ui.cursor.primary.select" = { bg = "blue", fg = "bg"}
+"ui.selection" = { bg = "selection-indigo" }
+"ui.highlight" = { bg = "highlight-olive" }
+"ui.cursor.match" = { bg = "match-gray", modifiers = ["dim"] }
+"ui.statusline" = { fg = "fg", modifiers = ["dim"] }
+"ui.bufferline.active" = { fg = "blue"}
+"ui.statusline.inactive" = { fg = "magenta", modifiers = ["dim"]}
+"ui.statusline.normal" = { fg = "#DDDBE6" }
+"ui.statusline.insert" = { fg = "red" }
+"ui.statusline.select" = { fg = "blue" }
+"ui.popup" = { fg = "blue" }
+"ui.popup.info" = { fg = "blue", modifiers = ["dim"] }
+"ui.menu" = { fg = "fg", modifiers = ["dim"] }
+"ui.menu.selected" = { fg = "menu-select-black", bg = "dark-blue" }
+"ui.linenr" = { fg = "ash", modifiers = ["dim"] }
+"ui.linenr.selected" = { fg = "fg", modifiers = ["bold"] }
+"diagnostic" = { underline.style = "curl" }
+"diagnostic.warning" = { underline.style = "curl", modifiers = ["dim"] }
+"warning" = { fg = "yellow" }
+"error" = { fg = "red" }
+"info" = { fg = "fg" }
+"ui.help" = { fg = "" }
+
+attribute = { fg = "red" }
+type = { fg = "fg1" }
+constructor = { fg = "fg" }
+constant = { fg = "green" }
+string = { fg = "orchid", modifiers = ["italic"] }
+comment = { fg = "ash"}
+variable = { fg = "fg" }
+label = { fg = "fg" }
+punctuation = { fg = "fg2" }
+keyword = { fg = "lavender" }
+operator = { fg = "fg2" }
+function = { fg = "blue" }
+tag = { fg = "fg" }
+namespace = { fg = "fg" }
+special = { fg = "fg" }
+"storage.type" = { fg = "fg1" }
+"keyword.storage.type" = { fg = "fg1" }
+"type.builtin" = { fg = "fg1" }
+"variable.parameter" = { fg = "fg" }
+"variable.other.member" = { fg = "fg" }
+"variable.other.member.private" = { fg = "fg" }
+"constant.builtin.boolean" = { fg = "magenta" }
+"constant.builtin" = { fg = "magenta" }
+"constant.numeric" = { fg = "numeric-peach" }
+"type.parameter" = { fg = "fg" }
+"type.enum" = { fg = "fg" }
+"type.enum.variant" = { fg = "fg" }
+
+"markup.heading" = { fg = "white-yellow", modifiers = ["bold"] }
+"markup.bold" = { fg = "fg", modifiers = ["bold"] }
+"markup.italic" = { fg = "fg", modifiers = ["italic"] }
+"markup.raw" = { fg = "fg2" }
+"markup.quote" = { fg = "ash", modifiers = ["italic"] }
+"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
+"markup.link.text" = { fg = "dark-blue" }
+
+[palette]
+blue = "#B1E5F2"
+red = "#E6A79E"
+green = "#D6E7C6"
+magenta = "#E36397"
+white-yellow = "#EDF7B5"
+ash = "#777184"
+dark-blue = "#8E94F2"
+yellow = "#FFEF9F"
+fg = "#FFE9F3"
+fg1 = "#FFD6E9"
+fg2 = "#FFC2DE"
+bg = "#241623"
+lavender = "#B0A9C6"
+orchid = "#D9A8E0"
+dim-black = "#191019"
+menu-select-black = "#0f1110"
+selection-indigo = "#3B3F91"
+highlight-olive = "#3A463B"
+match-gray = "#C6C3D5"
+numeric-peach = "#F9D8C8"
diff --git a/hx/.config/helix/themes/fortune-dusk.toml b/hx/.config/helix/themes/fortune-dusk.toml
new file mode 100644
index 0000000..a267e64
--- /dev/null
+++ b/hx/.config/helix/themes/fortune-dusk.toml
@@ -0,0 +1,68 @@
+
+# fortune-dusk.toml — ported from fortune-dusk-theme.el
+
+# UI chrome
+"ui.background" = { bg = "#1E1A14" }
+"ui.text" = { fg = "#E8DFC8" }
+"ui.text.focus" = { fg = "#E8DFC8", modifiers = ["bold"] }
+"ui.cursor.primary" = { fg = "#1E1A14", bg = "#C4A030" }
+"ui.cursor.match" = { fg = "#C4A030", modifiers = ["underlined"] }
+"ui.selection.primary" = { bg = "#3A2E10" }
+"ui.cursorline.primary" = { bg = "#2A2318" }
+"ui.linenr" = { fg = "#8A9AA8" }
+"ui.linenr.selected" = { fg = "#C4A030", bg = "#2A2318" }
+"ui.statusline" = { fg = "#E8DFC8", bg = "#2E2618" }
+"ui.statusline.inactive" = { fg = "#A89880", bg = "#252018" }
+"ui.popup" = { bg = "#2A2318" }
+"ui.window" = { fg = "#4A3E28" }
+"ui.help" = { fg = "#E8DFC8", bg = "#2A2318" }
+"ui.menu" = { fg = "#E8DFC8", bg = "#2A2318" }
+"ui.menu.selected" = { fg = "#1E1A14", bg = "#C4A030" }
+"ui.virtual.whitespace" = { fg = "#4A3E28" }
+"ui.virtual.ruler" = { bg = "#252018" }
+"ui.selection" = {bg = "#3A2E10"}
+# Diagnostics
+"error" = { fg = "#D4706A" }
+"warning" = { fg = "#C87845" }
+"info" = { fg = "#3A9BAA" }
+"hint" = { fg = "#6B96C8" }
+
+# Diff
+"diff.plus" = { fg = "#7A9A6A" }
+"diff.minus" = { fg = "#D4706A" }
+"diff.delta" = { fg = "#C4A030" }
+
+# Syntax
+"comment" = { fg = "#A89880", modifiers = ["italic"] }
+"constant" = { fg = "#B08040" }
+"constant.builtin" = { fg = "#B08040", modifiers = ["bold"] }
+"string" = { fg = "#A87FD4" }
+"string.special" = { fg = "#C87845" }
+"keyword" = { fg = "#C8A400" }
+"keyword.control" = { fg = "#C8A400", modifiers = ["bold"] }
+"operator" = { fg = "#E8DFC8" }
+"function" = { fg = "#3A9BAA" }
+"function.builtin" = { fg = "#C47BA0" }
+"function.macro" = { fg = "#C4A030" }
+"tag" = { fg = "#C8A400" }
+"namespace" = { fg = "#8A9AA8" }
+"type" = { fg = "#B08040" }
+"type.builtin" = { fg = "#B08040", modifiers = ["bold"] }
+"constructor" = { fg = "#C47BA0" }
+"variable" = { fg = "#6B96C8" }
+"variable.builtin" = { fg = "#6B96C8", modifiers = ["bold"] }
+"variable.parameter" = { fg = "#6B96C8", modifiers = ["italic"] }
+"variable.other.member" = { fg = "#E8DFC8" }
+"label" = { fg = "#8A9AA8" }
+"punctuation" = { fg = "#8A9AA8" }
+"punctuation.delimiter" = { fg = "#8A9AA8" }
+"punctuation.bracket" = { fg = "#A89880" }
+"special" = { fg = "#C87845" }
+
+# Markdown/markup (docs, if you touch prose in hx at all)
+"markup.heading" = { fg = "#C4A030", modifiers = ["bold"] }
+"markup.list" = { fg = "#C8A400" }
+"markup.bold" = { modifiers = ["bold"] }
+"markup.italic" = { modifiers = ["italic"] }
+"markup.link.url" = { fg = "#6B96C8", modifiers = ["underlined"] }
+"markup.raw" = { fg = "#B08040" }
diff --git a/hx/.config/helix/themes/lackluster.toml b/hx/.config/helix/themes/lackluster.toml
new file mode 100644
index 0000000..5d28026
--- /dev/null
+++ b/hx/.config/helix/themes/lackluster.toml
@@ -0,0 +1,167 @@
+# lackluster — a Helix port of lackluster.nvim (https://github.com/slugbyte/lackluster.nvim)
+# contrast pass: keyword, gray4, gray5 brightened for readability; gray1 nudged for ruler visibility
+
+"annotation" = { fg = "keyword" }
+"attribute" = { fg = "keyword" }
+
+"comment" = { fg = "comment" }
+
+"constant" = { fg = "gray7" }
+"constant.character" = { fg = "lack" }
+"constant.character.escape" = { fg = "green" }
+"constant.macro" = { fg = "keyword" }
+"constructor" = { fg = "gray6" }
+
+"definition" = { underline = { color = "gray7" } }
+
+"diagnostic" = { underline = { color = "gray4", style = "curl" } }
+"diagnostic.error" = { underline = { color = "red", style = "curl" } }
+"diagnostic.warning" = { underline = { color = "orange", style = "curl" } }
+"diagnostic.info" = { underline = { color = "gray6", style = "curl" } }
+"diagnostic.hint" = { underline = { color = "gray6", style = "curl" } }
+"diagnostic.deprecated" = { underline = { color = "orange", style = "curl" } }
+"diagnostic.unnecessary" = { fg = "gray4" }
+
+"error" = { fg = "red" }
+"warning" = { fg = "orange" }
+"info" = { fg = "luster" }
+"hint" = { fg = "gray6" }
+
+"diff.plus" = { fg = "green" }
+"diff.minus" = { fg = "orange" }
+"diff.delta" = { fg = "gray6" }
+
+"function" = { fg = "luster" }
+"function.builtin" = { fg = "gray5" }
+"function.macro" = { fg = "gray5" }
+
+"keyword" = { fg = "keyword" }
+"keyword.control.import" = { fg = "keyword" }
+"keyword.control.return" = { fg = "yellow" }
+"keyword.control.exception" = { fg = "yellow" }
+
+"label" = { fg = "gray5" }
+
+"markup.bold" = { fg = "gray4", modifiers = ["bold"] }
+"markup.heading" = { fg = "gray5" }
+"markup.italic" = { fg = "gray4" }
+"markup.link.text" = { fg = "gray6" }
+"markup.link.url" = { fg = "slate", modifiers = ["underlined"] }
+"markup.raw" = { fg = "gray7" }
+"markup.strikethrough" = { fg = "gray4", modifiers = ["crossed_out"] }
+"markup.list" = { fg = "gray4" }
+"markup.list.checked" = { fg = "green" }
+"markup.list.unchecked" = { fg = "red" }
+"markup.quote" = { fg = "gray6" }
+
+"module" = { fg = "gray7" }
+"namespace" = { fg = "gray7" }
+
+"operator" = { fg = "gray6" }
+
+"punctuation" = { fg = "gray6" }
+"punctuation.special" = { fg = "gray6" }
+
+"special" = { fg = "lack" }
+
+"string" = { fg = "lack" }
+"string.regexp" = { fg = "green" }
+"string.special" = { fg = "green" }
+"string.symbol" = { fg = "gray7" }
+
+"tag" = { fg = "gray5" }
+
+"type" = { fg = "gray7" }
+"type.builtin" = { fg = "gray7" }
+"type.enum.variant" = { fg = "gray6" }
+
+"ui.background" = { fg = "gray8", bg = "bg_main" }
+"ui.text" = { fg = "gray8" }
+"ui.text.focus" = { fg = "gray8", bg = "bg_cursorline" }
+"ui.text.directory" = { fg = "slate" }
+
+"ui.virtual.whitespace" = { fg = "whitespace" }
+"ui.virtual.ruler" = { bg = "gray1" }
+"ui.virtual.jump-label" = { fg = "bg_popup", bg = "blue", modifiers = ["bold"] }
+"ui.virtual.inlay-hint" = { fg = "gray6" }
+"ui.virtual.wrap" = { fg = "gray5" }
+"ui.virtual.indent-guide" = { fg = "gray2" }
+
+"ui.linenr" = { fg = "gray4" }
+"ui.linenr.selected" = { fg = "gray7" }
+
+"ui.statusline" = { fg = "gray7", bg = "bg_statusline" }
+"ui.statusline.inactive" = { fg = "gray4", bg = "gray1" }
+"ui.statusline.normal" = { fg = "gray7", bg = "bg_statusline" }
+"ui.statusline.insert" = { fg = "black", bg = "blue" }
+"ui.statusline.select" = { fg = "black", bg = "green" }
+
+"ui.bufferline" = { fg = "gray4", bg = "gray2" }
+"ui.bufferline.active" = { fg = "gray1", bg = "gray8" }
+"ui.bufferline.background" = { bg = "bg_menu" }
+
+
+"ui.cursor" = { fg = "black", bg = "gray8" }
+"ui.cursor.primary" = { fg = "black", bg = "gray8", modifiers = ["bold"] }
+"ui.cursor.match" = { fg = "gray8", bg = "lack" }
+
+"ui.cursor.normal" = { fg = "black", bg = "gray6" }
+"ui.cursor.insert" = { fg = "black", bg = "gray6" }
+"ui.cursor.select" = { fg = "black", bg = "gray6" }
+
+"ui.cursor.primary.normal" = { fg = "black", bg = "gray8", modifiers = ["bold"] }
+"ui.cursor.primary.insert" = { fg = "black", bg = "blue", modifiers = ["bold"] }
+"ui.cursor.primary.select" = { fg = "black", bg = "green", modifiers = ["bold"] }
+"ui.cursorline" = { bg = "gray1" }
+"ui.cursorline.primary" = { bg = "bg_cursorline" }
+
+"ui.selection" = { fg = "black", bg = "gray6" }
+"ui.selection.primary" = { fg = "black", bg = "lack" }
+
+"ui.highlight" = { bg = "lack" }
+
+"ui.help" = { fg = "gray6", bg = "bg_popup" }
+"ui.popup" = { fg = "gray6", bg = "bg_popup" }
+"ui.window" = { fg = "gray4" }
+
+"ui.menu" = { fg = "gray6", bg = "bg_menu" }
+"ui.menu.selected" = { fg = "black", bg = "gray8", modifiers = ["bold"] }
+
+"ui.picker.header.column" = { underline = { style = "line" } }
+"ui.picker.header.column.active" = { modifiers = ["bold"], underline = { style = "line" } }
+
+"variable" = { fg = "gray8" }
+"variable.builtin" = { fg = "gray8" }
+"variable.other.member" = { fg = "gray7" }
+"variable.parameter" = { fg = "param" }
+
+
+[palette]
+lack = "#708090"
+slate = "#7f92a3"
+luster = "#deeeed"
+orange = "#ffaa88"
+yellow = "#abab77"
+green = "#789978"
+blue = "#7788AA"
+red = "#D70000"
+
+black = "#000000"
+gray1 = "#141414"
+gray2 = "#191919"
+gray3 = "#2a2a2a"
+gray4 = "#606060"
+gray5 = "#727272"
+gray6 = "#7a7a7a"
+gray7 = "#aaaaaa"
+gray8 = "#cccccc"
+gray9 = "#DDDDDD"
+bg_main = "#101010"
+bg_menu = "#191919"
+bg_popup = "#1A1A1A"
+bg_statusline = "#242424"
+bg_cursorline = "#191919"
+comment = "#7a7a7a"
+keyword = "#8a8a8a"
+param = "#8E8E8E"
+whitespace = "#202020"
diff --git a/hx/.config/helix/themes/lightluster.toml b/hx/.config/helix/themes/lightluster.toml
new file mode 100644
index 0000000..717966f
--- /dev/null
+++ b/hx/.config/helix/themes/lightluster.toml
@@ -0,0 +1,164 @@
+"annotation" = { fg = "keyword" }
+"attribute" = { fg = "keyword" }
+
+"comment" = { fg = "comment" }
+
+"constant" = { fg = "gray7" }
+"constant.character" = { fg = "lack" }
+"constant.character.escape" = { fg = "green" }
+"constant.macro" = { fg = "keyword" }
+"constructor" = { fg = "gray6" }
+
+"definition" = { underline = { color = "gray7" } }
+
+"diagnostic" = { underline = { color = "gray4", style = "curl" } }
+"diagnostic.error" = { underline = { color = "red", style = "curl" } }
+"diagnostic.warning" = { underline = { color = "orange", style = "curl" } }
+"diagnostic.info" = { underline = { color = "gray6", style = "curl" } }
+"diagnostic.hint" = { underline = { color = "gray6", style = "curl" } }
+"diagnostic.deprecated" = { underline = { color = "orange", style = "curl" } }
+"diagnostic.unnecessary" = { fg = "gray4" }
+
+"error" = { fg = "red" }
+"warning" = { fg = "orange" }
+"info" = { fg = "luster" }
+"hint" = { fg = "gray6" }
+
+"diff.plus" = { fg = "green" }
+"diff.minus" = { fg = "orange" }
+"diff.delta" = { fg = "gray6" }
+
+"function" = { fg = "luster" }
+"function.builtin" = { fg = "gray5" }
+"function.macro" = { fg = "gray5" }
+
+"keyword" = { fg = "keyword" }
+"keyword.control.import" = { fg = "keyword" }
+"keyword.control.return" = { fg = "yellow" }
+"keyword.control.exception" = { fg = "yellow" }
+
+"label" = { fg = "gray5" }
+
+"markup.bold" = { fg = "gray4", modifiers = ["bold"] }
+"markup.heading" = { fg = "gray5" }
+"markup.italic" = { fg = "gray4" }
+"markup.link.text" = { fg = "gray6" }
+"markup.link.url" = { fg = "slate", modifiers = ["underlined"] }
+"markup.raw" = { fg = "gray7" }
+"markup.strikethrough" = { fg = "gray4", modifiers = ["crossed_out"] }
+"markup.list" = { fg = "gray4" }
+"markup.list.checked" = { fg = "green" }
+"markup.list.unchecked" = { fg = "red" }
+"markup.quote" = { fg = "gray6" }
+
+"module" = { fg = "gray7" }
+"namespace" = { fg = "gray7" }
+
+"operator" = { fg = "gray6" }
+
+"punctuation" = { fg = "gray6" }
+"punctuation.special" = { fg = "gray6" }
+
+"special" = { fg = "lack" }
+
+"string" = { fg = "lack" }
+"string.regexp" = { fg = "green" }
+"string.special" = { fg = "green" }
+"string.symbol" = { fg = "gray7" }
+
+"tag" = { fg = "gray5" }
+
+"type" = { fg = "gray7" }
+"type.builtin" = { fg = "gray7" }
+"type.enum.variant" = { fg = "gray6" }
+
+"ui.background" = { fg = "gray8", bg = "bg_main" }
+"ui.text" = { fg = "gray8" }
+"ui.text.focus" = { fg = "gray8", bg = "bg_cursorline" }
+"ui.text.directory" = { fg = "slate" }
+
+"ui.virtual.whitespace" = { fg = "whitespace" }
+"ui.virtual.ruler" = { bg = "gray1" }
+"ui.virtual.jump-label" = { fg = "bg_main", bg = "blue", modifiers = ["bold"] }
+"ui.virtual.inlay-hint" = { fg = "gray6" }
+"ui.virtual.wrap" = { fg = "gray5" }
+"ui.virtual.indent-guide" = { fg = "gray2" }
+
+"ui.linenr" = { fg = "gray4" }
+"ui.linenr.selected" = { fg = "gray7" }
+
+"ui.statusline" = { fg = "gray7", bg = "bg_statusline" }
+"ui.statusline.inactive" = { fg = "gray4", bg = "gray1" }
+"ui.statusline.normal" = { fg = "gray7", bg = "bg_statusline" }
+"ui.statusline.insert" = { fg = "bg_main", bg = "blue" }
+"ui.statusline.select" = { fg = "bg_main", bg = "green" }
+
+"ui.bufferline" = { fg = "gray4", bg = "gray2" }
+"ui.bufferline.active" = { fg = "gray1", bg = "gray8" }
+"ui.bufferline.background" = { bg = "bg_menu" }
+
+
+"ui.cursor" = { fg = "bg_main", bg = "gray8" }
+"ui.cursor.primary" = { fg = "bg_main", bg = "gray8", modifiers = ["bold"] }
+"ui.cursor.match" = { fg = "bg_main", bg = "lack" }
+
+"ui.cursor.normal" = { fg = "bg_main", bg = "gray6" }
+"ui.cursor.insert" = { fg = "bg_main", bg = "gray6" }
+"ui.cursor.select" = { fg = "bg_main", bg = "gray6" }
+
+"ui.cursor.primary.normal" = { fg = "bg_main", bg = "gray8", modifiers = ["bold"] }
+"ui.cursor.primary.insert" = { fg = "bg_main", bg = "blue", modifiers = ["bold"] }
+"ui.cursor.primary.select" = { fg = "bg_main", bg = "green", modifiers = ["bold"] }
+"ui.cursorline" = { bg = "gray1" }
+"ui.cursorline.primary" = { bg = "bg_cursorline" }
+
+"ui.selection" = { fg = "bg_main", bg = "gray6" }
+"ui.selection.primary" = { fg = "bg_main", bg = "lack" }
+
+"ui.highlight" = { bg = "lack" }
+
+"ui.help" = { fg = "gray6", bg = "bg_popup" }
+"ui.popup" = { fg = "gray6", bg = "bg_popup" }
+"ui.window" = { fg = "gray4" }
+
+"ui.menu" = { fg = "gray6", bg = "bg_menu" }
+"ui.menu.selected" = { fg = "bg_main", bg = "gray8", modifiers = ["bold"] }
+
+"ui.picker.header.column" = { underline = { style = "line" } }
+"ui.picker.header.column.active" = { modifiers = ["bold"], underline = { style = "line" } }
+
+"variable" = { fg = "gray8" }
+"variable.builtin" = { fg = "gray8" }
+"variable.other.member" = { fg = "gray7" }
+"variable.parameter" = { fg = "param" }
+
+
+[palette]
+lack = "#5b6a78"
+slate = "#4d6478"
+luster = "#1f6b66"
+orange = "#c1521f"
+yellow = "#7a6a1f"
+green = "#5f7d5f"
+blue = "#5b6b93"
+red = "#c30000"
+
+black = "#000000"
+gray1 = "#eaeae6"
+gray2 = "#e0ded8"
+gray3 = "#d0cec8"
+gray4 = "#8c8c86"
+gray5 = "#7e7e78"
+gray6 = "#6b6b66"
+gray7 = "#55554f"
+gray8 = "#2b2b28"
+gray9 = "#1a1a17"
+bg_main = "#f2f0ec"
+bg_menu = "#e9e7e1"
+bg_popup = "#eeece6"
+bg_statusline = "#e2e0da"
+bg_cursorline = "#eeece6"
+comment = "#8a8a82"
+keyword = "#4a4a44"
+param = "#6e6e68"
+whitespace = "#e6e4de"
diff --git a/hx/.config/helix/themes/tsoding.toml b/hx/.config/helix/themes/tsoding.toml
new file mode 100644
index 0000000..573ab06
--- /dev/null
+++ b/hx/.config/helix/themes/tsoding.toml
@@ -0,0 +1,169 @@
+"annotation" = { fg = "attr" }
+"attribute" = { fg = "attr" }
+
+"comment" = { fg = "comment", modifiers = ["italic"] }
+
+"constant" = { fg = "muted2" }
+"constant.character" = { fg = "fg" }
+"constant.character.escape" = { fg = "fg" }
+"constant.macro" = { fg = "yellow" }
+"constructor" = { fg = "fg" }
+
+"definition" = { underline = { color = "muted" } }
+
+"diagnostic" = { underline = { color = "linenr", style = "curl" } }
+"diagnostic.error" = { underline = { color = "red", style = "curl" } }
+"diagnostic.warning" = { underline = { color = "warning", style = "curl" } }
+"diagnostic.info" = { underline = { color = "info", style = "curl" } }
+"diagnostic.hint" = { underline = { color = "muted", style = "curl" } }
+"diagnostic.deprecated" = { underline = { color = "warning", style = "curl" } }
+"diagnostic.unnecessary" = { fg = "linenr" }
+
+"error" = { fg = "red" }
+"warning" = { fg = "warning" }
+"info" = { fg = "info" }
+"hint" = { fg = "muted" }
+
+"diff.plus" = { fg = "diff_add" }
+"diff.minus" = { fg = "diff_delete" }
+"diff.delta" = { fg = "diff_modified" }
+
+"function" = { fg = "fg" }
+"function.builtin" = { fg = "fg" }
+"function.macro" = { fg = "muted2" }
+
+"keyword" = { fg = "keyword" }
+"keyword.control" = { fg = "yellow", modifiers = ["bold"] }
+"keyword.control.import" = { fg = "yellow", modifiers = ["italic"] }
+"keyword.control.return" = { fg = "yellow" }
+"keyword.control.exception" = { fg = "yellow" }
+"keyword.operator" = { fg = "muted2" }
+
+"label" = { fg = "fg" }
+
+"markup.bold" = { fg = "fg", modifiers = ["bold"] }
+"markup.heading" = { fg = "fg" }
+"markup.italic" = { fg = "yellow", modifiers = ["italic"] }
+"markup.link.text" = { fg = "comment" }
+"markup.link.url" = { fg = "green", modifiers = ["underlined"] }
+"markup.raw" = { fg = "green" }
+"markup.strikethrough" = { fg = "fg_dim", modifiers = ["crossed_out"] }
+"markup.list" = { fg = "fg" }
+"markup.list.checked" = { fg = "green" }
+"markup.list.unchecked" = { fg = "red" }
+"markup.quote" = { fg = "comment" }
+
+"module" = { fg = "namespace" } # from semanticTokenColors.namespace (#919191)
+"namespace" = { fg = "namespace" }
+
+"operator" = { fg = "muted2" } # was plain "fg" — same fix as keyword.operator above
+
+"punctuation" = { fg = "muted2" } # ⚠ was plain "fg". json defines this twice: #FFB459 then
+ # #BFC5BF later — took the later one. This is a BIG one
+ # for rust specifically, since punctuation (::, <>, (), ;)
+ # is a huge fraction of visible tokens.
+"punctuation.special" = { fg = "yellow" }
+
+"special" = { fg = "yellow" }
+
+"string" = { fg = "green" }
+"string.regexp" = { fg = "green" }
+"string.special" = { fg = "green" }
+"string.symbol" = { fg = "fg" }
+
+"tag" = { fg = "fg" }
+
+"type" = { fg = "keyword" } # ⚠ genuinely ambiguous: json's tokenColors resolve type-ish
+ # scopes to #EAE2B9 (final override), but semanticTokenColors.type
+ # separately says #bfc5bf. These are two different rendering
+ # layers in VSCode that happened to diverge. I went with the
+ # tokenColors value since that's what actually paints without
+ # semantic highlighting engaged. Swap to "muted2" if types
+ # look wrong to you.
+"type.builtin" = { fg = "keyword" }
+"type.enum.variant" = { fg = "muted2" }
+
+# --- ui.* section unchanged from your original — this is Helix-specific chrome,
+# not something the vscode json's `colors` block can inform ---
+"ui.background" = { fg = "fg", bg = "bg" }
+"ui.text" = { fg = "fg_dim" }
+"ui.text.focus" = { fg = "white", bg = "bg_cursorline" }
+"ui.text.directory" = { fg = "muted" }
+"ui.virtual.whitespace" = { fg = "whitespace" }
+"ui.virtual.ruler" = { bg = "bg_dark" }
+"ui.virtual.jump-label" = { fg = "black", bg = "yellow", modifiers = ["bold"] }
+"ui.virtual.inlay-hint" = { fg = "linenr", modifiers = ["italic"] }
+"ui.virtual.wrap" = { fg = "linenr" }
+"ui.virtual.indent-guide" = { fg = "indent_guide" }
+"ui.linenr" = { fg = "linenr" }
+"ui.linenr.selected" = { fg = "yellow", modifiers = ["bold"] }
+"ui.statusline" = { fg = "white", bg = "bg_statusline" }
+"ui.statusline.inactive" = { fg = "fg_dim", bg = "bg" }
+"ui.statusline.normal" = { fg = "black", bg = "yellow", modifiers = ["bold"] }
+"ui.statusline.insert" = { fg = "black", bg = "green", modifiers = ["bold"] }
+"ui.statusline.select" = { fg = "black", bg = "muted", modifiers = ["bold"] }
+"ui.bufferline" = { fg = "tab_inactive", bg = "bg_light" }
+"ui.bufferline.active" = { fg = "white", bg = "bg" }
+"ui.bufferline.background" = { bg = "bg_light" }
+"ui.cursor" = { fg = "black", bg = "yellow" }
+"ui.cursor.primary" = { fg = "black", bg = "yellow", modifiers = ["bold"] }
+"ui.cursor.match" = { fg = "yellow", bg = "selection" }
+"ui.cursor.normal" = { fg = "black", bg = "fg" }
+"ui.cursor.insert" = { fg = "black", bg = "white" }
+"ui.cursor.select" = { fg = "black", bg = "muted" }
+"ui.cursor.primary.normal" = { fg = "black", bg = "yellow", modifiers = ["bold"] }
+"ui.cursor.primary.insert" = { fg = "black", bg = "green", modifiers = ["bold"] }
+"ui.cursor.primary.select" = { fg = "black", bg = "muted", modifiers = ["bold"] }
+"ui.cursorline" = { bg = "bg_cursorline" }
+"ui.cursorline.primary" = { bg = "bg_cursorline" }
+"ui.selection" = { bg = "selection" }
+"ui.selection.primary" = { bg = "selection" }
+"ui.highlight" = { bg = "selection" }
+"ui.help" = { fg = "fg", bg = "bg_light" }
+"ui.popup" = { fg = "fg", bg = "bg_light" }
+"ui.window" = { fg = "selection" }
+"ui.menu" = { fg = "fg_dim", bg = "bg_light" }
+"ui.menu.selected" = { fg = "white", bg = "selection", modifiers = ["bold"] }
+"ui.picker.header.column" = { underline = { style = "line" } }
+"ui.picker.header.column.active" = { modifiers = ["bold"], underline = { style = "line" } }
+
+"variable" = { fg = "fg" } # no json scope — left as-is, deliberate design
+"variable.builtin" = { fg = "muted2" } # was "muted" (#949bb0) — json's variable.language final = #bfc5bf
+"variable.other.member" = { fg = "fg" }
+"variable.parameter" = { fg = "param", modifiers = ["italic"] } # from semanticTokenColors.parameter
+
+[palette]
+bg = "#181818"
+bg_dark = "#1e1e1e"
+bg_light = "#252526"
+bg_statusline = "#181818"
+bg_cursorline = "#1f1e1e"
+
+fg = "#e8e8e8" # was #d4d4d4 — updated to json's default token color
+fg_dim = "#cccccc"
+muted = "#949bb0" # kept for your existing ui.* uses
+muted2 = "#bfc5bf" # NEW — json's grey for punctuation/operator/type/constant
+namespace = "#919191" # NEW — from semanticTokenColors.namespace
+param = "#e2e2e2" # NEW — from semanticTokenColors.parameter
+attr = "#e8e8e8" # NEW — no json source, using fg-ish tone; change if you want attrs to pop more
+linenr = "#b3b3b3"
+tab_inactive = "#8a8a8a"
+
+comment = "#ff9b21"
+yellow = "#ffdd33"
+keyword = "#EAE2B9" # NEW — generic keyword/type color from json's final override
+green = "#79bf46"
+red = "#f44747"
+warning = "#ff4500"
+info = "#75beff"
+
+indent_guide = "#404040"
+whitespace = "#3a3a3a"
+selection = "#504945"
+
+diff_add = "#81b88b"
+diff_delete = "#c74e39"
+diff_modified = "#e2c08d"
+
+white = "#ffffff"
+black = "#000000"