├── .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 | Screenshot from 2024-12-28 09-38-46 7 | Screenshot from 2024-12-28 10-03-07 8 | 9 | 10 | aqua 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 | --------------------------------------------------------------------------------