My Nix configuration. Enter at your own risk.
0

Configure Feed

Select the types of activity you want to include in your feed.

dotnix / modules / home / helix.nix
5.4 kB 215 lines
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: { 7 options.modules.home.helix = { 8 enable = lib.mkEnableOption "helix"; 9 10 theme = lib.mkOption { 11 type = lib.types.str; 12 default = "darcula-solid"; 13 }; 14 }; 15 16 config = let 17 helix = config.modules.home.helix; 18 in 19 lib.mkIf helix.enable { 20 modules.home.wsl-bridge.map = { 21 "~/.config/helix/languages.toml" = { 22 directory = {appData, ...}: "${appData}/helix"; 23 filename = "languages.toml"; 24 }; 25 "~/.config/helix/config.toml" = { 26 directory = {appData, ...}: "${appData}/helix"; 27 filename = "config.toml"; 28 }; 29 }; 30 31 home.packages = [ 32 pkgs.steel 33 ]; 34 35 programs.helix = { 36 enable = true; 37 38 settings = { 39 theme = helix.theme; 40 41 editor = { 42 line-number = "relative"; 43 bufferline = "always"; 44 true-color = true; 45 46 jump-label-alphabet = "jklfdsauiohnmretcgwvpyqxbz"; 47 48 filetree.nerd-fonts = true; 49 file-picker.hidden = false; 50 smart-tab.enable = false; 51 }; 52 53 keys.normal = { 54 # Emulate VSCode Ctrl+D functionality 55 C-d = "@*vn<esc>"; 56 C-D = "@*vN<esc>"; 57 58 # Emulate VSCode Ctrl+Alt+Up/Down functionality 59 C-A-up = "@v<A-C><esc>"; 60 C-A-k = "@v<A-C><esc>"; 61 C-A-down = "@vC<esc>"; 62 C-A-j = "@vC<esc>"; 63 64 # Move lines 65 C-j = "@Xdp"; 66 C-k = "@XdkP"; 67 68 # Navigate buffers 69 C-h = ":bp"; 70 C-l = ":bn"; 71 72 # Close buffer 73 C-w = ":bc"; 74 75 # Close pane 76 C-q = ":q"; 77 78 # Find word references 79 F12 = "@miw*;<space>/<ret>"; 80 }; 81 82 keys.select = { 83 # Emulate VSCode Ctrl+D functionality 84 C-d = "@*n"; 85 C-D = "@*N"; 86 87 # Emulate VSCode Ctrl+Alt+Up/Down functionality 88 C-A-up = "@<A-C>"; 89 C-A-k = "@<A-C>"; 90 C-A-down = "@C"; 91 C-A-j = "@C"; 92 93 # Move lines 94 C-j = "@<esc>Xdp"; 95 C-k = "@<esc>XdkP"; 96 97 # Navigate buffers 98 C-q = "@<esc>:bc"; 99 C-h = "@<esc>:bp"; 100 C-l = "@<esc>:bn"; 101 102 # Find word references 103 F12 = "@miw*;<space>/<ret>"; 104 }; 105 106 keys.insert = { 107 # Emulate VSCode Ctrl+D functionality 108 C-d = "@<esc>*vn<esc>"; 109 C-D = "@<esc>*vN<esc>"; 110 111 # Emulate VSCode Ctrl+Alt+Up/Down functionality 112 C-A-up = "@<esc>v<A-C>i"; 113 C-A-k = "@<esc>v<A-C>i"; 114 C-A-down = "@<esc>vCi"; 115 C-A-j = "@<esc>vCi"; 116 117 # Navigate buffers 118 C-q = "@<esc>:bc"; 119 C-h = "@<esc>:bp"; 120 C-l = "@<esc>:bn"; 121 122 # Find word references 123 F12 = "@<esc>miw*;<space>/<ret>"; 124 }; 125 }; 126 127 languages = { 128 language-server.emmet-language-server = { 129 command = "emmet-language-server"; 130 args = ["--stdio"]; 131 }; 132 133 language-server.rust-analyzer = { 134 config.cargo.allFeatures = true; 135 }; 136 137 language-server.vscode-css-language-server = { 138 command = "vscode-css-language-server"; 139 args = ["--stdio"]; 140 }; 141 142 language = let 143 def = name: obj: {inherit name;} // obj; 144 in [ 145 (def "git-commit" { 146 rulers = [73]; 147 }) 148 (def "jjdescription" { 149 rulers = [73]; 150 }) 151 (def "less" { 152 scope = "source.less"; 153 file-types = ["less"]; 154 language-id = "less"; 155 grammar = "less"; 156 157 comment-tokens = ["//"]; 158 block-comment-tokens = [ 159 { 160 start = "/*"; 161 end = "*/"; 162 } 163 ]; 164 165 indent.tab-width = 2; 166 indent.unit = " "; 167 168 language-servers = [ 169 "vscode-css-language-server" 170 "emmet-language-server" 171 ]; 172 }) 173 (def "html" { 174 language-servers = [ 175 "vscode-html-language-server" 176 "emmet-language-server" 177 ]; 178 }) 179 (def "jsx" { 180 language-servers = [ 181 "typescript-language-server" 182 "emmet-language-server" 183 ]; 184 }) 185 (def "markdown" { 186 rulers = [81]; 187 }) 188 (def "rust" { 189 formatter = { 190 command = "rustfmt"; 191 }; 192 }) 193 (def "sql" { 194 indent.tab-width = 4; 195 indent.unit = " "; 196 }) 197 (def "tsx" { 198 language-servers = [ 199 "typescript-language-server" 200 "emmet-language-server" 201 ]; 202 }) 203 ]; 204 205 grammar = [ 206 { 207 name = "less"; 208 source.git = "https://github.com/jimliang/tree-sitter-less"; 209 source.rev = "945f52c94250309073a96bbfbc5bcd57ff2bde49"; 210 } 211 ]; 212 }; 213 }; 214 }; 215}