diff options
| author | sophie <sophies@disroot.org> | 2026-08-30 19:59:05 +0200 |
|---|---|---|
| committer | sophie <sophies@disroot.org> | 2026-08-30 19:59:05 +0200 |
| commit | 34c54513085340fa1ef1e9feb8cca29999a9654a (patch) | |
| tree | 265eb942ad6e9d84080f6a46b29eb6e40bce0457 /hx | |
init
Diffstat (limited to 'hx')
| -rw-r--r-- | hx/.config/helix/config.toml | 43 | ||||
| -rw-r--r-- | hx/.config/helix/languages.toml | 15 | ||||
| -rw-r--r-- | hx/.config/helix/themes/dust.toml | 88 | ||||
| -rw-r--r-- | hx/.config/helix/themes/fortune-dusk.toml | 68 | ||||
| -rw-r--r-- | hx/.config/helix/themes/lackluster.toml | 167 | ||||
| -rw-r--r-- | hx/.config/helix/themes/lightluster.toml | 164 | ||||
| -rw-r--r-- | hx/.config/helix/themes/tsoding.toml | 169 |
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" |
