my terrible dotfiles

rudimentary nixvim config

Changed files
+397 -12
modules
nixos
+145 -1
flake.lock
··· 87 87 "url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz" 88 88 } 89 89 }, 90 + "flake-parts": { 91 + "inputs": { 92 + "nixpkgs-lib": [ 93 + "nixvim", 94 + "nixpkgs" 95 + ] 96 + }, 97 + "locked": { 98 + "lastModified": 1763759067, 99 + "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", 100 + "owner": "hercules-ci", 101 + "repo": "flake-parts", 102 + "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", 103 + "type": "github" 104 + }, 105 + "original": { 106 + "owner": "hercules-ci", 107 + "repo": "flake-parts", 108 + "type": "github" 109 + } 110 + }, 90 111 "flake-utils": { 91 112 "inputs": { 92 113 "systems": "systems" 93 114 }, 94 115 "locked": { 116 + "lastModified": 1731533236, 117 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 118 + "owner": "numtide", 119 + "repo": "flake-utils", 120 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 121 + "type": "github" 122 + }, 123 + "original": { 124 + "owner": "numtide", 125 + "repo": "flake-utils", 126 + "type": "github" 127 + } 128 + }, 129 + "flake-utils_2": { 130 + "inputs": { 131 + "systems": "systems_3" 132 + }, 133 + "locked": { 95 134 "lastModified": 1694529238, 96 135 "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", 97 136 "owner": "numtide", ··· 107 146 }, 108 147 "gomod2nix": { 109 148 "inputs": { 110 - "flake-utils": "flake-utils", 149 + "flake-utils": "flake-utils_2", 111 150 "nixpkgs": [ 112 151 "tangled", 113 152 "nixpkgs" ··· 214 253 "url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" 215 254 } 216 255 }, 256 + "ixx": { 257 + "inputs": { 258 + "flake-utils": [ 259 + "nixvim", 260 + "nuschtosSearch", 261 + "flake-utils" 262 + ], 263 + "nixpkgs": [ 264 + "nixvim", 265 + "nuschtosSearch", 266 + "nixpkgs" 267 + ] 268 + }, 269 + "locked": { 270 + "lastModified": 1754860581, 271 + "narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=", 272 + "owner": "NuschtOS", 273 + "repo": "ixx", 274 + "rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281", 275 + "type": "github" 276 + }, 277 + "original": { 278 + "owner": "NuschtOS", 279 + "ref": "v0.1.1", 280 + "repo": "ixx", 281 + "type": "github" 282 + } 283 + }, 217 284 "lucide-src": { 218 285 "flake": false, 219 286 "locked": { ··· 355 422 "type": "github" 356 423 } 357 424 }, 425 + "nixvim": { 426 + "inputs": { 427 + "flake-parts": "flake-parts", 428 + "nixpkgs": [ 429 + "nixpkgs" 430 + ], 431 + "nuschtosSearch": "nuschtosSearch", 432 + "systems": "systems_2" 433 + }, 434 + "locked": { 435 + "lastModified": 1764148348, 436 + "narHash": "sha256-C9UobzCvMaLwNtRaFrt26TA/SkQtcDhJFmlVQ6DPHyA=", 437 + "owner": "nix-community", 438 + "repo": "nixvim", 439 + "rev": "7fe6951bf8c2719f437f74224adf3a2e875d6781", 440 + "type": "github" 441 + }, 442 + "original": { 443 + "owner": "nix-community", 444 + "repo": "nixvim", 445 + "type": "github" 446 + } 447 + }, 448 + "nuschtosSearch": { 449 + "inputs": { 450 + "flake-utils": "flake-utils", 451 + "ixx": "ixx", 452 + "nixpkgs": [ 453 + "nixvim", 454 + "nixpkgs" 455 + ] 456 + }, 457 + "locked": { 458 + "lastModified": 1761730856, 459 + "narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=", 460 + "owner": "NuschtOS", 461 + "repo": "search", 462 + "rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b", 463 + "type": "github" 464 + }, 465 + "original": { 466 + "owner": "NuschtOS", 467 + "repo": "search", 468 + "type": "github" 469 + } 470 + }, 358 471 "root": { 359 472 "inputs": { 360 473 "disko": "disko", ··· 363 476 "niri": "niri", 364 477 "nixos-apple-silicon": "nixos-apple-silicon", 365 478 "nixpkgs": "nixpkgs", 479 + "nixvim": "nixvim", 366 480 "sops-nix": "sops-nix", 367 481 "tangled": "tangled" 368 482 } ··· 401 515 } 402 516 }, 403 517 "systems": { 518 + "locked": { 519 + "lastModified": 1681028828, 520 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 521 + "owner": "nix-systems", 522 + "repo": "default", 523 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 524 + "type": "github" 525 + }, 526 + "original": { 527 + "owner": "nix-systems", 528 + "repo": "default", 529 + "type": "github" 530 + } 531 + }, 532 + "systems_2": { 533 + "locked": { 534 + "lastModified": 1681028828, 535 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 536 + "owner": "nix-systems", 537 + "repo": "default", 538 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 539 + "type": "github" 540 + }, 541 + "original": { 542 + "owner": "nix-systems", 543 + "repo": "default", 544 + "type": "github" 545 + } 546 + }, 547 + "systems_3": { 404 548 "locked": { 405 549 "lastModified": 1681028828, 406 550 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+10 -5
flake.nix
··· 6 6 url = "github:nix-community/disko/latest"; 7 7 inputs.nixpkgs.follows = "nixpkgs"; 8 8 }; 9 + finge = { 10 + url = "github:monke0192/nixos-06cb-009a-fingerprint-sensor?ref=unstable"; 11 + inputs.nixpkgs.follows = "nixpkgs"; 12 + }; 9 13 home-manager = { 10 14 url = "github:nix-community/home-manager/master"; 11 15 inputs.nixpkgs.follows = "nixpkgs"; ··· 19 23 inputs.nixpkgs.follows = "nixpkgs"; 20 24 }; 21 25 nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small"; 22 - sops-nix = { 23 - url = "github:Mic92/sops-nix"; 26 + nixvim = { 27 + url = "github:nix-community/nixvim"; 24 28 inputs.nixpkgs.follows = "nixpkgs"; 25 29 }; 26 - finge = { 27 - url = "github:monke0192/nixos-06cb-009a-fingerprint-sensor?ref=unstable"; 30 + sops-nix = { 31 + url = "github:Mic92/sops-nix"; 28 32 inputs.nixpkgs.follows = "nixpkgs"; 29 33 }; 30 34 tangled.url = "git+https://tangled.org/@tangled.org/core?ref=refs/tags/v1.11.0-alpha"; ··· 79 83 specialArgs = { inherit inputs; }; 80 84 modules = [ 81 85 ./${hostname} 82 - inputs.home-manager.nixosModules.home-manager 83 86 inputs.disko.nixosModules.disko 87 + inputs.home-manager.nixosModules.home-manager 84 88 inputs.sops-nix.nixosModules.sops 85 89 { 86 90 home-manager = { ··· 90 94 users."monke" = import ./${hostname}/home.nix; 91 95 sharedModules = [ 92 96 inputs.sops-nix.homeManagerModules.sops 97 + inputs.nixvim.homeModules.nixvim 93 98 ]; 94 99 }; 95 100 }
+3 -2
modules/core/misc.nix
··· 1 1 { pkgs, ... }: 2 2 { 3 3 home.packages = with pkgs; [ 4 + ripgrep 5 + duf 4 6 dust 5 - duf 7 + file 6 8 unzip 7 - file 8 9 ]; 9 10 10 11 programs.yt-dlp.enable = true;
+236
modules/core/nixvim.nix
··· 1 + { pkgs, ... }: 2 + { 3 + programs.nixvim = { 4 + enable = true; 5 + 6 + opts = { 7 + guifont = "Victor Mono:h12"; 8 + ignorecase = true; 9 + number = true; 10 + relativenumber = true; 11 + shiftwidth = 2; 12 + smartcase = true; 13 + smarttab = true; 14 + softtabstop = 2; 15 + tabstop = 2; 16 + termguicolors = true; 17 + }; 18 + 19 + plugins = { 20 + barbecue.enable = true; 21 + colorizer.enable = true; 22 + gitsigns.enable = true; 23 + noice.enable = true; 24 + nvim-surround.enable = true; 25 + parinfer-rust.enable = true; 26 + todo-comments.enable = true; 27 + trouble.enable = true; 28 + typst-vim.enable = true; 29 + web-devicons.enable = true; 30 + bufferline.enable = true; 31 + lspconfig.enable = true; 32 + lualine.enable = true; 33 + luasnip.enable = true; 34 + nvim-autopairs.enable = true; 35 + oil.enable = true; 36 + cmp = { 37 + enable = true; 38 + autoEnableSources = true; 39 + settings = { 40 + mapping = { 41 + "<S-Space>" = "cmp.mapping.complete()"; 42 + "<C-d>" = "cmp.mapping.scroll_docs(-4)"; 43 + "<C-e>" = "cmp.mapping.close()"; 44 + "<C-f>" = "cmp.mapping.scroll_docs(4)"; 45 + "<CR>" = "cmp.mapping.confirm({ select = true })"; 46 + }; 47 + sources = [ 48 + { name = "nvim_lsp"; } 49 + { name = "luasnip"; } 50 + { name = "path"; } 51 + { name = "buffer"; } 52 + ]; 53 + }; 54 + }; 55 + indent-blankline = { 56 + enable = true; 57 + settings.indent.char = "│"; 58 + }; 59 + lspkind = { 60 + enable = true; 61 + cmp.enable = true; 62 + }; 63 + telescope = { 64 + enable = true; 65 + keymaps = { 66 + "<Leader>fb" = "buffers"; 67 + "<Leader>ff" = "find_files"; 68 + "<Leader>fg" = "live_grep"; 69 + "<Leader>fh" = "help_tags"; 70 + }; 71 + }; 72 + treesitter = { 73 + enable = true; 74 + folding = true; 75 + 76 + grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ 77 + bash 78 + c 79 + cmake 80 + comment 81 + cpp 82 + css 83 + csv 84 + diff 85 + dockerfile 86 + gitcommit 87 + git_config 88 + git_rebase 89 + gitattributes 90 + go 91 + gomod 92 + gosum 93 + gotmpl 94 + html 95 + lua 96 + make 97 + nix 98 + markdown 99 + meson 100 + python 101 + regex 102 + scss 103 + typst 104 + ]; 105 + 106 + settings = { 107 + highlight.enable = true; 108 + indent.enable = true; 109 + }; 110 + }; 111 + }; 112 + 113 + lsp.servers = { 114 + gopls = { 115 + enable = true; 116 + config = { 117 + analyses = { 118 + composites = false; 119 + }; 120 + }; 121 + }; 122 + clangd.enable = true; 123 + tinymist = { 124 + enable = true; 125 + config = { 126 + single_file_support = true; 127 + settings = { 128 + exportPdf = "onType"; 129 + }; 130 + }; 131 + }; 132 + nil_ls.enable = true; 133 + }; 134 + 135 + keymaps = [ 136 + { 137 + # navigation 138 + action = "h"; 139 + key = "m"; 140 + mode = [ 141 + "n" 142 + "v" 143 + ]; 144 + } 145 + { 146 + action = "j"; 147 + key = "n"; 148 + mode = [ 149 + "n" 150 + "v" 151 + ]; 152 + } 153 + { 154 + action = "k"; 155 + key = "e"; 156 + mode = [ 157 + "n" 158 + "v" 159 + ]; 160 + } 161 + { 162 + action = "l"; 163 + key = "i"; 164 + mode = [ 165 + "n" 166 + "v" 167 + ]; 168 + } 169 + { 170 + action = "n"; 171 + key = "k"; 172 + mode = [ "n" ]; 173 + } 174 + { 175 + action = "N"; 176 + key = "K"; 177 + mode = [ "n" ]; 178 + } 179 + { 180 + # editing 181 + action = "i"; 182 + key = "t"; 183 + mode = [ "n" ]; 184 + } 185 + { 186 + action = "I"; 187 + key = "T"; 188 + mode = [ "n" ]; 189 + } 190 + { 191 + # window splitting 192 + action = "<C-w>h"; 193 + key = "<C-w>m"; 194 + mode = [ "n" ]; 195 + } 196 + { 197 + action = "<C-w>j"; 198 + key = "<C-w>n"; 199 + mode = [ "n" ]; 200 + } 201 + { 202 + action = "<C-w>k"; 203 + key = "<C-w>e"; 204 + mode = [ "n" ]; 205 + } 206 + { 207 + action = "<C-w>l"; 208 + key = "<C-w>i"; 209 + mode = [ "n" ]; 210 + } 211 + { 212 + # plugins 213 + action = "<cmd>Oil<CR>"; 214 + key = "<Leader>n"; 215 + mode = [ "n" ]; 216 + } 217 + { 218 + # misc 219 + action = "<Leader>"; 220 + key = "<Space>"; 221 + mode = [ "n" ]; 222 + options.remap = true; 223 + } 224 + { 225 + action = "<cmd>noh<CR>"; 226 + key = "<Leader>/"; 227 + mode = [ "n" ]; 228 + } 229 + { 230 + action = "<cmd>bufdo bd<CR>"; 231 + key = "ZC"; 232 + mode = [ "n" ]; 233 + } 234 + ]; 235 + }; 236 + }
+3 -3
modules/email.nix
··· 39 39 enable = true; 40 40 externalEditor = "neovide -- -c 'set ft=mail' '+set fileencoding=utf-8' '+set ff=unix' '+set enc=utf-8' '+set fo+=w' %1"; 41 41 pollScript = '' 42 - mbsync monke 43 - notmuch new 44 - ''; 42 + mbsync monke 43 + notmuch new 44 + ''; 45 45 }; 46 46 programs.mbsync.enable = true; 47 47 programs.msmtp.enable = true;
-1
nixos/core/packages.nix
··· 1 1 { 2 - pkgs, 3 2 lib, 4 3 inputs, 5 4 ...