❄️ My personnal NixOS configuration
nix-flake nixos-configuration linux dotfiles flake nix nix-config nixos nixos-flake linux-desktop
0
fork

Configure Feed

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

Merge pull request #29 from KeyZox71/nixvim

Nixvim

authored by

Adam and committed by
GitHub
a03fd7ce fc9e73c7

+802 -76
+168 -63
flake.lock
··· 7 7 ] 8 8 }, 9 9 "locked": { 10 - "lastModified": 1754110230, 11 - "narHash": "sha256-svw+V5zd3SLwapumusLg5Z4rGeCYfmvNgbrPDbULpzA=", 10 + "lastModified": 1754375421, 11 + "narHash": "sha256-iJ955VTkw83f6xBWaCIyTvdvk0yJUzW7tZYcAsfXYCw=", 12 12 "owner": "catppuccin", 13 13 "repo": "nix", 14 - "rev": "2b7ddebd251cf830f83f444b60e156cdf94b65e3", 14 + "rev": "ddf38fd5773ca3044d27a6bfdcc2c7b6d52861d9", 15 15 "type": "github" 16 16 }, 17 17 "original": { ··· 41 41 "nixpkgs": "nixpkgs" 42 42 }, 43 43 "locked": { 44 - "lastModified": 1750903843, 45 - "narHash": "sha256-Ng9+f0H5/dW+mq/XOKvB9uwvGbsuiiO6HrPdAcVglCs=", 44 + "lastModified": 1753140376, 45 + "narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=", 46 46 "owner": "nix-community", 47 47 "repo": "disko", 48 - "rev": "83c4da299c1d7d300f8c6fd3a72ac46cb0d59aae", 48 + "rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c", 49 49 "type": "github" 50 50 }, 51 51 "original": { ··· 109 109 }, 110 110 "flake-parts_2": { 111 111 "inputs": { 112 - "nixpkgs-lib": "nixpkgs-lib" 112 + "nixpkgs-lib": [ 113 + "nixvim", 114 + "nixpkgs" 115 + ] 113 116 }, 114 117 "locked": { 115 - "lastModified": 1733312601, 116 - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", 118 + "lastModified": 1754091436, 119 + "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=", 117 120 "owner": "hercules-ci", 118 121 "repo": "flake-parts", 119 - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", 122 + "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd", 120 123 "type": "github" 121 124 }, 122 125 "original": { ··· 127 130 }, 128 131 "flake-parts_3": { 129 132 "inputs": { 133 + "nixpkgs-lib": "nixpkgs-lib" 134 + }, 135 + "locked": { 136 + "lastModified": 1751413152, 137 + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", 138 + "owner": "hercules-ci", 139 + "repo": "flake-parts", 140 + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", 141 + "type": "github" 142 + }, 143 + "original": { 144 + "owner": "hercules-ci", 145 + "repo": "flake-parts", 146 + "type": "github" 147 + } 148 + }, 149 + "flake-parts_4": { 150 + "inputs": { 130 151 "nixpkgs-lib": "nixpkgs-lib_2" 131 152 }, 132 153 "locked": { ··· 190 211 ] 191 212 }, 192 213 "locked": { 193 - "lastModified": 1750792728, 194 - "narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=", 214 + "lastModified": 1753592768, 215 + "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=", 195 216 "owner": "nix-community", 196 217 "repo": "home-manager", 197 - "rev": "366f00797b1efb70f2882d3da485e3c10fd3d557", 218 + "rev": "fc3add429f21450359369af74c2375cb34a2d204", 198 219 "type": "github" 199 220 }, 200 221 "original": { ··· 212 233 ] 213 234 }, 214 235 "locked": { 215 - "lastModified": 1743604125, 216 - "narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", 236 + "lastModified": 1752603129, 237 + "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", 217 238 "owner": "nix-community", 218 239 "repo": "home-manager", 219 - "rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", 240 + "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", 220 241 "type": "github" 221 242 }, 222 243 "original": { ··· 232 253 ] 233 254 }, 234 255 "locked": { 235 - "lastModified": 1750372088, 236 - "narHash": "sha256-LPwgPRBTfnA76rHUr7KYvwq2pNt5IfxymNAZUJFvn/M=", 256 + "lastModified": 1753252360, 257 + "narHash": "sha256-PFAJoEqQWMlo1J+yZb+4HixmhbRVmmNl58e/AkLYDDI=", 237 258 "owner": "hyprwm", 238 259 "repo": "contrib", 239 - "rev": "189f32f56285aae9646bf1292976392beba5a2e2", 260 + "rev": "6839b23345b71db17cd408373de4f5605bf589b8", 240 261 "type": "github" 241 262 }, 242 263 "original": { ··· 245 266 "type": "github" 246 267 } 247 268 }, 248 - "keyznvim": { 269 + "ixx": { 249 270 "inputs": { 250 - "flake-utils": "flake-utils", 271 + "flake-utils": [ 272 + "nixvim", 273 + "nuschtosSearch", 274 + "flake-utils" 275 + ], 251 276 "nixpkgs": [ 277 + "nixvim", 278 + "nuschtosSearch", 252 279 "nixpkgs" 253 280 ] 254 281 }, 255 282 "locked": { 256 - "lastModified": 1753344798, 257 - "narHash": "sha256-sOF57nivqvgSXD1kUWjN0sLwJGIm/YQ7Jvk233sSOGs=", 258 - "owner": "keyzox71", 259 - "repo": "nvim", 260 - "rev": "b1d1d7bfd0ac9e27e1a464adfcc78d0a74885fb1", 283 + "lastModified": 1748294338, 284 + "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=", 285 + "owner": "NuschtOS", 286 + "repo": "ixx", 287 + "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85", 261 288 "type": "github" 262 289 }, 263 290 "original": { 264 - "owner": "keyzox71", 265 - "ref": "indev", 266 - "repo": "nvim", 291 + "owner": "NuschtOS", 292 + "ref": "v0.0.8", 293 + "repo": "ixx", 267 294 "type": "github" 268 295 } 269 296 }, ··· 315 342 "nixpkgs": "nixpkgs_2" 316 343 }, 317 344 "locked": { 318 - "lastModified": 1749574455, 319 - "narHash": "sha256-fm2/8KPOYvvIAnNVtjDlTt/My00lIbZQ+LMrfQIWVzs=", 345 + "lastModified": 1754326498, 346 + "narHash": "sha256-3ynDaygIzQYlBZFHGDeQzXmPkX2ILeZ0wWJ84FR4g7E=", 320 347 "owner": "nix-community", 321 348 "repo": "NixOS-WSL", 322 - "rev": "917af390377c573932d84b5e31dd9f2c1b5c0f09", 349 + "rev": "ca55236cd9ef3cdea29b51a0b52a9402c60e9a27", 323 350 "type": "github" 324 351 }, 325 352 "original": { ··· 331 358 }, 332 359 "nixpkgs": { 333 360 "locked": { 334 - "lastModified": 1750836778, 335 - "narHash": "sha256-sRLyRiC7TezRbbjGJwUFOgb2xMbSr3wQ0oJKfYlQ6s0=", 361 + "lastModified": 1752596105, 362 + "narHash": "sha256-lFNVsu/mHLq3q11MuGkMhUUoSXEdQjCHvpReaGP1S2k=", 336 363 "owner": "NixOS", 337 364 "repo": "nixpkgs", 338 - "rev": "d7bb1922f0bb3d0c990f56f9cdb767fdb20a5f22", 365 + "rev": "dab3a6e781554f965bde3def0aa2fda4eb8f1708", 339 366 "type": "github" 340 367 }, 341 368 "original": { ··· 347 374 }, 348 375 "nixpkgs-lib": { 349 376 "locked": { 350 - "lastModified": 1733096140, 351 - "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", 352 - "type": "tarball", 353 - "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" 377 + "lastModified": 1751159883, 378 + "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", 379 + "owner": "nix-community", 380 + "repo": "nixpkgs.lib", 381 + "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", 382 + "type": "github" 354 383 }, 355 384 "original": { 356 - "type": "tarball", 357 - "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" 385 + "owner": "nix-community", 386 + "repo": "nixpkgs.lib", 387 + "type": "github" 358 388 } 359 389 }, 360 390 "nixpkgs-lib_2": { ··· 387 417 }, 388 418 "nixpkgs_2": { 389 419 "locked": { 390 - "lastModified": 1749173751, 391 - "narHash": "sha256-ENY3y3v6S9ZmLDDLI3LUT8MXmfXg/fSt2eA4GCnMVCE=", 420 + "lastModified": 1754214453, 421 + "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", 392 422 "owner": "NixOS", 393 423 "repo": "nixpkgs", 394 - "rev": "ed29f002b6d6e5e7e32590deb065c34a31dc3e91", 424 + "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", 395 425 "type": "github" 396 426 }, 397 427 "original": { 398 428 "owner": "NixOS", 399 - "ref": "nixos-24.11", 429 + "ref": "nixos-unstable", 400 430 "repo": "nixpkgs", 401 431 "type": "github" 402 432 } 403 433 }, 404 434 "nixpkgs_3": { 405 435 "locked": { 406 - "lastModified": 1750838302, 407 - "narHash": "sha256-aVkL3/yu50oQzi2YuKo0ceiCypVZpZXYd2P2p1FMJM4=", 436 + "lastModified": 1754292888, 437 + "narHash": "sha256-1ziydHSiDuSnaiPzCQh1mRFBsM2d2yRX9I+5OPGEmIE=", 408 438 "owner": "nixos", 409 439 "repo": "nixpkgs", 410 - "rev": "7284e2decc982b81a296ab35aa46e804baaa1cfe", 440 + "rev": "ce01daebf8489ba97bd1609d185ea276efdeb121", 411 441 "type": "github" 412 442 }, 413 443 "original": { ··· 417 447 "type": "github" 418 448 } 419 449 }, 450 + "nixpkgs_4": { 451 + "locked": { 452 + "lastModified": 1754278406, 453 + "narHash": "sha256-jvIQTMN5EzoOP5RaGztpVese8a3wqy0M/h6tNzycW28=", 454 + "owner": "NixOS", 455 + "repo": "nixpkgs", 456 + "rev": "6a489c9482ca676ce23c0bcd7f2e1795383325fa", 457 + "type": "github" 458 + }, 459 + "original": { 460 + "owner": "NixOS", 461 + "ref": "nixpkgs-unstable", 462 + "repo": "nixpkgs", 463 + "type": "github" 464 + } 465 + }, 466 + "nixvim": { 467 + "inputs": { 468 + "flake-parts": "flake-parts_2", 469 + "nixpkgs": "nixpkgs_4", 470 + "nuschtosSearch": "nuschtosSearch", 471 + "systems": "systems_2" 472 + }, 473 + "locked": { 474 + "lastModified": 1754397955, 475 + "narHash": "sha256-4hQT8mDSRNgPKiPdpYwr2QVJdA4FaUhOjT2lKkW8QHQ=", 476 + "owner": "nix-community", 477 + "repo": "nixvim", 478 + "rev": "8d47a07563120b36af149edf2273034563339a91", 479 + "type": "github" 480 + }, 481 + "original": { 482 + "owner": "nix-community", 483 + "repo": "nixvim", 484 + "type": "github" 485 + } 486 + }, 487 + "nuschtosSearch": { 488 + "inputs": { 489 + "flake-utils": "flake-utils", 490 + "ixx": "ixx", 491 + "nixpkgs": [ 492 + "nixvim", 493 + "nixpkgs" 494 + ] 495 + }, 496 + "locked": { 497 + "lastModified": 1754301638, 498 + "narHash": "sha256-aRgzcPDd2axHFOuMlPLuzmDptUM2JU8mUL3jfgbBeyc=", 499 + "owner": "NuschtOS", 500 + "repo": "search", 501 + "rev": "a60091045273484c040a91f5c229ba298f8ecc27", 502 + "type": "github" 503 + }, 504 + "original": { 505 + "owner": "NuschtOS", 506 + "repo": "search", 507 + "type": "github" 508 + } 509 + }, 420 510 "pogit": { 421 511 "inputs": { 422 - "flake-parts": "flake-parts_2", 512 + "flake-parts": "flake-parts_3", 423 513 "nixpkgs": [ 424 514 "nixpkgs" 425 515 ] 426 516 }, 427 517 "locked": { 428 - "lastModified": 1749310715, 429 - "narHash": "sha256-MYaYMHNHrgBklZtfckZVBDtJ1/NWxan4NYEMNN+m8+U=", 518 + "lastModified": 1752560492, 519 + "narHash": "sha256-0x6S6Ea4FxRDlKqvXeAJpYQ6N7KYKMNUtm/dUx4kSrE=", 430 520 "owner": "y-syo", 431 521 "repo": "pogit", 432 - "rev": "41ff687e0de434dfea979e3f8bc037434aa5d086", 522 + "rev": "28c74d71e0accb7677d36ad807191a041671bbda", 433 523 "type": "github" 434 524 }, 435 525 "original": { ··· 440 530 }, 441 531 "pogit_2": { 442 532 "inputs": { 443 - "flake-parts": "flake-parts_3", 533 + "flake-parts": "flake-parts_4", 444 534 "nixpkgs": [ 445 535 "timmy", 446 536 "nixpkgs" ··· 494 584 ] 495 585 }, 496 586 "locked": { 497 - "lastModified": 1753090404, 498 - "narHash": "sha256-aiE7NxolTF+oj7B7K4j6iQI4NaFUamh5gHLvBqAqDaU=", 587 + "lastModified": 1753110793, 588 + "narHash": "sha256-sytqwPJQYf3OlKvFHxlCbtKOTGEviE99huTnxBf41iQ=", 499 589 "owner": "keyzox71", 500 590 "repo": "randomTimer", 501 - "rev": "5a1617d99099b54a10434c1f875dce6d120b866b", 591 + "rev": "d04d13a10803a7d860485d5a4e6658aee3da6a09", 502 592 "type": "github" 503 593 }, 504 594 "original": { ··· 513 603 "disko": "disko", 514 604 "home-manager": "home-manager", 515 605 "hyprland-contrib": "hyprland-contrib", 516 - "keyznvim": "keyznvim", 517 606 "lanzaboote": "lanzaboote", 518 607 "nixos-hardware": "nixos-hardware", 519 608 "nixos-wsl": "nixos-wsl", 520 609 "nixpkgs": "nixpkgs_3", 610 + "nixvim": "nixvim", 521 611 "pogit": "pogit", 522 612 "randomTimer": "randomTimer", 523 613 "timmy": "timmy", ··· 561 651 "type": "github" 562 652 } 563 653 }, 654 + "systems_2": { 655 + "locked": { 656 + "lastModified": 1681028828, 657 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 658 + "owner": "nix-systems", 659 + "repo": "default", 660 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 661 + "type": "github" 662 + }, 663 + "original": { 664 + "owner": "nix-systems", 665 + "repo": "default", 666 + "type": "github" 667 + } 668 + }, 564 669 "timmy": { 565 670 "inputs": { 566 671 "nixpkgs": [ ··· 584 689 }, 585 690 "unstablepkgs": { 586 691 "locked": { 587 - "lastModified": 1750776420, 588 - "narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=", 692 + "lastModified": 1754214453, 693 + "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", 589 694 "owner": "nixos", 590 695 "repo": "nixpkgs", 591 - "rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf", 696 + "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", 592 697 "type": "github" 593 698 }, 594 699 "original": { ··· 606 711 ] 607 712 }, 608 713 "locked": { 609 - "lastModified": 1750998539, 610 - "narHash": "sha256-lmyIs/tlMtRq92NYPAix8iwN85oCrcqIXzOAo9gqYl0=", 714 + "lastModified": 1754365690, 715 + "narHash": "sha256-je5DVA23UU2RzJB1A7VTNSohPk/FE8HwDJaSK65/UJg=", 611 716 "owner": "0xc000022070", 612 717 "repo": "zen-browser-flake", 613 - "rev": "ea8a9b6b32027a1eeba7fcef4a3368d7f867c110", 718 + "rev": "ec4909d02fb8c2d3c00ca71ceafb65753b4e3ea6", 614 719 "type": "github" 615 720 }, 616 721 "original": {
+43 -9
flake.nix
··· 8 8 catppuccin, 9 9 home-manager, 10 10 nixos-hardware, 11 - nixos-wsl, 12 11 disko, 13 12 lanzaboote, 14 13 ... ··· 17 16 inherit (self) outputs; 18 17 supportedSystems = [ 19 18 "x86_64-linux" 20 - # "aarch64-linux" 21 19 "x86_64-darwin" 22 - # "aarch64-darwin" 23 20 ]; 24 21 forEachSupportedSystem = 25 22 f: ··· 27 24 system: 28 25 f { 29 26 pkgs = import nixpkgs { inherit system; }; 27 + system = system; 30 28 } 31 29 ); 32 30 ··· 83 81 }; 84 82 }; 85 83 devShells = forEachSupportedSystem ( 86 - { pkgs }: 84 + { pkgs, system }: 87 85 { 88 86 default = pkgs.mkShell { 89 87 packages = with pkgs; [ ··· 94 92 } 95 93 ); 96 94 packages = forEachSupportedSystem ( 97 - { pkgs }: 95 + { pkgs, system }: 96 + let 97 + nixvim = inputs.nixvim.legacyPackages.${system}; 98 + liteMode = true; 99 + home = "/home/adjoly/"; 100 + in 98 101 { 99 102 adjust-brightness = import ./pkgs/adjust-brightness { inherit pkgs; }; 103 + keyznvim = import ./pkgs/keyznvim { 104 + inherit 105 + pkgs 106 + nixvim 107 + outputs 108 + inputs 109 + self 110 + home 111 + ; 112 + }; 113 + keyznvim-lite = import ./pkgs/keyznvim { 114 + inherit 115 + nixvim 116 + pkgs 117 + inputs 118 + outputs 119 + liteMode 120 + self 121 + home 122 + ; 123 + }; 100 124 } 101 125 ); 102 126 ··· 111 135 services = import ./modules/nixos/services; 112 136 hardware = import ./modules/nixos/hardware; 113 137 programs = import ./modules/nixos/programs; 138 + }; 139 + 140 + nixvimModules = { 141 + default = import ./modules/nixvim; 142 + servers = import ./modules/nixvim/servers; 114 143 }; 115 144 }; 116 145 ··· 133 162 inputs.nixpkgs.follows = "nixpkgs"; 134 163 }; 135 164 136 - keyznvim = { 137 - url = "github:keyzox71/nvim/indev"; 138 - inputs.nixpkgs.follows = "nixpkgs"; 139 - }; 165 + # keyznvim = { 166 + # url = "github:keyzox71/nvim/indev"; 167 + # inputs.nixpkgs.follows = "nixpkgs"; 168 + # }; 140 169 141 170 pogit = { 142 171 url = "github:y-syo/pogit"; ··· 169 198 randomTimer = { 170 199 url = "github:keyzox71/randomTimer"; 171 200 inputs.nixpkgs.follows = "nixpkgs"; 201 + }; 202 + 203 + nixvim = { 204 + url = "github:nix-community/nixvim"; 205 + # inputs.nixpkgs.follows = "nixpkgs"; 172 206 }; 173 207 }; 174 208
+5 -4
modules/home-manager/cli/cli-app.nix
··· 3 3 config, 4 4 pkgs, 5 5 inputs, 6 + self, 6 7 ... 7 8 }: 8 9 ··· 14 15 config = lib.mkIf config.keyzox.cli-app.enable { 15 16 home.packages = with pkgs; [ 16 17 inputs.timmy.packages.${pkgs.system}.timmy 17 - keyznvim 18 + self.packages.${pkgs.system}.keyznvim 18 19 ]; 19 20 20 21 programs.yazi = { ··· 39 40 }; 40 41 }; 41 42 42 - nixpkgs.overlays = [ 43 - inputs.keyznvim.overlays.default 44 - ]; 43 + # nixpkgs.overlays = [ 44 + # inputs.keyznvim.overlays.default 45 + # ]; 45 46 }; 46 47 }
+65
modules/nixvim/servers/default.nix
··· 1 + { 2 + inputs, 3 + lib, 4 + pkgs, 5 + config, 6 + ... 7 + }: 8 + 9 + let 10 + inherit (config.keyzox.lsp) serversPath; 11 + 12 + serverSettingsPath = name: "${toString serversPath}/${name}.nix"; 13 + 14 + generateLspConfig = 15 + name: 16 + let 17 + path = serverSettingsPath name; 18 + hasCustomSettings = builtins.pathExists path; 19 + settingsPart = 20 + if hasCustomSettings then 21 + { 22 + settings = import path; 23 + } 24 + else 25 + { 26 + }; 27 + baseConfig = 28 + if config.keyzox.lsp.liteMode then 29 + { 30 + enable = true; 31 + package = null; 32 + } 33 + else 34 + { 35 + enable = true; 36 + }; 37 + in 38 + lib.mkMerge [ 39 + settingsPart 40 + baseConfig 41 + ]; 42 + in 43 + { 44 + options = { 45 + keyzox.lsp.liteMode = lib.mkEnableOption "Can be used to enable 'liteMode' which does not install the packages of the lsp"; 46 + keyzox.lsp.enabled = lib.mkOption { 47 + type = lib.types.listOf lib.types.str; 48 + default = [ ]; 49 + example = [ 50 + "clangd" 51 + "gopls" 52 + ]; 53 + description = "Can be used to enable a list of lsp"; 54 + }; 55 + keyzox.lsp.serversPath = lib.mkOption { 56 + type = lib.types.path; 57 + default = ./servers; # fallback if not provided 58 + description = "Path to the directory containing per-LSP server configs."; 59 + }; 60 + }; 61 + 62 + config = lib.mkIf (config.keyzox.lsp.enabled != [ ]) { 63 + lsp.servers = lib.genAttrs config.keyzox.lsp.enabled generateLspConfig; 64 + }; 65 + }
+40
pkgs/keyznvim/config/color.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + colorschemes.catppuccin = { 6 + enable = true; 7 + settings = { 8 + default_integrations = true; 9 + flavour = "auto"; 10 + background = { 11 + dark = "frappe"; 12 + light = "latte"; 13 + }; 14 + integrations = { 15 + cmp = true; 16 + telescope.enabled = true; 17 + treesitter = true; 18 + native_lsp = { 19 + enabled = true; 20 + inlay_hints = { 21 + background = true; 22 + }; 23 + virtual_text = { 24 + errors = [ "italic" ]; 25 + hints = [ "italic" ]; 26 + information = [ "italic" ]; 27 + warnings = [ "italic" ]; 28 + ok = [ "italic" ]; 29 + }; 30 + underlines = { 31 + errors = [ "underline" ]; 32 + hints = [ "underline" ]; 33 + information = [ "underline" ]; 34 + warnings = [ "underline" ]; 35 + }; 36 + }; 37 + }; 38 + }; 39 + }; 40 + }
+24
pkgs/keyznvim/config/default.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + imports = [ 6 + ./color.nix 7 + ./options.nix 8 + ./mappings.nix 9 + ./performance.nix 10 + 11 + ./plugins 12 + ./lsp 13 + ]; 14 + 15 + viAlias = true; 16 + vimAlias = true; 17 + 18 + opts = { 19 + number = true; 20 + relativenumber = true; 21 + }; 22 + 23 + clipboard.register = "unnamedplus"; 24 + }
+60
pkgs/keyznvim/config/lsp/cmp.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + 6 + opts.completeopt = [ 7 + "menu" 8 + "menuone" 9 + "noselect" 10 + ]; 11 + plugins = { 12 + luasnip.enable = true; 13 + lspkind = { 14 + enable = true; 15 + 16 + cmp = { 17 + enable = true; 18 + menu = { 19 + nvim_lsp = "[LSP]"; 20 + nvim_lua = "[api]"; 21 + path = "[path]"; 22 + luasnip = "[snip]"; 23 + buffer = "[buffer]"; 24 + neorg = "[neorg]"; 25 + nixpkgs_maintainers = "[nixpkgs]"; 26 + }; 27 + }; 28 + }; 29 + cmp = { 30 + enable = true; 31 + # autoEnableSources = true; 32 + settings = { 33 + snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end"; 34 + mapping = { 35 + "<C-Space>" = "cmp.mapping.complete()"; 36 + "<C-n>" = "cmp.mapping(cmp.mapping.select_next_item(), { 'i', 's' })"; 37 + "<C-p>" = "cmp.mapping(cmp.mapping.select_prev_item(), { 'i', 's' })"; 38 + "<C-y>" = "cmp.mapping.confirm({ select = true })"; 39 + }; 40 + completion = { 41 + autoComplete = [ 42 + "require('cmp.types').cmp.TriggerEvent.TextChanged" 43 + ]; 44 + }; 45 + sources = [ 46 + { name = "path"; } 47 + { name = "nvim_lsp"; } 48 + { name = "luasnip"; } 49 + { 50 + name = "buffer"; 51 + # Words from other open buffers can also be suggested. 52 + option.get_bufnrs.__raw = "vim.api.nvim_list_bufs"; 53 + } 54 + { name = "neorg"; } 55 + { name = "nixpkgs_maintainers"; } 56 + ]; 57 + }; 58 + }; 59 + }; 60 + }
+55
pkgs/keyznvim/config/lsp/default.nix
··· 1 + { 2 + liteMode, 3 + self, 4 + ... 5 + }: 6 + { 7 + imports = [ 8 + self.nixvimModules.servers 9 + 10 + ./cmp.nix 11 + ]; 12 + 13 + lsp = { 14 + keymaps = [ 15 + { 16 + key = "K"; 17 + lspBufAction = "hover"; 18 + } 19 + ]; 20 + inlayHints.enable = true; 21 + }; 22 + lsp.servers."*" = { 23 + settings = { 24 + capabilities = { 25 + textDocument = { 26 + semanticTokens = { 27 + multilineTokenSupport = true; 28 + }; 29 + }; 30 + }; 31 + }; 32 + }; 33 + extraConfigLua = '' 34 + vim.diagnostic.enable() 35 + vim.diagnostic.config({ 36 + virtual_text = true 37 + }) 38 + ''; 39 + 40 + plugins.lspconfig.enable = true; 41 + 42 + keyzox.lsp = { 43 + liteMode = liteMode; 44 + enabled = [ 45 + "clangd" 46 + "gopls" 47 + "bashls" 48 + "solidity_ls" 49 + "nixd" 50 + "lua_ls" 51 + "ts_ls" 52 + ]; 53 + serversPath = ./servers; 54 + }; 55 + }
+10
pkgs/keyznvim/config/lsp/servers/nixd.nix
··· 1 + { 2 + settings.nixd = { 3 + formatting = { 4 + command = [ "nixfmt" ]; 5 + }; 6 + nixpkgs = { 7 + expr = "import <nixpkgs> { }"; 8 + }; 9 + }; 10 + }
+7
pkgs/keyznvim/config/lsp/servers/solidity_ls.nix
··· 1 + { 2 + settings = { 3 + solitidy = { 4 + linter = "solhint"; 5 + }; 6 + }; 7 + }
+49
pkgs/keyznvim/config/mappings.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + keymaps = [ 6 + { 7 + mode = "n"; 8 + key = "<Esc>"; 9 + action = "<cmd>noh<cr>"; 10 + options.desc = "General Clear highlights"; 11 + } 12 + { 13 + mode = "n"; 14 + key = "<leader>gd"; 15 + action.__raw = "function() vim.lsp.buf.definition() vim.cmd('normal! zz') end"; 16 + options.desc = "Go to definition"; 17 + } 18 + { 19 + mode = "n"; 20 + key = "<leader>FF"; 21 + action.__raw = "function() vim.lsp.buf.format() end"; 22 + options.desc = "Format the code"; 23 + } 24 + { 25 + mode = "n"; 26 + key = "<leader>tt"; 27 + action = "<cmd>TodoTelescope<cr>"; 28 + options.desc = "Telescope for todo"; 29 + } 30 + { 31 + mode = "v"; 32 + key = "J"; 33 + action = ":m '>+1<CR>gv=gv"; 34 + options = { 35 + silent = true; 36 + desc = "Editing Move line down"; 37 + }; 38 + } 39 + { 40 + mode = "v"; 41 + key = "K"; 42 + action = ":m '<-2<CR>gv=gv"; 43 + options = { 44 + silent = true; 45 + desc = "Editing Move line up"; 46 + }; 47 + } 48 + ]; 49 + }
+23
pkgs/keyznvim/config/options.nix
··· 1 + { 2 + home ? "", 3 + ... 4 + }: 5 + { 6 + globals = { 7 + mapleader = " "; 8 + maplocalleader = " "; 9 + }; 10 + 11 + opts = { 12 + tabstop = 4; 13 + softtabstop = 4; 14 + shiftwidth = 4; 15 + 16 + smartindent = true; 17 + 18 + swapfile = false; 19 + backup = false; 20 + undofile = true; 21 + undodir = "${if home != "" then home else "/tmp/"}.vim/undodir"; 22 + }; 23 + }
+9
pkgs/keyznvim/config/performance.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + performance = { 6 + byteCompileLua.enable = true; 7 + combinePlugins.enable = true; 8 + }; 9 + }
+30
pkgs/keyznvim/config/plugins/42header.nix
··· 1 + { 2 + pkgs, 3 + ... 4 + }: 5 + let 6 + plugin = pkgs.vimUtils.buildVimPlugin { 7 + pname = "42header-nvim"; 8 + version = "4303be09d9615e9169661b3e5d5a98c3eecee0ff"; 9 + src = pkgs.fetchFromGitHub { 10 + owner = "Diogo-ss"; 11 + repo = "42-header.nvim"; 12 + rev = "4303be09d9615e9169661b3e5d5a98c3eecee0ff"; 13 + sha256 = "7byIoFoaRag23Zej7ioL+2WjAv7Zttn1/WZrya0NZPo="; 14 + }; 15 + }; 16 + in 17 + { 18 + extraPlugins = [ 19 + plugin 20 + ]; 21 + extraConfigLua = " 22 + require(\"42header\").setup { 23 + default_map = true, -- Default mapping <F1> in normal mode. 24 + auto_update = true, -- Update header when saving. 25 + user = \"adjoly\", -- Your user. 26 + mail = \"adjoly@student.42angouleme.fr\", -- Your mail. 27 + -- add other options. 28 + } 29 + "; 30 + }
+31
pkgs/keyznvim/config/plugins/auto-session.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + plugins.auto-session = { 6 + enable = true; 7 + settings = { 8 + enabled = true; 9 + session_lens = { 10 + load_on_setup = true; 11 + }; 12 + }; 13 + }; 14 + keymaps = [ 15 + { 16 + mode = "n"; 17 + key = "<leader>wr"; 18 + action = "<cmd>SessionSearch<cr>"; 19 + } 20 + { 21 + mode = "n"; 22 + key = "<leader>ws"; 23 + action = "<cmd>SessionSave<cr>"; 24 + } 25 + { 26 + mode = "n"; 27 + key = "<leader>wa"; 28 + action = "<cmd>SessionToggleAutoSave<cr>"; 29 + } 30 + ]; 31 + }
+34
pkgs/keyznvim/config/plugins/autodarkmode.nix
··· 1 + { 2 + pkgs, 3 + ... 4 + }: 5 + let 6 + auto-dark-mode-plugin = pkgs.vimUtils.buildVimPlugin { 7 + pname = "auto-dark-mode"; 8 + version = ""; 9 + src = pkgs.fetchFromGitHub { 10 + owner = "f-person"; 11 + repo = "auto-dark-mode.nvim"; 12 + rev = "e300259ec777a40b4b9e3c8e6ade203e78d15881"; 13 + sha256 = "PhhOlq4byctWJ5rLe3cifImH56vR2+k3BZGDZdQvjng="; 14 + }; 15 + }; 16 + in 17 + { 18 + extraPlugins = [ 19 + auto-dark-mode-plugin 20 + ]; 21 + extraConfigLua = " 22 + require(\"auto-dark-mode\").setup { 23 + update_interval = 1000, 24 + set_dark_mode = function() 25 + vim.cmd('Catppuccin frappe') 26 + vim.cmd(\"hi Normal ctermbg=none guibg=none\") 27 + end, 28 + set_light_mode = function() 29 + vim.cmd('Catppuccin latte') 30 + vim.cmd(\"hi Normal ctermbg=none guibg=none\") 31 + end, 32 + } 33 + "; 34 + }
+26
pkgs/keyznvim/config/plugins/default.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + imports = [ 6 + ./42header.nix 7 + ./autodarkmode.nix 8 + ./auto-session.nix 9 + ./harpoon.nix 10 + ./oil.nix 11 + ./telescope.nix 12 + ./undotree.nix 13 + ./treesitter.nix 14 + ]; 15 + 16 + plugins = { 17 + todo-comments.enable = true; 18 + tmux-navigator.enable = true; 19 + # vim-be-good.enable = true; 20 + illuminate.enable = true; 21 + nvim-autopairs.enable = true; 22 + comment.enable = true; 23 + web-devicons.enable = true; 24 + }; 25 + 26 + }
+42
pkgs/keyznvim/config/plugins/harpoon.nix
··· 1 + { 2 + pkgs, 3 + nixvim, 4 + ... 5 + }: 6 + { 7 + plugins.harpoon = { 8 + enable = true; 9 + }; 10 + keymaps = [ 11 + { 12 + mode = "n"; 13 + key = "<leader>a"; 14 + action.__raw = "function() require(\"harpoon\"):list():add() end"; 15 + } 16 + { 17 + mode = "n"; 18 + key = "<leader>e"; 19 + action.__raw = "function() require(\"harpoon\").ui:toggle_quick_menu(require(\"harpoon\"):list()) end"; 20 + } 21 + { 22 + mode = "n"; 23 + key = "<leader>n"; 24 + action.__raw = "function() require(\"harpoon\"):list():select(1) end"; 25 + } 26 + { 27 + mode = "n"; 28 + key = "<leader>m"; 29 + action.__raw = "function() require(\"harpoon\"):list():select(2) end"; 30 + } 31 + { 32 + mode = "n"; 33 + key = "<C-n>"; 34 + action.__raw = "function() require(\"harpoon\"):list():select(3) end"; 35 + } 36 + { 37 + mode = "n"; 38 + key = "<C-m>"; 39 + action.__raw = "function() require(\"harpoon\"):list():select(4) end"; 40 + } 41 + ]; 42 + }
+26
pkgs/keyznvim/config/plugins/oil.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + plugins.oil = { 6 + enable = true; 7 + settings = { 8 + default_file_explorer = true; 9 + keymaps = { 10 + "-" = "actions.parent"; 11 + "<C-h>" = false; 12 + "<C-j>" = false; 13 + "<C-k>" = false; 14 + "<C-l>" = false; 15 + }; 16 + }; 17 + }; 18 + keymaps = [ 19 + { 20 + mode = "n"; 21 + key = "-"; 22 + action = "<CMD>Oil<CR>"; 23 + options.desc = "Open oil"; 24 + } 25 + ]; 26 + }
+13
pkgs/keyznvim/config/plugins/telescope.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + plugins.telescope = { 6 + enable = true; 7 + extensions.live-grep-args.enable = true; 8 + keymaps = { 9 + "<leader>ff" = "find_files"; 10 + "<leader>ps" = "live_grep"; 11 + }; 12 + }; 13 + }
+9
pkgs/keyznvim/config/plugins/treesitter.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + plugins.treesitter = { 6 + enable = true; 7 + settings.highlight.enable = true; 8 + }; 9 + }
+15
pkgs/keyznvim/config/plugins/undotree.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + plugins.undotree = { 6 + enable = true; 7 + }; 8 + keymaps = [ 9 + { 10 + mode = "n"; 11 + key = "<leader>u"; 12 + action = "<cmd>UndotreeToggle<cr>"; 13 + } 14 + ]; 15 + }
+18
pkgs/keyznvim/default.nix
··· 1 + { 2 + pkgs ? import <nixpkgs> { }, 3 + nixvim, 4 + liteMode ? false, 5 + inputs, 6 + outputs, 7 + self, 8 + home 9 + }: 10 + let 11 + in 12 + nixvim.makeNixvimWithModule { 13 + inherit pkgs; 14 + module = import ./config; 15 + extraSpecialArgs = { 16 + inherit self liteMode inputs outputs home; 17 + }; 18 + }