My dotfiles (written in Nix, btw!) ❄

helix

+248
+61
user/helix.nix
··· 1 + { 2 + self, 3 + userSettings, 4 + systemSettings, 5 + ... 6 + }: { 7 + programs.helix = { 8 + enable = true; 9 + themes = builtins.fromTOML (builtins.readFile ./helix_nord.toml); 10 + settings = { 11 + theme = "helix_nord"; 12 + editor = { 13 + line-number = "relative"; 14 + scroll-lines = 2; 15 + bufferline = "always"; 16 + rulers = [80]; 17 + clipboard-provider = "wayland"; 18 + statusline = { 19 + left = ["mode" "file-name" "file-modification-indicator"]; 20 + center = ["diagnostics" "read-only-indicator"]; 21 + right = ["register" "version-control" "position"]; 22 + }; 23 + lsp = { 24 + display-inlay-hints = true; 25 + }; 26 + cursor-shape.insert = "underline"; 27 + file-picker = { 28 + hidden = false; # false -> show hidden files 29 + }; 30 + auto-save = { 31 + focus-lost = true; 32 + "after-delay.enable" = true; 33 + "after-delay.timeout" = 1000; 34 + }; 35 + inline-diagnostics = { 36 + cursor-line = "hint"; 37 + other-lines = "info"; 38 + }; 39 + }; 40 + }; 41 + languages = { 42 + language = [ 43 + { 44 + name = "nix"; 45 + language-servers = ["nixd"]; 46 + formatter = { 47 + command = "alejandra"; 48 + }; 49 + } 50 + ]; 51 + language-server.nixd = { 52 + config = let 53 + flake = "(builtins.getFlake \"${self}\");"; 54 + in { 55 + nixos.expr = "${flake}.nixosConfigurations.\"${systemSettings.hostname}\".options"; 56 + home_manager.expr = "${flake}.homeConfigurations.\"${userSettings.username}\".options"; 57 + }; 58 + }; 59 + }; 60 + }; 61 + }
+187
user/helix_nord.toml
··· 1 + # Constants 2 + "constant" = "nord4" 3 + "constant.builtin" = "nord9" 4 + "constant.builtin.boolean" = "nord9" 5 + "constant.builtin.character" = "nord15" 6 + "constant.character.escape" = "nord13" 7 + "constant.macro" = "nord9" 8 + "constant.numeric" = "nord15" 9 + "constructor" = "nord8" 10 + 11 + # Diagnostics 12 + "diagnostic" = { underline = { color = "nord13", style = "curl" } } 13 + "diagnostic.error" = { underline = { color = "nord11", style = "curl" } } 14 + "error" = "nord11" 15 + "diagnostic.hint" = { underline = { color = "nord10", style = "curl" } } 16 + "hint" = "nord10" 17 + "diagnostic.info" = { underline = { color = "nord8", style = "curl" } } 18 + "info" = "nord8" 19 + "diagnostic.warning" = { underline = { color = "nord13", style = "curl" } } 20 + "warning" = "nord13" 21 + "diagnostic.unnecessary" = { modifiers = ["dim"] } 22 + "diagnostic.deprecated" = { modifiers = ["crossed_out"] } 23 + 24 + # Diffs 25 + "diff.delta" = "nord13" 26 + "diff.minus" = "nord11" 27 + "diff.plus" = "nord14" 28 + 29 + # Functions 30 + "function" = "nord8" 31 + "function.builtin" = "nord7" 32 + "function.method" = "nord8" 33 + "function.macro" = "nord9" 34 + "function.special" = "nord9" 35 + 36 + # Git 37 + "git.delta.moved" = "nord12" 38 + 39 + # Keywords 40 + "keyword" = "nord9" 41 + "keyword.control.conditional" = "nord9" 42 + "keyword.control.exception" = "nord9" 43 + "keyword.control.repeat" = "nord9" 44 + "keyword.directive" = "nord9" 45 + "keyword.function" = "nord9" 46 + "keyword.operator" = "nord9" 47 + "keyword.return" = "nord9" 48 + "keyword.storage.modifier" = "nord9" 49 + "keyword.storage.type" = "nord9" 50 + 51 + # Punctuation 52 + "punctuation" = "nord6" 53 + "punctuation.bracket" = "nord6" 54 + "punctuation.delimiter" = "nord6" 55 + "punctuation.special" = "nord9" 56 + 57 + # Strings 58 + "string" = "nord14" 59 + "string.escape" = "nord13" 60 + "string.regex" = "nord13" 61 + "string.special" = "nord13" 62 + 63 + # Types 64 + "type" = "nord7" 65 + "type.builtin" = "nord7" 66 + 67 + # Variables 68 + "variable" = "nord4" 69 + "variable.builtin" = "nord9" 70 + "variable.other.member" = "nord4" 71 + "variable.parameter" = "nord8" 72 + "attribute" = "nord9" 73 + 74 + # Misc. 75 + "label" = "nord7" 76 + "namespace" = "nord4" 77 + "operator" = "nord9" 78 + "special" = "nord9" 79 + "tag" = "nord7" 80 + "comment" = { fg = "nord3_bright", modifiers = ["italic"] } 81 + 82 + ## EDITOR UI COLORS 83 + 84 + "ui.background" = { bg = "nord0" } 85 + "ui.text" = "nord4" 86 + "ui.window" = "nord1" 87 + 88 + # Debug 89 + "ui.debug.active" = "nord13" 90 + "ui.debug.breakpoint" = "nord11" 91 + 92 + # Popus and menus 93 + "ui.menu" = { bg = "nord1" } 94 + "ui.menu.scroll" = { fg = "nord4", bg = "nord3" } 95 + "ui.menu.selected" = { fg = "nord8", bg = "nord2" } 96 + "ui.popup" = { bg = "nord1" } 97 + "ui.popup.info" = { bg = "nord1" } 98 + "ui.help" = { bg = "nord1" } 99 + "ui.text.focus" = { fg = "nord8", bg = "nord2" } 100 + 101 + # Gutter 102 + "ui.gutter" = "nord5" 103 + "ui.linenr" = "nord3" 104 + "ui.linenr.selected" = "nord5" 105 + 106 + # Cursor 107 + "ui.cursor" = { fg = "nord4", modifiers = [ "reversed" ] } 108 + "ui.cursorcolumn.primary" = { bg = "nord1" } 109 + "ui.cursorline.primary" = { bg = "nord1" } 110 + 111 + "ui.selection" = { bg = "nord3" } 112 + "ui.highlight" = { fg = "nord8", bg = "nord2" } 113 + 114 + # Statusline 115 + "ui.statusline" = { bg = "nord1" } 116 + "ui.statusline.inactive" = { fg = "nord8", bg = "nord1" } 117 + "ui.statusline.insert" = { fg = "nord1", bg = "nord6" } 118 + "ui.statusline.normal" = { fg = "nord1", bg = "nord8" } 119 + "ui.statusline.select" = { fg = "nord1", bg = "nord7" } 120 + "ui.statusline.separator" = "nord3" 121 + 122 + # Virtual/invisible text 123 + "ui.virtual.indent-guide" = "nord3" 124 + "ui.virtual.inlay-hint" = { fg = "nord3", modifiers = ["italic"] } 125 + "ui.virtual.jump-label" = { fg = "nord11", modifiers = ["bold"] } 126 + "ui.virtual.ruler" = { bg = "nord1" } 127 + "ui.virtual.whitespace" = "nord3" 128 + "ui.virtual.wrap" = "nord3" 129 + 130 + # Bufferline 131 + "ui.bufferline" = { fg = "nord5", bg = "nord1" } 132 + "ui.bufferline.active" = { fg = "nord6", bg = "nord2", underline = { color = "nord8", style = "line" }, modifiers = [ "italic" ] } 133 + 134 + # Markup 135 + "markup.heading" = "nord8" 136 + "markup.list" = "nord9" 137 + "markup.bold" = { modifiers = ["bold"] } 138 + "markup.italic" = { modifiers = ["italic"] } 139 + "markup.strikethrough" = { modifiers = ["crossed_out"] } 140 + "markup.link.text" = "nord8" 141 + "markup.raw" = "nord7" 142 + 143 + [palette] 144 + # Polar Night is made up of four darker colors that are commonly used for base elements like backgrounds or text color in bright ambiance designs. 145 + # 146 + # The origin color or the Polar Night palette 147 + nord0 = "#2e3440" 148 + # A brighter shade color based on nord0 149 + nord1 = "#3B4252" 150 + # An even more brighter shade color of nord0 151 + nord2 = "#434C5E" 152 + # The brightest shade color based on nord0 153 + nord3 = "#4C566A" 154 + # 10% brighter for comments, see https://github.com/nordtheme/nord/issues/94 155 + nord3_bright = "#616e88" 156 + 157 + # Snow Storm is made up of three bright colors that are commonly used for text colors or base UI elements in bright ambiance designs. 158 + # The origin color or the Snow Storm palette 159 + nord4 = "#D8DEE9" 160 + # A brighter shade color of nord4 161 + nord5 = "#E5E9F0" 162 + # The brightest shade color based on nord4 163 + nord6 = "#ECEFF4" 164 + 165 + # Frost can be described as the heart palette of Nord, a group of four bluish colors that are commonly used for primary UI component and text highlighting and essential code syntax elements. 166 + # 167 + # A calm and highly contrasted color reminiscent of frozen polar water 168 + nord7 = "#8FBCBB" 169 + # The bright and shiny primary accent color reminiscent of pure and clear ice 170 + nord8 = "#88C0D0" 171 + # A more darkened and less saturated color reminiscent of arctic waters 172 + nord9 = "#81A1C1" 173 + # A dark and intensive color reminiscent of the deep arctic ocean 174 + nord10 = "#5E81AC" 175 + 176 + # Aurora consists of five colorful components reminiscent of the "Aurora borealis", sometimes referred to as polar lights or northern lights. 177 + # 178 + # Red 179 + nord11 = "#BF616A" 180 + # Orange 181 + nord12 = "#D08770" 182 + # Yellow 183 + nord13 = "#EBCB8B" 184 + # Green 185 + nord14 = "#A3BE8C" 186 + # Purple 187 + nord15 = "#B48EAD"