├── .github
├── FUNDING.yml
└── readme.md
├── .gitignore
├── LICENSE
├── config.toml
├── flake.lock
├── flake.nix
├── language.toml
└── themes
├── catppuccin_mocha.toml
├── gruvbox_mix_dark.toml
├── non_background.toml
├── rose_pine.toml
└── sprit_glow.toml
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | ko_fi: roshantiwaree
2 | github: codedsprit
3 |
--------------------------------------------------------------------------------
/.github/readme.md:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | ```bash
14 | git clone https://github.com/codedsprit/hx ~/.config/helix
15 | # health check
16 | hx --health
17 | ```
18 | ```bash
19 | nix develop github:codedsprit/hx
20 | ```
21 |
22 |
23 | ## 🍦 Tips
24 |
25 | - Helix ***``Runtimes``*** are essential, you can check this [**``here``**](https://docs.helix-editor.com/building-from-source.html).
26 | - Add ***``X``*** [**``language server``**](https://github.com/helix-editor/helix/blob/master/languages.toml) in [**``language.toml``**](https://github.com/codedsprit/hx/blob/main/language.toml)
27 | - You can also consider checking [**``helix-docs``**](https://docs.helix-editor.com/title-page.html)
28 | ```toml
29 | [[language]]
30 | name = "rust"
31 | language-servers = ["rust-analyzer" ] # lsp for rust-lang
32 | formatter = { command = "rustfmt" } # formatter
33 | ```
34 |
35 |
36 |

37 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | runtime/
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | MIT License
3 |
4 | Copyright (c) 2023 @codedsprit < github.com/codedsprit >
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 |
--------------------------------------------------------------------------------
/config.toml:
--------------------------------------------------------------------------------
1 | # ┓ ┓ •
2 | # ┏┏┓┏┫┏┓┏┫┏┏┓┏┓┓╋
3 | # ┗┗┛┗┻┗ ┗┻┛┣┛┛ ┗┗
4 | # ┛ helix(hx) config
5 | # @codedsprit/hx
6 |
7 | theme = "non_background"
8 |
9 | [editor]
10 | auto-save = true
11 | auto-format = true
12 | auto-completion = true
13 | bufferline = "multiple"
14 | color-modes = true
15 | completion-replace = true
16 | cursorcolumn = false
17 | cursorline = false
18 | line-number = "relative"
19 | mouse = true
20 | #rulers = [79]
21 | true-color = true
22 |
23 |
24 |
25 | [editor.whitespace.render]
26 | space = "none"
27 | nbsp = "none"
28 | tab = "none"
29 | newline = "none"
30 |
31 | [editor.whitespace.characters]
32 | space = "·"
33 | nbsp = "⍽"
34 | tab = "→"
35 | newline = "⏎"
36 | tabpad = "·" # Tabs will look like "→···" (depending on tab width)
37 |
38 | [editor.file-picker]
39 | hidden = false
40 | git-ignore = true
41 | git-global = false
42 |
43 | [editor.statusline]
44 | left = []
45 | right = [
46 | "file-type"
47 | ]
48 | separator = "╎"
49 | mode.normal = "NORMAL"
50 | mode.insert = "INSERT"
51 | mode.select = "SELECT"
52 |
53 | [editor.lsp]
54 | display-messages = true
55 | display-inlay-hints = true
56 |
57 | [editor.cursor-shape]
58 | insert = "bar"
59 |
60 | [editor.indent-guides]
61 | render = true
62 | character = "╎" # Some characters that work well: "▏", "┆", "┊", "╎"
63 | skip-levels = 0
64 |
65 | [editor.soft-wrap]
66 | enable = true
67 | max-wrap = 10 # increase value to reduce forced mid-word wrapping
68 | max-indent-retain = 40
69 |
70 | [keys.normal]
71 | # esc is remapped to capslock locally
72 | esc = ["collapse_selection", "keep_primary_selection", ":w"]
73 | C-v = "vsplit"
74 | C-h = "jump_view_left"
75 | C-j = "jump_view_down"
76 | C-k = "jump_view_up"
77 | C-l = "jump_view_right"
78 | "C-," = "goto_previous_buffer"
79 | "C-." = "goto_next_buffer"
80 | "K" = "insert_newline"
81 | # Move line up/down using A-k, A-j
82 | "A-k" = [
83 | "extend_to_line_bounds",
84 | "delete_selection",
85 | "move_line_up",
86 | "paste_before"
87 | ]
88 | "A-j" = [
89 | "extend_to_line_bounds",
90 | "delete_selection",
91 | "move_line_down",
92 | "paste_before"
93 | ]
94 |
95 | [keys.normal.g]
96 | q = ":bc"
97 | Q = ":bc!"
98 |
99 | # Remove vscode "training wheels"
100 | # Comment this to enable arrow navigation in insert mode
101 | [keys.insert]
102 | j = { j = "normal_mode" }
103 | "C-space" = "completion"
104 | A-b = ["move_prev_word_start", "collapse_selection"]
105 | A-f = ["move_next_word_end", "move_char_right"]
106 | C-a = "goto_first_nonwhitespace"
107 | C-b = "move_char_left"
108 | C-d = "delete_char_forward"
109 | C-e = "goto_line_end_newline"
110 | C-f = "move_char_right"
111 | C-n = "move_line_down"
112 | C-p = "move_line_up"
113 |
114 |
115 | # Config Mode
116 | [keys.normal."C-backspace"]
117 | r = [":config-reload", ":reload-all"]
118 | o = ":config-open"
119 | l = ":o ~/.config/helix/languages.toml"
120 | C-g = [":new", ":insert-output lazygit", ":buffer-close", ":redraw"]
121 |
--------------------------------------------------------------------------------
/flake.lock:
--------------------------------------------------------------------------------
1 | {
2 | "nodes": {
3 | "nixpkgs": {
4 | "locked": {
5 | "lastModified": 1738142207,
6 | "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
7 | "owner": "nixos",
8 | "repo": "nixpkgs",
9 | "rev": "9d3ae807ebd2981d593cddd0080856873139aa40",
10 | "type": "github"
11 | },
12 | "original": {
13 | "owner": "nixos",
14 | "ref": "nixos-unstable",
15 | "repo": "nixpkgs",
16 | "type": "github"
17 | }
18 | },
19 | "root": {
20 | "inputs": {
21 | "nixpkgs": "nixpkgs"
22 | }
23 | }
24 | },
25 | "root": "root",
26 | "version": 7
27 | }
28 |
--------------------------------------------------------------------------------
/flake.nix:
--------------------------------------------------------------------------------
1 | {
2 | inputs = {
3 | nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
4 | };
5 |
6 | outputs =
7 | { nixpkgs, ... }:
8 | {
9 | devShells =
10 | nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]
11 | (
12 | system:
13 | let
14 | pkgs = import nixpkgs { inherit system; };
15 | in
16 | {
17 | default = pkgs.mkShell {
18 | packages = with pkgs; [
19 | helix
20 | ];
21 | shellHook = ''
22 | [ -d ~/.config/helix ] && mv ~/.config/helix ~/.config/helix.bak || true
23 | git clone --depth=1 https://github.com/codedsprit/hx ~/.config/helix
24 | '';
25 | };
26 | }
27 | );
28 | };
29 | }
30 |
--------------------------------------------------------------------------------
/language.toml:
--------------------------------------------------------------------------------
1 | [[language]]
2 | name = "toml"
3 | auto-format = true
4 | # https://github.com/bd82/toml-tools/tree/master/packages/prettier-plugin-toml
5 | formatter = { command = "prettier", args = ["--parser", "toml"] }
6 |
7 | [[language]]
8 | name = "c"
9 | formatter = { command = "clang-format", args = ["--assume-filename", "%file"] }
10 | clangd = { command = "clangd" }
11 |
12 | [[language]]
13 | name = "json"
14 | formatter = { command = "prettier", args = ["--parser", "json"] }
15 |
16 | [[language]]
17 | name = "javascript"
18 | auto-format = true
19 |
20 | [[language]]
21 | name = "python"
22 | auto-format = true
23 |
24 | [language-server.pylsp.config.pylsp]
25 | plugins.ruff.enabled = true
26 | plugins.black.enabled = true
27 |
28 | [[language]]
29 | name = "typescript"
30 | auto-format = true
31 |
32 | [[language]]
33 | name = "markdown.inline"
34 | scope = "source.markdown.inline"
35 | injection-regex = "markdown\\.inline"
36 | file-types = []
37 | grammar = "markdown_inline"
38 |
39 | [[language]]
40 | name = "rust"
41 | scope = "source.rust"
42 | injection-regex = "rs|rust"
43 | file-types = ["rs"]
44 | roots = ["Cargo.toml", "Cargo.lock"]
45 | shebangs = ["rust-script", "cargo"]
46 | auto-format = true
47 | comment-tokens = ["//", "///", "//!"]
48 | block-comment-tokens = [
49 | { start = "/*", end = "*/" },
50 | { start = "/**", end = "*/" },
51 | { start = "/*!", end = "*/" },
52 | ]
53 | language-servers = [ "rust-analyzer" ]
54 | indent = { tab-width = 4, unit = " " }
55 | persistent-diagnostic-sources = ["rustc", "clippy"]
56 |
57 | [language-server.rust-analyzer]
58 | command = "rust-analyzer"
59 |
60 | [language-server.rust-analyzer.config]
61 | inlayHints.bindingModeHints.enable = true
62 | inlayHints.closingBraceHints.minLines = 10
63 | inlayHints.closureReturnTypeHints.enable = "with_block"
64 | inlayHints.discriminantHints.enable = "fieldless"
65 | inlayHints.lifetimeElisionHints.enable = "skip_trivial"
66 | inlayHints.typeHints.hideClosureInitialization = false
67 |
68 | [[language]]
69 | name = "go"
70 | config = { "formatting.gofumpt" = true }
71 |
72 | [[language]]
73 | name = "yaml"
74 | indent = { tab-width = 0, unit = " " }
75 | formatter = { command = "prettier", args = ["--parser", "yaml"] }
76 |
77 | [[language]]
78 | name = "d2"
79 | scope = ""
80 | file-types = ["d2"]
81 | comment-token = "#"
82 | roots = [""]
83 | indent = { tab-width = 2, unit = " " }
84 |
85 | [[grammar]]
86 | name = "d2"
87 | source = { git = "https://git.pleshevski.ru/pleshevskiy/tree-sitter-d2", rev = "eb6910126fa392b60832d834fe6640635cd35ba8" }
88 |
89 | [[language]]
90 | name = "svelte"
91 | auto-format = true
92 | config = { svelte = { plugin = { svelte = { format = { config = { "svelteIndentScriptAndStyle" = false } } } } } }
93 |
94 | [[language]]
95 | name = "typst"
96 | auto-fomat = true
97 | formatter.command = "typstyle"
98 |
99 | [[language]]
100 | name = "go"
101 | scope = "source.go"
102 | injection-regex = "go"
103 | file-types = ["go"]
104 | roots = ["go.work", "go.mod"]
105 | auto-format = true
106 | comment-token = "//"
107 | block-comment-tokens = { start = "/*", end = "*/" }
108 | language-servers = [ "gopls", "golangci-lint-lsp" ]
109 | # TODO: gopls needs utf-8 offsets?
110 | indent = { tab-width = 4, unit = "\t" }
111 |
112 | [language-server.gopls]
113 | command = "gopls"
114 |
115 | [language-server.gopls.config.hints]
116 | assignVariableTypes = true
117 | compositeLiteralFields = true
118 | constantValues = true
119 | functionTypeParameters = true
120 | parameterNames = true
121 | rangeVariableTypes = true
122 |
123 | [language-server.golangci-lint-lsp]
124 | command = "golangci-lint-langserver"
125 |
126 | [language-server.golangci-lint-lsp.config]
127 | command = ["golangci-lint", "run", "--out-format", "json", "--issues-exit-code=1"]
128 |
129 |
130 | [[grammar]]
131 | name = "rust"
132 | source = { git = "https://github.com/tree-sitter/tree-sitter-rust", rev = "1f63b33efee17e833e0ea29266dd3d713e27e321" }
133 |
134 | [[grammar]]
135 | name = "yaml"
136 | source = { git = "https://github.com/ikatyang/tree-sitter-yaml", rev = "0e36bed171768908f331ff7dff9d956bae016efb" }
137 |
138 |
139 | [[grammar]]
140 | name = "zig"
141 | source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-zig", rev = "eb7d58c2dc4fbeea4745019dee8df013034ae66b" }
142 |
143 | [[grammar]]
144 | name = "markdown"
145 | source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-markdown", rev = "62516e8c78380e3b51d5b55727995d2c511436d8", subpath = "tree-sitter-markdown" }
146 |
147 | [[grammar]]
148 | name = "markdown_inline"
149 | source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-markdown", rev = "62516e8c78380e3b51d5b55727995d2c511436d8", subpath = "tree-sitter-markdown-inline" }
150 |
151 | [[language]]
152 | name = "python"
153 | scope = "source.python"
154 | injection-regex = "py(thon)?"
155 | file-types = ["py", "pyi", "py3", "pyw", "ptl", "rpy", "cpy", "ipy", "pyt", { glob = ".python_history" }, { glob = ".pythonstartup" }, { glob = ".pythonrc" }, { glob = "SConstruct" }, { glob = "SConscript" }]
156 | shebangs = ["python", "uv"]
157 | roots = ["pyproject.toml", "setup.py", "poetry.lock", "pyrightconfig.json"]
158 | comment-token = "#"
159 | language-servers = ["ruff", "jedi", "pylsp"]
160 | # TODO: pyls needs utf-8 offsets
161 | indent = { tab-width = 4, unit = " " }
162 |
163 | [[grammar]]
164 | name = "python"
165 | source = { git = "https://github.com/tree-sitter/tree-sitter-python", rev = "4bfdd9033a2225cc95032ce77066b7aeca9e2efc" }
166 |
167 | [[grammar]]
168 | name = "go"
169 | source = { git = "https://github.com/tree-sitter/tree-sitter-go", rev = "64457ea6b73ef5422ed1687178d4545c3e91334a" }
170 |
171 |
--------------------------------------------------------------------------------
/themes/catppuccin_mocha.toml:
--------------------------------------------------------------------------------
1 |
2 | # Syntax highlighting
3 | # -------------------
4 | "attribute" = "yellow"
5 |
6 | "type" = "yellow"
7 | "type.enum.variant" = "teal"
8 |
9 | "constructor" = "sapphire"
10 |
11 | "constant" = "peach"
12 | "constant.character" = "teal"
13 | "constant.character.escape" = "pink"
14 |
15 | "string" = "green"
16 | "string.regexp" = "pink"
17 | "string.special" = "blue"
18 | "string.special.symbol" = "red"
19 |
20 | "comment" = { fg = "overlay2", modifiers = ["italic"] }
21 |
22 | "variable" = "text"
23 | "variable.parameter" = { fg = "maroon", modifiers = ["italic"] }
24 | "variable.builtin" = "red"
25 | "variable.other.member" = "blue"
26 |
27 | "label" = "sapphire" # used for lifetimes
28 |
29 | "punctuation" = "overlay2"
30 | "punctuation.special" = "sky"
31 |
32 | "keyword" = "mauve"
33 | "keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] }
34 |
35 | "operator" = "sky"
36 |
37 | "function" = "blue"
38 | "function.macro" = "mauve"
39 |
40 | "tag" = "blue"
41 |
42 | "namespace" = { fg = "yellow", modifiers = ["italic"] }
43 |
44 | "special" = "blue" # fuzzy highlight
45 |
46 | "markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
47 | "markup.heading.1" = "lavender"
48 | "markup.heading.2" = "mauve"
49 | "markup.heading.3" = "green"
50 | "markup.heading.4" = "yellow"
51 | "markup.heading.5" = "pink"
52 | "markup.heading.6" = "teal"
53 | "markup.list" = "mauve"
54 | "markup.bold" = { modifiers = ["bold"] }
55 | "markup.italic" = { modifiers = ["italic"] }
56 | "markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] }
57 | "markup.link.text" = "blue"
58 | "markup.raw" = "flamingo"
59 |
60 | "diff.plus" = "green"
61 | "diff.minus" = "red"
62 | "diff.delta" = "blue"
63 |
64 | # User Interface
65 | # --------------
66 | "ui.background" = { fg = "text", bg = "base" }
67 |
68 | "ui.linenr" = { fg = "surface1" }
69 | "ui.linenr.selected" = { fg = "lavender" }
70 |
71 | "ui.statusline" = { fg = "subtext1", bg = "mantle" }
72 | "ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
73 | "ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
74 | "ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
75 | "ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
76 |
77 | "ui.popup" = { fg = "text", bg = "surface0" }
78 | "ui.window" = { fg = "crust" }
79 | "ui.help" = { fg = "overlay2", bg = "surface0" }
80 |
81 | "ui.bufferline" = { fg = "subtext0", bg = "mantle" }
82 | "ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
83 | "ui.bufferline.background" = { bg = "crust" }
84 |
85 | "ui.text" = "text"
86 | "ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
87 | "ui.text.inactive" = { fg = "overlay1" }
88 |
89 | "ui.virtual" = "overlay0"
90 | "ui.virtual.ruler" = { bg = "surface0" }
91 | "ui.virtual.indent-guide" = "surface0"
92 | "ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
93 | "ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
94 |
95 | "ui.selection" = { bg = "surface1" }
96 |
97 | "ui.cursor" = { fg = "base", bg = "secondary_cursor" }
98 | "ui.cursor.primary" = { fg = "base", bg = "rosewater" }
99 | "ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
100 |
101 | "ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
102 | "ui.cursor.primary.insert" = { fg = "base", bg = "green" }
103 | "ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
104 |
105 | "ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
106 | "ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
107 | "ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
108 |
109 | "ui.cursorline.primary" = { bg = "cursorline" }
110 |
111 | "ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
112 |
113 | "ui.menu" = { fg = "overlay2", bg = "surface0" }
114 | "ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
115 |
116 | "diagnostic.error" = { underline = { color = "red", style = "curl" } }
117 | "diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
118 | "diagnostic.info" = { underline = { color = "sky", style = "curl" } }
119 | "diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
120 |
121 | error = "red"
122 | warning = "yellow"
123 | info = "sky"
124 | hint = "teal"
125 |
126 | [palette]
127 | rosewater = "#f5e0dc"
128 | flamingo = "#f2cdcd"
129 | pink = "#f5c2e7"
130 | mauve = "#cba6f7"
131 | red = "#f38ba8"
132 | maroon = "#eba0ac"
133 | peach = "#fab387"
134 | yellow = "#f9e2af"
135 | green = "#a6e3a1"
136 | teal = "#94e2d5"
137 | sky = "#89dceb"
138 | sapphire = "#74c7ec"
139 | blue = "#89b4fa"
140 | lavender = "#b4befe"
141 | text = "#cdd6f4"
142 | subtext1 = "#bac2de"
143 | subtext0 = "#a6adc8"
144 | overlay2 = "#9399b2"
145 | overlay1 = "#7f849c"
146 | overlay0 = "#6c7086"
147 | surface2 = "#585b70"
148 | surface1 = "#45475a"
149 | surface0 = "#313244"
150 | base = "#1e1e2e"
151 | mantle = "#181825"
152 | crust = "#11111b"
153 |
154 | cursorline = "#2a2b3c"
155 | secondary_cursor = "#b5a6a8"
156 | secondary_cursor_normal = "#878ec0"
157 | secondary_cursor_insert = "#7ea87f"
158 |
--------------------------------------------------------------------------------
/themes/gruvbox_mix_dark.toml:
--------------------------------------------------------------------------------
1 | ## Original Author
2 | # URL: https://github.com/sainnhe/gruvbox-material
3 | # Author: sainnhe
4 | # License: MIT License
5 |
6 | "type" = "yellow"
7 | "constant" = "purple"
8 | "constant.numeric" = "purple"
9 | "constant.character.escape" = "orange"
10 | "string" = "green"
11 | "string.regexp" = "blue"
12 | "comment" = "grey0"
13 | "variable" = "fg0"
14 | "variable.builtin" = "blue"
15 | "variable.parameter" = "fg0"
16 | "variable.other.member" = "fg0"
17 | "label" = "aqua"
18 | "punctuation" = "grey2"
19 | "punctuation.delimiter" = "grey2"
20 | "punctuation.bracket" = "fg0"
21 | "keyword" = "red"
22 | "keyword.directive" = "aqua"
23 | "operator" = "orange"
24 | "function" = "green"
25 | "function.builtin" = "blue"
26 | "function.macro" = "aqua"
27 | "tag" = "yellow"
28 | "namespace" = "aqua"
29 | "attribute" = "aqua"
30 | "constructor" = "yellow"
31 | "module" = "blue"
32 | "special" = "orange"
33 |
34 | "markup.heading.marker" = "grey2"
35 | "markup.heading.1" = { fg = "red", modifiers = ["bold"] }
36 | "markup.heading.2" = { fg = "orange", modifiers = ["bold"] }
37 | "markup.heading.3" = { fg = "yellow", modifiers = ["bold"] }
38 | "markup.heading.4" = { fg = "green", modifiers = ["bold"] }
39 | "markup.heading.5" = { fg = "blue", modifiers = ["bold"] }
40 | "markup.heading.6" = { fg = "fg", modifiers = ["bold"] }
41 | "markup.list" = "red"
42 | "markup.bold" = { modifiers = ["bold"] }
43 | "markup.italic" = { modifiers = ["italic"] }
44 | "markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
45 | "markup.link.text" = "purple"
46 | "markup.quote" = "grey2"
47 | "markup.raw" = "green"
48 |
49 | "diff.plus" = "green"
50 | "diff.delta" = "orange"
51 | "diff.minus" = "red"
52 |
53 | "ui.background" = { bg = "bg0" }
54 | "ui.background.separator" = "grey0"
55 | "ui.cursor" = { fg = "bg0", bg = "fg0" }
56 | "ui.cursor.match" = { fg = "orange", bg = "bg_visual_yellow" }
57 | "ui.cursor.insert" = { fg = "bg0", bg = "grey2" }
58 | "ui.cursor.select" = { fg = "bg0", bg = "blue" }
59 | "ui.cursorline.primary" = { bg = "bg1" }
60 | "ui.cursorline.secondary" = { bg = "bg1" }
61 | "ui.selection" = { bg = "bg3" }
62 | "ui.linenr" = "grey0"
63 | "ui.linenr.selected" = "fg0"
64 | "ui.statusline" = { fg = "fg0", bg = "bg3" }
65 | "ui.statusline.inactive" = { fg = "grey0", bg = "bg1" }
66 | "ui.statusline.normal" = { fg = "bg0", bg = "fg0", modifiers = ["bold"] }
67 | "ui.statusline.insert" = { fg = "bg0", bg = "yellow", modifiers = ["bold"] }
68 | "ui.statusline.select" = { fg = "bg0", bg = "blue", modifiers = ["bold"] }
69 | "ui.popup" = { fg = "grey2", bg = "bg2" }
70 | "ui.window" = { fg = "grey0", bg = "bg0" }
71 | "ui.help" = { fg = "fg0", bg = "bg1" }
72 | "ui.text" = "fg0"
73 | "ui.text.focus" = "fg0"
74 | "ui.menu" = { fg = "fg0", bg = "bg2" }
75 | "ui.menu.selected" = { fg = "bg0", bg = "blue", modifiers = ["bold"] }
76 | "ui.virtual.whitespace" = { fg = "bg4" }
77 | "ui.virtual.indent-guide" = { fg = "bg4" }
78 | "ui.virtual.ruler" = { bg = "bg3" }
79 |
80 | "hint" = "blue"
81 | "info" = "aqua"
82 | "warning" = "yellow"
83 | "error" = "red"
84 | "diagnostic" = { modifiers = ["underlined"] }
85 |
86 | [palette]
87 |
88 | bg0 = "#1d2021"
89 | bg1 = "#282828"
90 | bg2 = "#282828"
91 | bg3 = "#3c3836"
92 | bg4 = "#3c3836"
93 | bg5 = "#504945"
94 | bg_statusline1 = "#282828"
95 | bg_statusline2 = "#32302f"
96 | bg_statusline3 = "#504945"
97 | bg_diff_green = "#32361a"
98 | bg_visual_green = "#333e34"
99 | bg_diff_red = "#3c1f1e"
100 | bg_visual_red = "#442e2d"
101 | bg_diff_blue = "#0d3138"
102 | bg_visual_blue = "#2e3b3b"
103 | bg_visual_yellow = "#473c29"
104 | bg_current_word = "#32302f"
105 |
106 | fg0 = "#e2cca9"
107 | fg1 = "#e2cca9"
108 | red = "#f2594b"
109 | orange = "#f28534"
110 | yellow = "#e9b143"
111 | green = "#b0b846"
112 | aqua = "#8bba7f"
113 | blue = "#80aa9e"
114 | purple = "#d3869b"
115 | bg_red = "#db4740"
116 | bg_green = "#b0b846"
117 | bg_yellow = "#e9b143"
118 |
119 | grey0 = "#7c6f64"
120 | grey1 = "#928374"
121 | grey2 = "#a89984"
122 |
--------------------------------------------------------------------------------
/themes/non_background.toml:
--------------------------------------------------------------------------------
1 |
2 | inherits = "catppuccin_mocha"
3 | "ui.background" = {}
4 |
--------------------------------------------------------------------------------
/themes/rose_pine.toml:
--------------------------------------------------------------------------------
1 | # Author: Rosé Pine
2 | # Upstream: https://github.com/rose-pine/helix
3 | # Contributing:
4 | # Please submit changes to https://github.com/rose-pine/helix.
5 | # The Rosé Pine team will update Helix, including you as a co-author.
6 |
7 | "ui.background" = { bg = "base" }
8 | "ui.background.separator" = { bg = "base" }
9 |
10 | "ui.cursor" = { fg = "text", bg = "highlight_high" }
11 | # "ui.cursor.select" = {}
12 | "ui.cursor.match" = { fg = "text", bg = "highlight_med" }
13 | "ui.cursor.primary" = { fg = "text", bg = "muted" }
14 |
15 | # "ui.gutter" = {}
16 | # "ui.gutter.selected" = {}
17 |
18 | "ui.linenr" = { fg = "muted" }
19 | "ui.linenr.selected" = { fg = "text" }
20 |
21 | "ui.bufferline" = { fg = "muted", bg = "base" }
22 | "ui.bufferline.active" = { fg = "text", bg = "overlay" }
23 | "ui.statusline" = { fg = "subtle", bg = "surface" }
24 | "ui.statusline.inactive" = { fg = "muted", bg = "surface" }
25 | "ui.statusline.normal" = { fg = "rose", bg = "rose_10" }
26 | "ui.statusline.insert" = { fg = "foam", bg = "foam_10" }
27 | "ui.statusline.select" = { fg = "iris", bg = "iris_10" }
28 | # "ui.statusline.separator" = {}
29 |
30 | "ui.popup" = { bg = "surface" }
31 | "ui.popup.info" = { bg = "surface" }
32 |
33 | "ui.picker.header" = { fg = "iris", modifiers = ["bold"] }
34 |
35 | "ui.window" = { fg = "overlay", bg = "base" }
36 | "ui.help" = { fg = "subtle", bg = "overlay" }
37 |
38 | "ui.text" = { fg = "text" }
39 | "ui.text.focus" = { bg = "overlay" }
40 | "ui.text.info" = { fg = "subtle" }
41 |
42 | "ui.virtual.jump-label" = { fg = "love", modifiers = ["bold"] }
43 | "ui.virtual.ruler" = { bg = "overlay" }
44 | "ui.virtual.whitespace" = { fg = "highlight_high" }
45 | "ui.virtual.indent-guide" = { fg = "muted" }
46 | "ui.virtual.inlay-hint" = { fg = "subtle" }
47 |
48 | "ui.menu" = { fg = "subtle", bg = "surface" }
49 | "ui.menu.selected" = { fg = "text" }
50 | "ui.menu.scroll" = { fg = "muted", bg = "highlight_med" }
51 |
52 | "ui.selection" = { bg = "overlay" }
53 | "ui.selection.primary" = { bg = "highlight_med" }
54 |
55 | "ui.cursorline.primary" = { bg = "highlight_low" }
56 | "ui.cursorline.secondary" = { bg = "surface" }
57 |
58 | "warning" = "gold"
59 | "error" = "love"
60 | "info" = "foam"
61 | "hint" = "iris"
62 | "debug" = "rose"
63 |
64 | "diagnostic" = { underline = { color = "subtle", style = "curl" } }
65 | "diagnostic.hint" = { underline = { color = "iris", style = "curl" } }
66 | "diagnostic.info" = { underline = { color = "foam", style = "curl" } }
67 | "diagnostic.warning" = { underline = { color = "gold", style = "curl" } }
68 | "diagnostic.error" = { underline = { color = "love", style = "curl" } }
69 | "special" = "rose"
70 |
71 | "attribute" = "iris"
72 |
73 | "type" = "foam"
74 | # "type.builtin" = ""
75 |
76 | "constructor" = "foam"
77 |
78 | "constant" = "foam"
79 | "constant.builtin" = "love"
80 | "constant.builtin.boolean" = "rose"
81 | "constant.character" = "gold"
82 | "constant.character.escape" = "pine"
83 | "constant.numeric" = "gold"
84 | # "constant.numeric.integer" = ""
85 | # "constant.numeric.float" = ""
86 |
87 | "string" = "gold"
88 | # "string.regexp" = ""
89 | # "string.special" = ""
90 | # "string.special.path" = ""
91 | # "string.special.url" = ""
92 | # "string.special.symbol" = ""
93 |
94 | "comment" = { fg = "muted", modifiers = ["italic"] }
95 | # "comment.line" = ""
96 | # "comment.block" = ""
97 | # "comment.block.documentation" = ""
98 |
99 | "variable" = "text"
100 | "variable.builtin" = "love"
101 | "variable.parameter" = "iris"
102 | # "variable.other" = ""
103 | "variable.other.member" = "foam"
104 |
105 | "label" = "foam"
106 |
107 | "punctuation" = "subtle"
108 | # "punctuation.delimiter" = ""
109 | # "punctuation.bracket" = ""
110 | # "punctuation.special" = ""
111 |
112 | "keyword" = "pine"
113 | # "keyword.control" = ""
114 | # "keyword.control.conditional" = ""
115 | # "keyword.control.repeat" = ""
116 | # "keyword.control.import" = ""
117 | # "keyword.control.return" = ""
118 | # "keyword.control.exception" = ""
119 | "keyword.operator" = "subtle"
120 | # "keyword.directive" = ""
121 | # "keyword.function" = ""
122 | # "keyword.storage" = ""
123 | # "keyword.storage.type" = ""
124 | # "keyword.storage.modifier" = ""
125 |
126 | "operator" = "subtle"
127 |
128 | "function" = "rose" # maybe pine
129 | "function.builtin" = "love"
130 | # "function.method" = ""
131 | # "function.macro" = ""
132 | # "function.special" = ""
133 |
134 | "tag" = "foam"
135 |
136 | "namespace" = "text"
137 |
138 | "markup.heading.marker" = "muted"
139 | "markup.heading" = { fg = "iris", modifiers = ["bold"] }
140 | "markup.heading.1" = { fg = "iris", modifiers = ["bold"] }
141 | "markup.heading.2" = { fg = "foam", modifiers = ["bold"] }
142 | "markup.heading.3" = { fg = "rose", modifiers = ["bold"] }
143 | "markup.heading.4" = { fg = "gold", modifiers = ["bold"] }
144 | "markup.heading.5" = { fg = "pine", modifiers = ["bold"] }
145 | "markup.heading.6" = { fg = "foam", modifiers = ["bold"] }
146 | # "markup.heading.completion" = ""
147 | # "markup.heading.hover" = ""
148 | "markup.list" = "muted"
149 | # "markup.list.unnumbered" = ""
150 | # "markup.list.numbered" = ""
151 | "markup.bold" = { modifiers = ["bold"] }
152 | "markup.italic" = { modifiers = ["italic"] }
153 | "markup.strikethrough" = { modifiers = ["crossed_out"] }
154 | "markup.link" = "iris"
155 | "markup.link.url" = { fg = "iris", underline = { color = "iris", style = "line" } }
156 | "markup.link.label" = "subtle"
157 | "markup.link.text" = "foam"
158 | "markup.quote" = "subtle"
159 | "markup.raw" = "subtle"
160 | "markup.raw.inline" = "gold"
161 | # "markup.raw.inline.completion" = {}
162 | # "markup.raw.inline.hover" = {}
163 | "markup.raw.block" = "gold"
164 | # "markup.normal" = ""
165 | # "markup.normal.completion" = ""
166 | # "markup.normal.hover" = ""
167 |
168 | "diff" = "overlay"
169 | "diff.plus" = "foam"
170 | "diff.minus" = "love"
171 | "diff.delta" = "highlight_high"
172 | # "diff.delta.moved" = ""
173 |
174 | [palette]
175 | base = "#191724"
176 | surface = "#1f1d2e"
177 | overlay = "#26233a"
178 | muted = "#6e6a86"
179 | subtle = "#908caa"
180 | text = "#e0def4"
181 | love = "#eb6f92"
182 | love_10 = "#311f30"
183 | gold = "#f6c177"
184 | gold_10 = "#30282c"
185 | rose = "#ebbcba"
186 | rose_10 = "#2f2834"
187 | pine = "#31748f"
188 | pine_10 = "#1a2030"
189 | foam = "#9ccfd8"
190 | foam_10 = "#252937"
191 | iris = "#c4a7e7"
192 | iris_10 = "#2b2539"
193 | highlight_low = "#21202e"
194 | highlight_med = "#403d52"
195 | highlight_high = "#524f67"
196 |
--------------------------------------------------------------------------------
/themes/sprit_glow.toml:
--------------------------------------------------------------------------------
1 | "ui.background" = { bg = "#1E1A2E" }
2 | "ui.selection" = { bg = "#342A4F" }
3 | "ui.linenr" = { fg = "#7A6F92" }
4 | "ui.linenr.selected" = { fg = "#F3A35C", bg = "#2A2340" }
5 |
6 | "ui.statusline" = { fg = "#EDEDF2", bg = "#1E1A2E" }
7 | "ui.statusline.inactive" = { fg = "#7A6F92", bg = "#1E1A2E" }
8 | "ui.statusline.normal" = { fg = "#1E1A2E", bg = "#85E0A3" }
9 | "ui.statusline.insert" = { fg = "#1E1A2E", bg = "#9AC8E2" }
10 | "ui.statusline.select" = { fg = "#1E1A2E", bg = "#F3A35C" }
11 |
12 | "ui.popup" = { bg = "#1E1A2E", fg = "#EDEDF2" }
13 | "ui.help" = { bg = "#1E1A2E", fg = "#E57DD2" }
14 |
15 | "comment" = { fg = "#7A6F92" }
16 | "string" = { fg = "#85E0A3" }
17 | "constant" = { fg = "#E57DD2" }
18 | "variable" = { fg = "#F3A35C" }
19 | "keyword" = { fg = "#F3A35C" }
20 | "operator" = { fg = "#E57DD2" }
21 | "function" = { fg = "#9AC8E2" }
22 | "type" = { fg = "#9AC8E2" }
23 | "builtin" = { fg = "#E57DD2" }
24 | "attribute" = { fg = "#F3A35C" }
25 | "namespace" = { fg = "#85E0A3" }
26 | "special" = { fg = "#E57DD2" }
27 | "diagnostic" = { fg = "#F3A35C" }
28 | "hint" = { fg = "#85E0A3" }
29 |
30 | [palette]
31 | background = "#1E1A2E"
32 | accent1 = "#E57DD2"
33 | accent2 = "#F3A35C"
34 | accent3 = "#9AC8E2"
35 | accent4 = "#85E0A3"
36 | text = "#EDEDF2"
37 | dimmed = "#7A6F92"
38 | highlight = "#342A4F"
39 | popup_bg = "#2A2340"
40 |
--------------------------------------------------------------------------------