❄️ 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 #28 from KeyZox71/indev

LGTM Indevvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

authored by

Adam and committed by
GitHub
f67bf823 12756d6c

+2715 -2088
+1
.envrc
··· 1 + use flake
+234 -84
flake.lock
··· 5 5 "nixpkgs": "nixpkgs" 6 6 }, 7 7 "locked": { 8 - "lastModified": 1747207567, 9 - "narHash": "sha256-8n8AmJpKi7kLMa8clUWYuu8w0PqD4n6kvB1PhbdvWEI=", 8 + "lastModified": 1751021896, 9 + "narHash": "sha256-L9u68mNPPiuW7+OV5BKbXaj/AENTiiuEx8+QnMBjRlU=", 10 10 "owner": "catppuccin", 11 11 "repo": "nix", 12 - "rev": "2e75b520f0b64aa5acd61e15a7081c0ba3f7dd87", 12 + "rev": "a6b0e34d083c79f08efabb1fd6ccf12b882daae6", 13 13 "type": "github" 14 14 }, 15 15 "original": { ··· 18 18 "type": "github" 19 19 } 20 20 }, 21 + "crane": { 22 + "locked": { 23 + "lastModified": 1731098351, 24 + "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", 25 + "owner": "ipetkov", 26 + "repo": "crane", 27 + "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", 28 + "type": "github" 29 + }, 30 + "original": { 31 + "owner": "ipetkov", 32 + "repo": "crane", 33 + "type": "github" 34 + } 35 + }, 21 36 "disko": { 22 37 "inputs": { 23 38 "nixpkgs": "nixpkgs_2" 24 39 }, 25 40 "locked": { 26 - "lastModified": 1747226316, 27 - "narHash": "sha256-INBPqK9ogSvw5Q9HJ5H7KI83v6Jc3goAnXN3b2F+eMU=", 41 + "lastModified": 1750903843, 42 + "narHash": "sha256-Ng9+f0H5/dW+mq/XOKvB9uwvGbsuiiO6HrPdAcVglCs=", 28 43 "owner": "nix-community", 29 44 "repo": "disko", 30 - "rev": "490c0d6bd151e33caa5b2cf0ae37758234e947f6", 45 + "rev": "83c4da299c1d7d300f8c6fd3a72ac46cb0d59aae", 31 46 "type": "github" 32 47 }, 33 48 "original": { ··· 36 51 "type": "github" 37 52 } 38 53 }, 39 - "fastclass": { 40 - "inputs": { 41 - "nixpkgs": "nixpkgs_3" 42 - }, 54 + "flake-compat": { 55 + "flake": false, 43 56 "locked": { 44 - "lastModified": 1732135845, 45 - "narHash": "sha256-Vh3+/J2rxGPiVM0gYsg1O50z+XEX0T1rpDwBnupgnak=", 46 - "owner": "seekrs", 47 - "repo": "fastclass", 48 - "rev": "752185bda66956b827cc0bea9c01e7b6160d1344", 57 + "lastModified": 1696426674, 58 + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 59 + "owner": "edolstra", 60 + "repo": "flake-compat", 61 + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 49 62 "type": "github" 50 63 }, 51 64 "original": { 52 - "owner": "seekrs", 53 - "ref": "nixxing", 54 - "repo": "fastclass", 65 + "owner": "edolstra", 66 + "repo": "flake-compat", 55 67 "type": "github" 56 68 } 57 69 }, 58 - "flake-compat": { 70 + "flake-compat_2": { 59 71 "flake": false, 60 72 "locked": { 61 - "lastModified": 1733328505, 62 - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", 73 + "lastModified": 1747046372, 74 + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", 63 75 "owner": "edolstra", 64 76 "repo": "flake-compat", 65 - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", 77 + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", 66 78 "type": "github" 67 79 }, 68 80 "original": { ··· 73 85 }, 74 86 "flake-parts": { 75 87 "inputs": { 88 + "nixpkgs-lib": [ 89 + "lanzaboote", 90 + "nixpkgs" 91 + ] 92 + }, 93 + "locked": { 94 + "lastModified": 1730504689, 95 + "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", 96 + "owner": "hercules-ci", 97 + "repo": "flake-parts", 98 + "rev": "506278e768c2a08bec68eb62932193e341f55c90", 99 + "type": "github" 100 + }, 101 + "original": { 102 + "owner": "hercules-ci", 103 + "repo": "flake-parts", 104 + "type": "github" 105 + } 106 + }, 107 + "flake-parts_2": { 108 + "inputs": { 76 109 "nixpkgs-lib": "nixpkgs-lib" 77 110 }, 78 111 "locked": { ··· 89 122 "type": "github" 90 123 } 91 124 }, 92 - "flake-parts_2": { 125 + "flake-parts_3": { 93 126 "inputs": { 94 127 "nixpkgs-lib": "nixpkgs-lib_2" 95 128 }, ··· 125 158 "type": "github" 126 159 } 127 160 }, 161 + "gitignore": { 162 + "inputs": { 163 + "nixpkgs": [ 164 + "lanzaboote", 165 + "pre-commit-hooks-nix", 166 + "nixpkgs" 167 + ] 168 + }, 169 + "locked": { 170 + "lastModified": 1709087332, 171 + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", 172 + "owner": "hercules-ci", 173 + "repo": "gitignore.nix", 174 + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", 175 + "type": "github" 176 + }, 177 + "original": { 178 + "owner": "hercules-ci", 179 + "repo": "gitignore.nix", 180 + "type": "github" 181 + } 182 + }, 128 183 "home-manager": { 129 184 "inputs": { 130 185 "nixpkgs": [ ··· 132 187 ] 133 188 }, 134 189 "locked": { 135 - "lastModified": 1747020534, 136 - "narHash": "sha256-D/6rkiC6w2p+4SwRiVKrWIeYzun8FBg7NlMKMwQMxO0=", 190 + "lastModified": 1750792728, 191 + "narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=", 137 192 "owner": "nix-community", 138 193 "repo": "home-manager", 139 - "rev": "b4bbdc6fde16fc2051fcde232f6e288cd22007ca", 194 + "rev": "366f00797b1efb70f2882d3da485e3c10fd3d557", 140 195 "type": "github" 141 196 }, 142 197 "original": { 143 198 "owner": "nix-community", 144 - "ref": "release-24.11", 199 + "ref": "release-25.05", 145 200 "repo": "home-manager", 146 201 "type": "github" 147 202 } 148 203 }, 149 - "home-unstable": { 204 + "home-manager_2": { 150 205 "inputs": { 151 206 "nixpkgs": [ 152 - "unstablepkgs" 207 + "zen-browser", 208 + "nixpkgs" 153 209 ] 154 210 }, 155 211 "locked": { 156 - "lastModified": 1747225851, 157 - "narHash": "sha256-4IbmZrNOdXP143kZEUzxBS5SqyxUlaSHLgdpeJfP2ZU=", 212 + "lastModified": 1743604125, 213 + "narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", 158 214 "owner": "nix-community", 159 215 "repo": "home-manager", 160 - "rev": "6bf057fc8326e83bda05a669fc08d106547679fb", 216 + "rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", 161 217 "type": "github" 162 218 }, 163 219 "original": { 164 220 "owner": "nix-community", 165 - "ref": "master", 166 221 "repo": "home-manager", 167 222 "type": "github" 168 223 } ··· 174 229 ] 175 230 }, 176 231 "locked": { 177 - "lastModified": 1747045452, 178 - "narHash": "sha256-VKs/GtedyOrcWiEOf9JPPX6ZgKzngXTVMUlqsL60G/c=", 232 + "lastModified": 1750372088, 233 + "narHash": "sha256-LPwgPRBTfnA76rHUr7KYvwq2pNt5IfxymNAZUJFvn/M=", 179 234 "owner": "hyprwm", 180 235 "repo": "contrib", 181 - "rev": "8e6c02ac3dfbff878ef300266598737ee9cedf94", 236 + "rev": "189f32f56285aae9646bf1292976392beba5a2e2", 182 237 "type": "github" 183 238 }, 184 239 "original": { ··· 195 250 ] 196 251 }, 197 252 "locked": { 198 - "lastModified": 1745766340, 199 - "narHash": "sha256-Ii7bMsqegw1PINMBNhmIzS/PZKTRXkc4J1lOPqdTQiM=", 253 + "lastModified": 1753344798, 254 + "narHash": "sha256-sOF57nivqvgSXD1kUWjN0sLwJGIm/YQ7Jvk233sSOGs=", 200 255 "owner": "keyzox71", 201 256 "repo": "nvim", 202 - "rev": "3a83589160c707409b85c428fe40156b557434b5", 257 + "rev": "b1d1d7bfd0ac9e27e1a464adfcc78d0a74885fb1", 203 258 "type": "github" 204 259 }, 205 260 "original": { 206 261 "owner": "keyzox71", 207 262 "ref": "indev", 208 263 "repo": "nvim", 264 + "type": "github" 265 + } 266 + }, 267 + "lanzaboote": { 268 + "inputs": { 269 + "crane": "crane", 270 + "flake-compat": "flake-compat", 271 + "flake-parts": "flake-parts", 272 + "nixpkgs": [ 273 + "nixpkgs" 274 + ], 275 + "pre-commit-hooks-nix": "pre-commit-hooks-nix", 276 + "rust-overlay": "rust-overlay" 277 + }, 278 + "locked": { 279 + "lastModified": 1737639419, 280 + "narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", 281 + "owner": "nix-community", 282 + "repo": "lanzaboote", 283 + "rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", 284 + "type": "github" 285 + }, 286 + "original": { 287 + "owner": "nix-community", 288 + "ref": "v0.4.2", 289 + "repo": "lanzaboote", 209 290 "type": "github" 210 291 } 211 292 }, ··· 227 308 }, 228 309 "nixos-wsl": { 229 310 "inputs": { 230 - "flake-compat": "flake-compat", 231 - "nixpkgs": "nixpkgs_4" 311 + "flake-compat": "flake-compat_2", 312 + "nixpkgs": "nixpkgs_3" 232 313 }, 233 314 "locked": { 234 - "lastModified": 1746453552, 235 - "narHash": "sha256-r66UGha+7KVHkI7ksrcMjnw/mm9Sg4l5bQlylxHwdGU=", 315 + "lastModified": 1749574455, 316 + "narHash": "sha256-fm2/8KPOYvvIAnNVtjDlTt/My00lIbZQ+LMrfQIWVzs=", 236 317 "owner": "nix-community", 237 318 "repo": "NixOS-WSL", 238 - "rev": "be618645aa0adf461f778500172b6896d5ab2d01", 319 + "rev": "917af390377c573932d84b5e31dd9f2c1b5c0f09", 239 320 "type": "github" 240 321 }, 241 322 "original": { ··· 285 366 "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" 286 367 } 287 368 }, 288 - "nixpkgs_2": { 369 + "nixpkgs-stable": { 289 370 "locked": { 290 - "lastModified": 1746576598, 291 - "narHash": "sha256-FshoQvr6Aor5SnORVvh/ZdJ1Sa2U4ZrIMwKBX5k2wu0=", 371 + "lastModified": 1730741070, 372 + "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", 292 373 "owner": "NixOS", 293 374 "repo": "nixpkgs", 294 - "rev": "b3582c75c7f21ce0b429898980eddbbf05c68e55", 375 + "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", 295 376 "type": "github" 296 377 }, 297 378 "original": { 298 379 "owner": "NixOS", 299 - "ref": "nixpkgs-unstable", 380 + "ref": "nixos-24.05", 300 381 "repo": "nixpkgs", 301 382 "type": "github" 302 383 } 303 384 }, 304 - "nixpkgs_3": { 385 + "nixpkgs_2": { 305 386 "locked": { 306 - "lastModified": 1731755305, 307 - "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=", 308 - "owner": "nixos", 387 + "lastModified": 1750836778, 388 + "narHash": "sha256-sRLyRiC7TezRbbjGJwUFOgb2xMbSr3wQ0oJKfYlQ6s0=", 389 + "owner": "NixOS", 309 390 "repo": "nixpkgs", 310 - "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4", 391 + "rev": "d7bb1922f0bb3d0c990f56f9cdb767fdb20a5f22", 311 392 "type": "github" 312 393 }, 313 394 "original": { 314 - "owner": "nixos", 315 - "ref": "nixos-24.11", 395 + "owner": "NixOS", 396 + "ref": "nixpkgs-unstable", 316 397 "repo": "nixpkgs", 317 398 "type": "github" 318 399 } 319 400 }, 320 - "nixpkgs_4": { 401 + "nixpkgs_3": { 321 402 "locked": { 322 - "lastModified": 1742937945, 323 - "narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=", 403 + "lastModified": 1749173751, 404 + "narHash": "sha256-ENY3y3v6S9ZmLDDLI3LUT8MXmfXg/fSt2eA4GCnMVCE=", 324 405 "owner": "NixOS", 325 406 "repo": "nixpkgs", 326 - "rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7", 407 + "rev": "ed29f002b6d6e5e7e32590deb065c34a31dc3e91", 327 408 "type": "github" 328 409 }, 329 410 "original": { ··· 333 414 "type": "github" 334 415 } 335 416 }, 336 - "nixpkgs_5": { 417 + "nixpkgs_4": { 337 418 "locked": { 338 - "lastModified": 1746957726, 339 - "narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=", 419 + "lastModified": 1750838302, 420 + "narHash": "sha256-aVkL3/yu50oQzi2YuKo0ceiCypVZpZXYd2P2p1FMJM4=", 340 421 "owner": "nixos", 341 422 "repo": "nixpkgs", 342 - "rev": "a39ed32a651fdee6842ec930761e31d1f242cb94", 423 + "rev": "7284e2decc982b81a296ab35aa46e804baaa1cfe", 343 424 "type": "github" 344 425 }, 345 426 "original": { 346 427 "owner": "nixos", 347 - "ref": "nixos-24.11", 428 + "ref": "nixos-25.05", 348 429 "repo": "nixpkgs", 349 430 "type": "github" 350 431 } 351 432 }, 352 433 "pogit": { 353 434 "inputs": { 354 - "flake-parts": "flake-parts", 435 + "flake-parts": "flake-parts_2", 355 436 "nixpkgs": [ 356 437 "nixpkgs" 357 438 ] 358 439 }, 359 440 "locked": { 360 - "lastModified": 1745683407, 361 - "narHash": "sha256-KBxdhcU39pctJx1yVSxiWVRNazzBRtwch7NYjwstf5s=", 441 + "lastModified": 1749310715, 442 + "narHash": "sha256-MYaYMHNHrgBklZtfckZVBDtJ1/NWxan4NYEMNN+m8+U=", 362 443 "owner": "y-syo", 363 444 "repo": "pogit", 364 - "rev": "16adbe5cc1f39314761ec53d348cb86b60c901af", 445 + "rev": "41ff687e0de434dfea979e3f8bc037434aa5d086", 365 446 "type": "github" 366 447 }, 367 448 "original": { ··· 372 453 }, 373 454 "pogit_2": { 374 455 "inputs": { 375 - "flake-parts": "flake-parts_2", 456 + "flake-parts": "flake-parts_3", 376 457 "nixpkgs": [ 377 458 "timmy", 378 459 "nixpkgs" ··· 392 473 "type": "github" 393 474 } 394 475 }, 476 + "pre-commit-hooks-nix": { 477 + "inputs": { 478 + "flake-compat": [ 479 + "lanzaboote", 480 + "flake-compat" 481 + ], 482 + "gitignore": "gitignore", 483 + "nixpkgs": [ 484 + "lanzaboote", 485 + "nixpkgs" 486 + ], 487 + "nixpkgs-stable": "nixpkgs-stable" 488 + }, 489 + "locked": { 490 + "lastModified": 1731363552, 491 + "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", 492 + "owner": "cachix", 493 + "repo": "pre-commit-hooks.nix", 494 + "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", 495 + "type": "github" 496 + }, 497 + "original": { 498 + "owner": "cachix", 499 + "repo": "pre-commit-hooks.nix", 500 + "type": "github" 501 + } 502 + }, 503 + "randomTimer": { 504 + "inputs": { 505 + "nixpkgs": [ 506 + "nixpkgs" 507 + ] 508 + }, 509 + "locked": { 510 + "lastModified": 1753090404, 511 + "narHash": "sha256-aiE7NxolTF+oj7B7K4j6iQI4NaFUamh5gHLvBqAqDaU=", 512 + "owner": "keyzox71", 513 + "repo": "randomTimer", 514 + "rev": "5a1617d99099b54a10434c1f875dce6d120b866b", 515 + "type": "github" 516 + }, 517 + "original": { 518 + "owner": "keyzox71", 519 + "repo": "randomTimer", 520 + "type": "github" 521 + } 522 + }, 395 523 "root": { 396 524 "inputs": { 397 525 "catppuccin": "catppuccin", 398 526 "disko": "disko", 399 - "fastclass": "fastclass", 400 527 "home-manager": "home-manager", 401 - "home-unstable": "home-unstable", 402 528 "hyprland-contrib": "hyprland-contrib", 403 529 "keyznvim": "keyznvim", 530 + "lanzaboote": "lanzaboote", 404 531 "nixos-hardware": "nixos-hardware", 405 532 "nixos-wsl": "nixos-wsl", 406 - "nixpkgs": "nixpkgs_5", 533 + "nixpkgs": "nixpkgs_4", 407 534 "pogit": "pogit", 535 + "randomTimer": "randomTimer", 408 536 "timmy": "timmy", 409 537 "unstablepkgs": "unstablepkgs", 410 538 "zen-browser": "zen-browser" 411 539 } 412 540 }, 541 + "rust-overlay": { 542 + "inputs": { 543 + "nixpkgs": [ 544 + "lanzaboote", 545 + "nixpkgs" 546 + ] 547 + }, 548 + "locked": { 549 + "lastModified": 1731897198, 550 + "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", 551 + "owner": "oxalica", 552 + "repo": "rust-overlay", 553 + "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", 554 + "type": "github" 555 + }, 556 + "original": { 557 + "owner": "oxalica", 558 + "repo": "rust-overlay", 559 + "type": "github" 560 + } 561 + }, 413 562 "systems": { 414 563 "locked": { 415 564 "lastModified": 1681028828, ··· 433 582 "pogit": "pogit_2" 434 583 }, 435 584 "locked": { 436 - "lastModified": 1733503296, 437 - "narHash": "sha256-TxhEwhEaaUj/8+S/10wvEzuRiHjnqKGxVvZP/xWeogc=", 585 + "lastModified": 1750006897, 586 + "narHash": "sha256-fNZ6x1B9jFakzyRmGfOPOOsfRYCO1SatYhtewQNXlrw=", 438 587 "owner": "keyzox71", 439 588 "repo": "timmy", 440 - "rev": "cbcf83150a59f9a37f0497369244b689e8bb1e57", 589 + "rev": "fa3f9695ad6496c5b4f07f488d5c47572a37281c", 441 590 "type": "github" 442 591 }, 443 592 "original": { ··· 448 597 }, 449 598 "unstablepkgs": { 450 599 "locked": { 451 - "lastModified": 1746904237, 452 - "narHash": "sha256-3e+AVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ=", 600 + "lastModified": 1750776420, 601 + "narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=", 453 602 "owner": "nixos", 454 603 "repo": "nixpkgs", 455 - "rev": "d89fc19e405cb2d55ce7cc114356846a0ee5e956", 604 + "rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf", 456 605 "type": "github" 457 606 }, 458 607 "original": { ··· 464 613 }, 465 614 "zen-browser": { 466 615 "inputs": { 616 + "home-manager": "home-manager_2", 467 617 "nixpkgs": [ 468 618 "nixpkgs" 469 619 ] 470 620 }, 471 621 "locked": { 472 - "lastModified": 1738776963, 473 - "narHash": "sha256-FFbj24WGwWQQ5dFAdySfQrVR0J1Z6bXW7lVUjQcmKnU=", 474 - "owner": "keyzox71", 622 + "lastModified": 1750998539, 623 + "narHash": "sha256-lmyIs/tlMtRq92NYPAix8iwN85oCrcqIXzOAo9gqYl0=", 624 + "owner": "0xc000022070", 475 625 "repo": "zen-browser-flake", 476 - "rev": "4ed48ef695a5fb07e726b126de26278ed51adcbc", 626 + "rev": "ea8a9b6b32027a1eeba7fcef4a3368d7f867c110", 477 627 "type": "github" 478 628 }, 479 629 "original": { 480 - "owner": "keyzox71", 630 + "owner": "0xc000022070", 481 631 "repo": "zen-browser-flake", 482 632 "type": "github" 483 633 }
+68 -28
flake.nix
··· 10 10 nixos-hardware, 11 11 nixos-wsl, 12 12 disko, 13 + lanzaboote, 13 14 ... 14 15 }: 15 16 let 16 17 inherit (self) outputs; 18 + supportedSystems = [ 19 + "x86_64-linux" 20 + # "aarch64-linux" 21 + "x86_64-darwin" 22 + # "aarch64-darwin" 23 + ]; 24 + forEachSupportedSystem = 25 + f: 26 + nixpkgs.lib.genAttrs supportedSystems ( 27 + system: 28 + f { 29 + pkgs = import nixpkgs { inherit system; }; 30 + } 31 + ); 32 + 17 33 in 18 34 { 19 35 nixosConfigurations = { 20 36 DEV-BOYY = nixpkgs.lib.nixosSystem { 21 37 system = "x86_64-linux"; 22 - specialArgs = { inherit inputs outputs; }; 38 + specialArgs = { inherit inputs outputs self; }; 23 39 modules = [ 24 40 ./hosts/DEV-BOYY/default.nix 25 41 26 42 catppuccin.nixosModules.catppuccin 27 - # (import nixos-hardware + "/common/cpu/amd") 28 - # (import nixos-hardware + "/common/gpu/nvidia/turing") 43 + lanzaboote.nixosModules.lanzaboote 44 + self.nixosModules.default 29 45 ]; 30 46 }; 31 - LAPTOP-5530-ADAM = nixpkgs.lib.nixosSystem { 47 + LAPTOP-5530 = nixpkgs.lib.nixosSystem { 32 48 system = "x86_64-linux"; 33 - specialArgs = { inherit inputs outputs; }; 49 + specialArgs = { inherit inputs outputs self; }; 34 50 modules = [ 35 - ./hosts/LAPTOP-5530-ADAM/default.nix 51 + ./hosts/LAPTOP-5530/default.nix 36 52 37 53 disko.nixosModules.disko 38 54 catppuccin.nixosModules.catppuccin 39 55 nixos-hardware.nixosModules.dell-precision-5530 56 + self.nixosModules.default 40 57 ]; 41 58 }; 42 59 nixos-server = nixpkgs.lib.nixosSystem { ··· 48 65 inputs.disko.nixosModules.disko 49 66 ]; 50 67 }; 51 - wsl-adjoly = nixpkgs.lib.nixosSystem { 52 - system = "x86_64-linux"; 53 - specialArgs = { inherit inputs outputs; }; 54 - modules = [ 55 - ./hosts/WSL/default.nix 56 - 57 - nixos-wsl.nixosModules.default 58 - catppuccin.nixosModules.catppuccin 59 - ]; 60 - 61 - }; 62 68 }; 63 69 homeConfigurations = { 64 70 "42adjoly" = home-manager.lib.homeManagerConfiguration { 65 71 pkgs = nixpkgs.legacyPackages."x86_64-linux"; 72 + extraSpecialArgs = { inherit self; }; 66 73 modules = [ 67 - ./home/adjoly/home42.nix 74 + ./home/42/default.nix 68 75 { 69 76 home = { 70 77 homeDirectory = "/home/adjoly"; ··· 75 82 extraSpecialArgs = { inherit inputs outputs; }; 76 83 }; 77 84 }; 85 + devShells = forEachSupportedSystem ( 86 + { pkgs }: 87 + { 88 + default = pkgs.mkShell { 89 + packages = with pkgs; [ 90 + nixd 91 + nixfmt-rfc-style 92 + ]; 93 + }; 94 + } 95 + ); 96 + packages = forEachSupportedSystem ( 97 + { pkgs }: 98 + { 99 + adjust-brightness = import ./pkgs/adjust-brightness { inherit pkgs; }; 100 + } 101 + ); 102 + 103 + homeModules = { 104 + default = import ./modules/home-manager; 105 + gui = import ./modules/home-manager/gui; 106 + cli = import ./modules/home-manager/cli; 107 + }; 108 + 109 + nixosModules = { 110 + default = import ./modules/nixos; 111 + services = import ./modules/nixos/services; 112 + hardware = import ./modules/nixos/hardware; 113 + programs = import ./modules/nixos/programs; 114 + }; 78 115 }; 79 116 80 117 inputs = { 81 - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; 118 + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; 82 119 83 120 nixos-wsl.url = "github:nix-community/NixOS-WSL/main"; 84 121 ··· 89 126 catppuccin.url = "github:catppuccin/nix"; 90 127 91 128 home-manager = { 92 - url = "github:nix-community/home-manager/release-24.11"; 129 + url = "github:nix-community/home-manager/release-25.05"; 93 130 inputs.nixpkgs.follows = "nixpkgs"; 94 - }; 95 - 96 - fastclass.url = "github:seekrs/fastclass/nixxing"; 97 - 98 - home-unstable = { 99 - url = "github:nix-community/home-manager/master"; 100 - inputs.nixpkgs.follows = "unstablepkgs"; 101 131 }; 102 132 103 133 keyznvim = { ··· 116 146 }; 117 147 118 148 zen-browser = { 119 - url = "github:keyzox71/zen-browser-flake"; 149 + url = "github:0xc000022070/zen-browser-flake"; 120 150 inputs.nixpkgs.follows = "nixpkgs"; 121 151 }; 152 + 122 153 timmy = { 123 154 url = "github:keyzox71/timmy"; 124 155 inputs.nixpkgs.follows = "nixpkgs"; ··· 126 157 127 158 disko = { 128 159 url = "github:nix-community/disko"; 160 + }; 161 + lanzaboote = { 162 + url = "github:nix-community/lanzaboote/v0.4.2"; 163 + inputs.nixpkgs.follows = "nixpkgs"; 164 + }; 165 + 166 + randomTimer = { 167 + url = "github:keyzox71/randomTimer"; 168 + inputs.nixpkgs.follows = "nixpkgs"; 129 169 }; 130 170 }; 131 171
+43
home/42/default.nix
··· 1 + { 2 + self, 3 + pkgs, 4 + lib, 5 + ... 6 + }: 7 + 8 + { 9 + imports = [ 10 + self.homeModules.default 11 + ../adjoly/nixpkgs-conf.nix 12 + 13 + ./packages.nix 14 + ]; 15 + 16 + keyzox = { 17 + cli.enable = true; 18 + theme.enable = true; 19 + kitty.enable = true; 20 + darkman.enable = true; 21 + }; 22 + 23 + programs.kitty.package = lib.mkForce pkgs.emptyDirectory; 24 + catppuccin.cursors.enable = lib.mkForce false; 25 + programs.zsh = { 26 + shellAliases = { 27 + re = "nix run nixpkgs#home-manager -- switch --flake /home/adjoly/nixos-config#42adjoly"; 28 + bgs = "brightnessctl set"; 29 + wl-copy = "xclip -i -selection clipboard"; 30 + }; 31 + envExtra = lib.mkBefore '' 32 + export SSH_AUTH_SOCK=$HOME/.var/app/com.bitwarden.desktop/data/.bitwarden-ssh-agent.sock 33 + ''; 34 + }; 35 + 36 + programs.zsh.shellAliases = { 37 + code = "flatpak run com.visualstudio.code"; 38 + }; 39 + 40 + programs.kitty.font.size = 13; # for kitty 41 + 42 + home.stateVersion = "24.05"; 43 + }
+14
home/42/packages.nix
··· 1 + { 2 + pkgs, 3 + self, 4 + inputs, 5 + ... 6 + }: 7 + 8 + { 9 + home.packages = with pkgs; [ 10 + mockoon 11 + brightnessctl 12 + inputs.randomTimer.packages.${pkgs.system}.default 13 + ]; 14 + }
+28
home/DEV-BOYY/default.nix
··· 1 + { 2 + self, 3 + ... 4 + }: 5 + 6 + { 7 + imports = [ 8 + self.homeModules.default 9 + ../adjoly/nixpkgs-conf.nix 10 + 11 + ./packages.nix 12 + ./wm.nix 13 + ]; 14 + 15 + keyzox = { 16 + gui.enable = true; 17 + shell.nixos.enable = true; 18 + hyprland.autostart.enable = true; 19 + bitwarden-ssh-agent.enable = true; 20 + theme.enable = true; 21 + hypridle.sleep_timeout = 600; 22 + hyprlock.monitor = "DP-2"; 23 + }; 24 + 25 + programs.kitty.font.size = 13; # for kitty 26 + 27 + home.stateVersion = "24.05"; 28 + }
+14
home/DEV-BOYY/packages.nix
··· 1 + { 2 + pkgs, 3 + self, 4 + ... 5 + }: 6 + 7 + { 8 + home.packages = with pkgs; [ 9 + postman 10 + gearlever # for beeper cause the one from the nixpkgs seems bugged 11 + strawberry # for itunes lib and need to test if upload to ipod works 12 + self.packages.${pkgs.system}.adjust-brightness # for adjusting brightness on ddc/ci screen 13 + ]; 14 + }
+46
home/DEV-BOYY/wm.nix
··· 1 + { 2 + ... 3 + }: 4 + 5 + { 6 + programs.waybar.settings.bar = { 7 + "hyprland/workspaces" = { 8 + }; 9 + output = [ 10 + "DP-2" 11 + "DP-1" 12 + ]; 13 + }; 14 + 15 + wayland.windowManager.hyprland = { 16 + settings = { 17 + bind = [ 18 + "CTRL ALT, HOME, exec, adjust-brightness 1 +10" 19 + "CTRL ALT, END, exec, adjust-brightness 1 -10" 20 + "CTRL ALT, Next, exec, adjust-brightness 2 -10" 21 + "CTRL ALT, Prior, exec, adjust-brightness 2 +10" 22 + ]; 23 + env = [ 24 + "LIBVA_DRIVER_NAME,nvidia" 25 + "__GLX_VENDOR_LIBRARY_NAME,nvidia" 26 + ]; 27 + monitor = [ 28 + "DP-2, 1920x1080@75, 0x0, 1" 29 + "DP-1, 1920x1080@75, -1920x0, 1" 30 + ]; 31 + workspace = [ 32 + "1, monitor:DP-2" 33 + "2, monitor:DP-2" 34 + "3, monitor:DP-2" 35 + "4, monitor:DP-2" 36 + "5, monitor:DP-2" 37 + "6, monitor:DP-1" 38 + "7, monitor:DP-1" 39 + "8, monitor:DP-1" 40 + "9, monitor:DP-1" 41 + "10, monitor:DP-1" 42 + ]; 43 + 44 + }; 45 + }; 46 + }
+32
home/LAPTOP-5530/default.nix
··· 1 + { 2 + self, 3 + ... 4 + }: 5 + { 6 + imports = [ 7 + self.homeModules.default 8 + ../adjoly/nixpkgs-conf.nix 9 + 10 + ./packages.nix 11 + ./wm.nix 12 + ]; 13 + 14 + keyzox = { 15 + gui.enable = true; 16 + shell.nixos.enable = true; 17 + hyprland.autostart.enable = true; 18 + bitwarden-ssh-agent.enable = true; 19 + theme.enable = true; 20 + hypridle.sleep_timeout = 600; 21 + hyprlock.monitor = "eDP-1"; 22 + }; 23 + 24 + services.batsignal = { 25 + enable = true; 26 + extraArgs = [ "-c" "10" "-w" "30" ]; 27 + }; 28 + 29 + programs.kitty.font.size = 12; # for kitty 30 + 31 + home.stateVersion = "24.05"; 32 + }
+18
home/LAPTOP-5530/packages.nix
··· 1 + { 2 + pkgs, 3 + self, 4 + ... 5 + }: 6 + 7 + { 8 + home.packages = with pkgs; [ 9 + postman 10 + mockoon 11 + gearlever # for beeper cause the one from the nixpkgs seems bugged 12 + strawberry # for itunes lib and need to test if upload to ipod works 13 + brightnessctl 14 + prismlauncher 15 + jellyfin-media-player 16 + self.packages.${pkgs.system}.adjust-brightness 17 + ]; 18 + }
+40
home/LAPTOP-5530/wm.nix
··· 1 + { 2 + ... 3 + }: 4 + 5 + { 6 + programs.waybar.settings.bar = { 7 + "hyprland/workspaces" = { 8 + }; 9 + output = [ 10 + "eDP-1" 11 + "DP-3" 12 + ]; 13 + }; 14 + 15 + wayland.windowManager.hyprland = { 16 + settings = { 17 + bind = [ 18 + ]; 19 + env = [ 20 + ]; 21 + monitor = [ 22 + "eDP-1, 1920x1080@60, 0x0, 1.25" 23 + "DP-3, 1920x1080@60, auto-up, 1" 24 + ]; 25 + workspace = [ 26 + "1, monitor:DP-3" 27 + "2, monitor:DP-3" 28 + "3, monitor:DP-3" 29 + "4, monitor:DP-3" 30 + "5, monitor:DP-3" 31 + "6, monitor:eDP-1" 32 + "7, monitor:eDP-1" 33 + "8, monitor:eDP-1" 34 + "9, monitor:eDP-1" 35 + "10, monitor:eDP-1" 36 + ]; 37 + 38 + }; 39 + }; 40 + }
-19
home/adjoly/cli-app.nix
··· 1 - { inputs, pkgs, ... }: 2 - 3 - { 4 - home.packages = with pkgs; [ 5 - git 6 - fzf 7 - tmux 8 - btop 9 - zoxide 10 - direnv 11 - ripgrep 12 - thefuck 13 - starship 14 - ripgrep-all 15 - unstable.yazi 16 - bash-language-server 17 - inputs.timmy.packages.${pkgs.system}.timmy 18 - ]; 19 - }
-4
home/adjoly/gtk.nix
··· 1 - { ... }: 2 - { 3 - gtk.enable = true; 4 - }
-32
home/adjoly/home-cli.nix
··· 1 - { inputs, pkgs, ... }: 2 - { 3 - imports = [ 4 - ./cli-app.nix 5 - ./themes/catppuccin.nix 6 - 7 - ./unstable-overlay.nix 8 - 9 - ./programs/git.nix 10 - ./programs/tmux.nix 11 - ./programs/pogit.nix 12 - ./programs/neovim.nix 13 - ./programs/direnv.nix 14 - ./programs/fastfetch.nix 15 - ./programs/shell/zsh.nix 16 - 17 - inputs.catppuccin.homeManagerModules.catppuccin 18 - ]; 19 - 20 - catppuccin = { 21 - kitty.enable = false; 22 - tofi.enable = false; 23 - cursors.enable = false; 24 - waybar.enable = false; 25 - }; 26 - 27 - home = { 28 - packages = with pkgs; [ 29 - ]; 30 - stateVersion = "24.05"; 31 - }; 32 - }
-34
home/adjoly/home-lite.nix
··· 1 - { inputs, pkgs, ... }: 2 - { 3 - imports = [ 4 - ./gtk.nix 5 - ./cli-app.nix 6 - ./wm/hyprland.nix 7 - ./themes/catppuccin.nix 8 - 9 - ./unstable-overlay.nix 10 - 11 - ./services/nextcloud.nix 12 - ./services/darkman.nix 13 - 14 - ./programs/git.nix 15 - ./programs/tmux.nix 16 - ./programs/pogit.nix 17 - ./programs/kitty.nix 18 - ./programs/neovim.nix 19 - ./programs/direnv.nix 20 - ./programs/fastfetch.nix 21 - ./programs/shell/zsh.nix 22 - 23 - inputs.catppuccin.homeManagerModules.catppuccin 24 - ]; 25 - 26 - home = { 27 - packages = with pkgs; [ 28 - beeper 29 - zenity 30 - hyprpaper 31 - ]; 32 - stateVersion = "24.05"; 33 - }; 34 - }
-46
home/adjoly/home.nix
··· 1 - { inputs, pkgs, ... }: 2 - { 3 - imports = [ 4 - ./gtk.nix 5 - ./cli-app.nix 6 - ./wm/hyprland.nix 7 - ./themes/catppuccin.nix 8 - 9 - ./unstable-overlay.nix 10 - 11 - ./services/nextcloud.nix 12 - ./services/darkman.nix 13 - 14 - ./programs/git.nix 15 - ./programs/tmux.nix 16 - ./programs/pogit.nix 17 - ./programs/kitty.nix 18 - ./programs/neovim.nix 19 - ./programs/direnv.nix 20 - ./programs/fastfetch.nix 21 - ./programs/shell/zsh.nix 22 - 23 - inputs.catppuccin.homeModules.catppuccin 24 - ]; 25 - 26 - home = { 27 - packages = with pkgs; [ 28 - vlc 29 - #beeper 30 - zenity 31 - molotov 32 - discord 33 - obsidian 34 - hyprpaper 35 - parsec-bin 36 - libreoffice 37 - tradingview 38 - qbittorrent 39 - rquickshare 40 - prismlauncher 41 - nextcloud-client 42 - #unstable.ankama-launcher 43 - ]; 44 - stateVersion = "24.05"; 45 - }; 46 - }
-46
home/adjoly/home42.nix
··· 1 - { 2 - lib, 3 - inputs, 4 - pkgs, 5 - ... 6 - }: 7 - 8 - { 9 - imports = [ 10 - 11 - ./cli-app.nix 12 - ./unstable-overlay.nix 13 - 14 - ./themes/catppuccin.nix 15 - 16 - ./services/darkman.nix 17 - 18 - ./programs/git.nix 19 - ./programs/tmux.nix 20 - ./programs/pogit.nix 21 - ./programs/kitty.nix 22 - ./programs/neovim.nix 23 - ./programs/direnv.nix 24 - ./programs/shell/zsh42.nix 25 - 26 - inputs.catppuccin.homeModules.catppuccin 27 - ]; 28 - programs.home-manager.enable = true; 29 - 30 - programs.kitty.font = { 31 - name = "JetBrainsMono Nerd Font Mono"; 32 - size = 11; 33 - }; 34 - 35 - catppuccin = { 36 - tofi.enable = false; 37 - cursors.enable = false; 38 - waybar.enable = false; 39 - }; 40 - 41 - home = { 42 - packages = with pkgs; [ 43 - ]; 44 - stateVersion = "24.05"; 45 - }; 46 - }
-10
home/adjoly/programs/direnv.nix
··· 1 - { ... }: 2 - 3 - { 4 - programs.direnv = { 5 - enable = true; 6 - enableZshIntegration = true; 7 - nix-direnv.enable = true; 8 - silent = true; 9 - }; 10 - }
-9
home/adjoly/programs/fastfetch.nix
··· 1 - { ... }: 2 - { 3 - programs.fastfetch = { 4 - enable = true; 5 - settings = { 6 - 7 - }; 8 - }; 9 - }
-15
home/adjoly/programs/git.nix
··· 1 - { ... }: 2 - 3 - { 4 - imports = [ 5 - ./github-cli.nix 6 - ]; 7 - 8 - programs = { 9 - git = { 10 - enable = true; 11 - userName = "adjoly"; 12 - userEmail = "adamjly@proton.me"; 13 - }; 14 - }; 15 - }
-19
home/adjoly/programs/github-cli.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - programs = { 5 - gh = { 6 - enable = true; 7 - settings = { 8 - editor = "nvim"; 9 - git_protocol = "https"; 10 - }; 11 - extensions = [ 12 - pkgs.gh-eco 13 - ]; 14 - }; 15 - gh-dash = { 16 - enable = true; 17 - }; 18 - }; 19 - }
-21
home/adjoly/programs/kitty.nix
··· 1 - { pkgs, lib, ... }: 2 - { 3 - programs.kitty = { 4 - enable = true; 5 - package = pkgs.unstable.kitty; 6 - 7 - shellIntegration.enableZshIntegration = true; 8 - 9 - environment = { 10 - "KITTY_ENABLE_WAYLAND" = "1"; 11 - }; 12 - 13 - font = lib.mkDefault { 14 - name = "JetBrainsMono Nerd Font Mono"; 15 - size = 13; 16 - }; 17 - }; 18 - xdg.configFile."kitty/light-theme.auto.conf".source = "${pkgs.kitty-themes}/share/kitty-themes/themes/Catppuccin-Latte.conf"; 19 - xdg.configFile."kitty/dark-theme.auto.conf".source = "${pkgs.kitty-themes}/share/kitty-themes/themes/Catppuccin-Frappe.conf"; 20 - xdg.configFile."kitty/no-preference-theme.auto.conf".source = "${pkgs.kitty-themes}/share/kitty-themes/themes/Catppuccin-Frappe.conf"; 21 - }
-9
home/adjoly/programs/neovim.nix
··· 1 - { inputs, pkgs, ... }: 2 - { 3 - nixpkgs.overlays = [ 4 - inputs.keyznvim.overlays.default 5 - ]; 6 - home.packages = with pkgs; [ 7 - keyznvim 8 - ]; 9 - }
-10
home/adjoly/programs/pogit.nix
··· 1 - { inputs, ... }: 2 - 3 - { 4 - imports = [ 5 - inputs.pogit.homeManagerModules.default 6 - ]; 7 - programs.pogit = { 8 - enable = true; 9 - }; 10 - }
-8
home/adjoly/programs/shell/fzf.nix
··· 1 - { ... }: 2 - { 3 - programs.fzf = { 4 - enable = true; 5 - enableZshIntegration = true; 6 - tmux.enableShellIntegration = true; 7 - }; 8 - }
-33
home/adjoly/programs/shell/starship.nix
··· 1 - { lib, ... }: 2 - 3 - { 4 - programs.starship = { 5 - enable = true; 6 - enableZshIntegration = true; 7 - settings = { 8 - add_newline = false; 9 - format = " $directory $git_branch$git_status[➜](bold green) "; 10 - directory = { 11 - truncation_length = 3; 12 - fish_style_pwd_dir_length = 3; 13 - home_symbol = "󰋜 "; 14 - read_only_style = "197"; 15 - read_only = " 󰌾"; 16 - format = "[$path]($style)[$read_only]($read_only_style)"; 17 - }; 18 - git_branch = { 19 - symbol = ""; 20 - format = "via [$symbol $branch]($style) "; 21 - truncation_length = 7; 22 - truncation_symbol = "…/"; 23 - style = "bold green"; 24 - }; 25 - git_status = { 26 - format = "([$all_status$ahead_behind ]($style))"; 27 - staged = "•"; 28 - modified = "~"; 29 - untracked = "+"; 30 - }; 31 - }; 32 - }; 33 - }
-9
home/adjoly/programs/shell/thefuck.nix
··· 1 - { ... }: 2 - { 3 - programs = { 4 - thefuck = { 5 - enable = true; 6 - enableZshIntegration = true; 7 - }; 8 - }; 9 - }
-7
home/adjoly/programs/shell/yazi.nix
··· 1 - { 2 - programs.yazi = { 3 - enable = true; 4 - enableZshIntegration = true; 5 - 6 - }; 7 - }
-10
home/adjoly/programs/shell/zoxide.nix
··· 1 - { ... }: 2 - { 3 - programs.zoxide = { 4 - enable = true; 5 - enableZshIntegration = true; 6 - options = [ 7 - "--cmd cd" 8 - ]; 9 - }; 10 - }
-30
home/adjoly/programs/shell/zsh-config.nix
··· 1 - { config, pkgs, ... }: 2 - 3 - { 4 - programs.zsh = { 5 - enable = true; 6 - autosuggestion.enable = true; 7 - enableCompletion = true; 8 - initExtra = '' 9 - alias tm="timmy create" 10 - alias ts="timmy search" 11 - function cdd() { 12 - local dir_path="$(dirname "$(find . -type f | fzf)")" 13 - if [[ -z "$dir_path" ]]; then 14 - echo "No file selected." 15 - return 16 - fi 17 - dir_path=$(realpath "$dir_path") 18 - local session_name="$(basename "$dir_path")" 19 - if tmux has-session -t "$session_name" 2>/dev/null; then 20 - echo "Reattaching to existing session named $session_name" 21 - tmux attach -t "$session_name" 22 - else 23 - echo "Creating new tmux session named $session_name" 24 - tmux new-session -d -s "$session_name" -c "$dir_path" 25 - tmux attach -t "$session_name" 26 - fi 27 - } 28 - ''; 29 - }; 30 - }
-24
home/adjoly/programs/shell/zsh.nix
··· 1 - { ... }: 2 - { 3 - imports = [ 4 - ./zsh-config.nix 5 - ./thefuck.nix 6 - ./starship.nix 7 - ./fzf.nix 8 - ./zoxide.nix 9 - ]; 10 - programs.zsh = { 11 - initExtraFirst = '' 12 - path+=('/home/adjoly/.local/bin') 13 - ''; 14 - shellAliases = { 15 - l = "ls -lA --color=auto"; 16 - ls = "ls -A --color=auto"; 17 - re = "sudo nixos-rebuild switch"; 18 - update = "sudo nix flake update && sudo nixos-rebuild switch"; 19 - grep = "grep --color=auto"; 20 - lock = "hyprlock & systemctl suspend"; 21 - hibernate = "hyprlock & systemctl hibernate"; 22 - }; 23 - }; 24 - }
-45
home/adjoly/programs/shell/zsh42.nix
··· 1 - { ... }: 2 - { 3 - imports = [ 4 - ./zsh-config.nix 5 - ./thefuck.nix 6 - ./starship.nix 7 - ./fzf.nix 8 - ./zoxide.nix 9 - ]; 10 - programs.zsh = { 11 - shellAliases = { 12 - l = "ls -lA --color=auto"; 13 - ls = "ls -A --color=auto"; 14 - re = "home-manager --flake ~/Documents/nixos-config#42adjoly switch"; 15 - grep = "grep --color=auto"; 16 - kty-frappe = "kitten themes --reload-in=all Catppuccin-frappe"; 17 - kty-latte = "kitten themes --reload-in=all Catppuccin-latte"; 18 - code = "flatpak run com.visualstudio.code"; 19 - powershell = "nix-shell -p powershell --run pwsh"; 20 - kbus = "setxkbmap -layout us -variant intl"; 21 - tailup = "docker compose -f ~/workspace/test-tailscale/docker-compose.yml up -d && docker logs tailscale-42"; 22 - tailscale = "docker exec -it tailscale-42 tailscale"; 23 - tailscale-sh = "docker exec -it tailscale-42 sh"; 24 - portup = "docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /run/user/101479/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts"; 25 - }; 26 - initExtraFirst = '' 27 - bgs() { 28 - if [[ "$#" -eq 1 && "$1" != -* ]]; then 29 - command nix-shell -p brightnessctl --run "brightnessctl set $1" 30 - else 31 - command nix-shell -p brightnessctl --run "brightnessctl set 80" 32 - fi 33 - } 34 - vol() { 35 - if [[ "$#" -eq 1 && "$1" != -* ]]; then 36 - command pactl set-sink-volume 0 $1% 37 - else 38 - command pactl set-sink-volume 0 0% 39 - fi 40 - } 41 - PATH+=":$HOME/.local/kitty.app/bin" 42 - ''; 43 - }; 44 - 45 - }
-53
home/adjoly/programs/tmux.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - programs.tmux = { 5 - enable = true; 6 - terminal = "tmux-256color"; 7 - prefix = "C-a"; 8 - mouse = true; 9 - keyMode = "vi"; 10 - baseIndex = 1; 11 - clock24 = true; 12 - plugins = with pkgs; [ 13 - tmuxPlugins.tmux-fzf 14 - # { 15 - # plugin = tmuxPlugins.resurrect; 16 - # extraConfig = '' 17 - # set -g @resurrect-capture-pane-contents 'on' 18 - # ''; 19 - # } 20 - # { 21 - # plugin = tmuxPlugins.continuum; 22 - # extraConfig = '' 23 - # set -g @continuum-boot 'on' 24 - # set -g @continuum-restore 'on' 25 - # set -g @continuum-save-interval '5' # minutes 26 - # ''; 27 - # } 28 - tmuxPlugins.vim-tmux-navigator 29 - tmuxPlugins.sensible 30 - ]; 31 - extraConfig = '' 32 - set-option -g renumber-windows on 33 - bind-key -n C-x kill-pane 34 - bind -n M-H previous-window 35 - bind -n M-L next-window 36 - bind-key "C-l" run-shell -b "${pkgs.tmuxPlugins.tmux-fzf}/share/tmux-plugins/tmux-fzf/scripts/session.sh switch" 37 - 38 - # Status 39 - set -g status-right '%Y-%m-%d %H:%M ' 40 - set -g status-left ''' 41 - set -g status-position bottom 42 - 43 - # Window status 44 - setw -g window-status-current-format ' #I #W #F ' 45 - setw -g window-status-current-style 'fg=#303446 bg=#babbf2' 46 - setw -g window-status-format ' #I #[fg=white]#W #[fg=mauve]#F ' 47 - 48 - # Pane status 49 - set -g pane-border-style 'fg=#292c3c' 50 - 51 - ''; 52 - }; 53 - }
-28
home/adjoly/services/darkman.nix
··· 1 - { pkgs, ... }: 2 - { 3 - services.darkman = { 4 - enable = true; 5 - lightModeScripts = { 6 - notification = '' 7 - dunstify --appname=darkman --urgency=low "switching to light mode" 8 - ''; 9 - system-light = '' 10 - dconf write /org/gnome/desktop/interface/color-scheme "'prefer-light'" 11 - dconf write /org/gnome/desktop/interface/gtk-theme "'Adwaita'" 12 - ''; 13 - }; 14 - darkModeScripts = { 15 - notification = '' 16 - dunstify --appname=darkman --urgency=low "switching to dark mode" 17 - ''; 18 - system-dark = '' 19 - dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'" 20 - dconf write /org/gnome/desktop/interface/gtk-theme "'Adwaita-dark'" 21 - ''; 22 - }; 23 - settings = { 24 - lat = 45.6483; 25 - lng = 0.1609; 26 - }; 27 - }; 28 - }
-7
home/adjoly/services/nextcloud.nix
··· 1 - { ... }: 2 - { 3 - services.nextcloud-client = { 4 - enable = true; 5 - startInBackground = true; 6 - }; 7 - }
-25
home/adjoly/themes/catppuccin.nix
··· 1 - { lib, ... }: 2 - { 3 - catppuccin = { 4 - enable = lib.mkDefault true; 5 - flavor = "frappe"; 6 - accent = "lavender"; 7 - cursors = { 8 - enable = lib.mkDefault true; 9 - accent = "lavender"; 10 - flavor = "frappe"; 11 - }; 12 - btop = { 13 - enable = lib.mkDefault true; 14 - flavor = lib.mkDefault "frappe"; 15 - }; 16 - gh-dash.enable = lib.mkDefault true; 17 - tmux.enable = lib.mkDefault true; 18 - kitty.enable = lib.mkDefault false; 19 - tofi.enable = lib.mkDefault true; 20 - fzf.enable = lib.mkDefault true; 21 - hyprlock.enable = lib.mkDefault false; 22 - starship.enable = lib.mkDefault false; 23 - waybar.enable = lib.mkDefault true; 24 - }; 25 - }
home/adjoly/unstable-overlay.nix home/adjoly/nixpkgs-conf.nix
-7
home/adjoly/wm/dunst.nix
··· 1 - { ... }: 2 - 3 - { 4 - services.dunst = { 5 - enable = true; 6 - }; 7 - }
-123
home/adjoly/wm/hyprland.nix
··· 1 - { config, pkgs, ... }: 2 - 3 - { 4 - imports = [ 5 - ./tofi.nix 6 - ./dunst.nix 7 - ./waybar.nix 8 - #./swaylock.nix 9 - ./hyprlock.nix 10 - ./hyprpaper.nix 11 - # ./xdg.nix 12 - ]; 13 - wayland.windowManager.hyprland = { 14 - enable = true; 15 - xwayland.enable = true; 16 - settings = { 17 - general = { 18 - border_size = "0"; 19 - gaps_in = "4"; 20 - gaps_out = "8,8,8,8"; 21 - "col.active_border" = "#ffbabbf1"; 22 - "col.inactive_border" = "#ff303446"; 23 - }; 24 - decoration = { 25 - rounding = 8; 26 - }; 27 - gestures.workspace_swipe = "on"; 28 - exec-once = [ 29 - "hyprpaper" 30 - "waybar" 31 - ]; 32 - "$mod" = "ALT"; 33 - "$win" = "SUPER"; 34 - bind = [ 35 - "$mod, P, exec, tofi-drun --drun=true" 36 - "$mod, space, exec, tofi-drun --drun=true" 37 - "CONTROLALT, delete, exec, hyprctl dispatch exit" 38 - "$mod, return, exec, kitty" 39 - "$mod, Q, killactive" 40 - "$win, L, exec, hyprlock" 41 - "$win + SHIFT, S, exec, grimblast --notify copysave area \"$HOME/Nextcloud/Images/Captures d’écran/Capture d’écran $(date +%F-%H%M%S).png\"" 42 - "CTRL_SHIFT, K, sendshortcut, CTRL, K, ^(Beeper)$" 43 - ] 44 - ++ ( 45 - builtins.concatLists (builtins.genList ( 46 - x: let 47 - ws = let 48 - c = (x + 1) / 10; 49 - in 50 - builtins.toString (x + 1 - (c * 10)); 51 - in [ 52 - "$mod, ${ws}, workspace, ${toString (x + 1)}" 53 - "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}" 54 - ] 55 - ) 56 - 10) 57 - ); 58 - env = [ 59 - "XCURSOR_SIZE,30" 60 - "XDG_CURRENT_DESKTOP,Hyprland" 61 - ]; 62 - cursor = { 63 - no_hardware_cursors = true; 64 - }; 65 - bindl = [ 66 - # media controls 67 - ", XF86AudioPlay, exec, playerctl play-pause" 68 - ", XF86AudioPrev, exec, playerctl previous" 69 - ", XF86AudioNext, exec, playerctl next" 70 - 71 - # volume 72 - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" 73 - ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" 74 - ]; 75 - 76 - bindle = [ 77 - # volume 78 - ", XF86AudioRaiseVolume, exec, wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 5%+" 79 - ", XF86AudioLowerVolume, exec, wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 5%-" 80 - 81 - # backlight 82 - ", XF86MonBrightnessUp, exec, brightnessctl s 5%+" 83 - ", XF86MonBrightnessDown, exec, brightnessctl s 5%-" 84 - ]; 85 - monitor = [ 86 - "eDP-1, 1920x1080, 0x0, 1" 87 - "DP-3, 1920x1080, auto, 1" 88 - ]; 89 - workspace = [ 90 - "1, monitor:DP-3" 91 - "2, monitor:eDP-1" 92 - "3, monitor:DP-3" 93 - "4, monitor:eDP-1" 94 - "5, monitor:DP-3" 95 - "6, monitor:eDP-1" 96 - "7, monitor:DP-3" 97 - "8, monitor:eDP-1" 98 - "9, monitor:DP-3" 99 - "10, monitor:eDP-1" 100 - ]; 101 - misc = { 102 - focus_on_activate = true; 103 - }; 104 - animation = [ 105 - "global, 1, 0.8, default" 106 - ]; 107 - input = { 108 - kb_layout = "us"; 109 - kb_variant = "intl"; 110 - follow_mouse = "1"; 111 - scroll_factor = "0.7"; 112 - #force_no_accel = true; 113 - touchpad = { 114 - natural_scroll = "yes"; 115 - tap-and-drag = true; 116 - scroll_factor = "0.5"; 117 - }; 118 - sensitivity = "0.7"; 119 - accel_profile = "flat"; 120 - }; 121 - }; 122 - }; 123 - }
-106
home/adjoly/wm/hyprlock.nix
··· 1 - { pkgs, ... }: 2 - 3 - let 4 - source = pkgs.fetchurl { 5 - url = "https://drive.kanel.ovh/s/kS7b2Gpip6TkyGY/download/hyprlock.png"; 6 - sha256 = "mRpFtFyEbZjH3y501UrA/O+jhBNvtlD/6VwkCwYlITQ="; 7 - }; 8 - bsky-profile = pkgs.fetchurl { 9 - url = "https://cdn.bsky.app/img/avatar/plain/did:plc:7g74v3wiannux6tuc5t74gln/bafkreigdabcv3w3qmabjtkwxb6rnvtgnk3megwdcclni6bkv4frbcqf4ma@jpeg"; 10 - sha256 = "jKqJ+6PEO37NpY0FakGAwrRKzY1N6A6mYeUxhaL+jAA="; 11 - }; 12 - in 13 - { 14 - programs.hyprlock = { 15 - enable = true; 16 - settings = { 17 - general = { 18 - disable_loading_bar = true; 19 - no_fade_in = true; 20 - ignore_empty_input = true; 21 - grace = 0; 22 - }; 23 - input-field = { 24 - monitor = ""; 25 - size = "200, 50"; 26 - position = "0, 150"; 27 - outer_color = "rgba(0, 0, 0, 0)"; 28 - fail_color = "rgba(231, 130, 132, 0.90)"; 29 - fail_text = "Wrong password"; 30 - check_color = "rgba(225, 200, 145, 0.90)"; 31 - rounding = 10; 32 - font_color = "rgba(198, 208, 245, 1.0)"; 33 - font_size = 3; 34 - dot_spacing = 0.3; 35 - dot_size = 1.0; 36 - inner_color = "rgba(48, 52, 70, 0.7)"; 37 - placeholder_text = "Enter password"; 38 - hide_input = false; 39 - fade_on_empty = false; 40 - halign = "center"; 41 - valign = "bottom"; 42 - font_family = "Noto Sans Regular"; 43 - outline_thickness = 2; 44 - }; 45 - background = { 46 - blur_passes = 1; 47 - blur_size = 1; 48 - monitor = ""; 49 - path = "${source}"; 50 - }; 51 - label = [ 52 - { 53 - monitor = ""; 54 - font_size = 120; 55 - position = "0, 250"; 56 - text = "cmd[update:1000] echo \"<span>\$(date +\"\%H:\%M\")</span>\""; 57 - halign = "center"; 58 - valign = "center"; 59 - font_family = "Noto Sans Medium"; 60 - color = "rgba(216, 222, 233, 0.90)"; 61 - } 62 - { 63 - text = "cmd[update:1000] echo -e \"$(date +\"%A, %B %d\")\""; 64 - monitor = ""; 65 - position = "0, 350"; 66 - halign = "center"; 67 - valign = "center"; 68 - font_family = "Noto Sans Medium"; 69 - color = "rgba(216, 222, 233, 0.90)"; 70 - } 71 - { 72 - text = "adjoly's computer"; 73 - position = "0, 225"; 74 - font_size = 15; 75 - font_family = "Noto Sans Medium"; 76 - color = "rgba(216, 222, 233, 0.95)"; 77 - halign = "center"; 78 - valign = "botton"; 79 - } 80 - ]; 81 - shape = [ 82 - { 83 - monitor = ""; 84 - size = "300, 350"; 85 - position = "0, 100"; 86 - halign = "center"; 87 - valign = "botton"; 88 - color = "rgba(35, 38, 52, 0.7)"; 89 - rounding = 10; 90 - } 91 - ]; 92 - image = [ 93 - { 94 - monitor = ""; 95 - path = "${bsky-profile}"; 96 - border_size = 0; 97 - position = "0, 270"; 98 - size = 130; 99 - rounding = -1; 100 - halign = "center"; 101 - valign = "botton"; 102 - } 103 - ]; 104 - }; 105 - }; 106 - }
-17
home/adjoly/wm/hyprpaper.nix
··· 1 - { pkgs, ...}: 2 - 3 - let 4 - source = pkgs.fetchurl { 5 - url = "https://drive.kanel.ovh/s/e9Hqxi85gsSoZg5/download/DSC_4763.jpg"; 6 - sha256 = "0s4qavjcs9kf1g8vllqlb43i7si9vk6b9338rbpkqc87k6a794hi"; 7 - }; 8 - in 9 - { 10 - services.hyprpaper = { 11 - enable = true; 12 - settings = { 13 - preload = [ "${source}"]; 14 - wallpaper = [ ", ${source}" ]; 15 - }; 16 - }; 17 - }
-7
home/adjoly/wm/swaylock.nix
··· 1 - { ... }: 2 - 3 - { 4 - programs.swaylock = { 5 - enable = true; 6 - }; 7 - }
-31
home/adjoly/wm/tofi.nix
··· 1 - { lib, config, ... }: 2 - { 3 - programs.tofi = { 4 - enable = true; 5 - settings = lib.mkForce { 6 - width = "100%"; 7 - height = "100%"; 8 - 9 - prompt-text = "> "; 10 - hide-cursor = "true"; 11 - 12 - border-width = "0"; 13 - outline-width = "0"; 14 - padding-left = "33%"; 15 - padding-top = "20%"; 16 - 17 - text-color = "#babbf1"; 18 - selection-color = "#e78284"; 19 - prompt-color = "#eebebe"; 20 - result-spacing = "15"; 21 - 22 - background-color = "#303446df"; 23 - 24 - font = "monospace"; 25 - 26 - num-results = "10"; 27 - 28 - terminal = "kitty"; 29 - }; 30 - }; 31 - }
-231
home/adjoly/wm/waybar.nix
··· 1 - { ... }: 2 - 3 - { 4 - programs.waybar = { 5 - enable = true; 6 - settings = { 7 - bar = { 8 - margin-top = 8; 9 - margin-bottom = 0; 10 - margin-right = 8; 11 - margin-left = 8; 12 - layer = "top"; 13 - modules-left = [ "hyprland/workspaces" "hyprland/window" ]; 14 - modules-center = [ "clock" ]; 15 - modules-right = [ "tray" "mpris" "pulseaudio" "custom/prev" "custom/playpause" "custom/next" "network" "battery" ]; 16 - output = [ "eDP-1" ]; 17 - 18 - # --------------------------------------------------------- 19 - 20 - "hyprland/workspaces" = { 21 - format = "{icon}"; 22 - tooltip = false; 23 - "persistent-workspaces" = { 24 - "eDP-1" = [ 1 2 3 4 5 6 7 8 9 10 ]; 25 - }; 26 - format-icons = { 27 - "1" = "◆"; 28 - "2" = "◆"; 29 - "3" = "◆"; 30 - "4" = "◆"; 31 - "5" = "◆"; 32 - "6" = "◆"; 33 - "7" = "◆"; 34 - "8" = "◆"; 35 - "9" = "◆"; 36 - "10" = "◆"; 37 - "active" = ""; 38 - }; 39 - }; 40 - 41 - "hyprland/window" = { 42 - format = "{title}"; 43 - tooltip = false; 44 - icon = true; 45 - icon-size = 16; 46 - max-length = 20; 47 - }; 48 - 49 - # -------------------------:-------------------------------- 50 - 51 - clock = { 52 - format = "{:%a %d %b | %H : %M}"; 53 - tooltip = false; 54 - on-click = "GSK_RENDERER=gl zenity --calendar"; 55 - }; 56 - 57 - # --------------------------------------------------------- 58 - 59 - "custom/next" = { 60 - format = "󰒭"; 61 - on-click = "playerctl next"; 62 - tooltip = false; 63 - }; 64 - "custom/playpause" = { 65 - format = "󰐊"; 66 - on-click = "playerctl play-pause"; 67 - tooltip = false; 68 - }; 69 - "custom/prev" = { 70 - format = "󰒮"; 71 - on-click = "playerctl previous"; 72 - tooltip = false; 73 - }; 74 - pulseaudio = { 75 - format = "{icon} {volume:2}%"; 76 - format-bluetooth = "{icon} {volume}% "; 77 - format-muted = "MUTE {volume:2}%"; 78 - format-icons = { 79 - headphones = ""; 80 - default = [ "" "" ]; 81 - }; 82 - reverse-mouse-scrolling = true; 83 - on-click = "wpctl set-mute @DEFAULT_SINK@ toggle"; 84 - tooltip = false; 85 - }; 86 - mpris = { 87 - format = "{dynamic}"; 88 - format-paused = " {dynamic}"; 89 - title-len = 20; 90 - dynamic-len = 20; 91 - dynamic-order = [ "title" ]; 92 - tooltip = false; 93 - }; 94 - tray = { 95 - icon-size = 16; 96 - }; 97 - network = { 98 - format = "{ifname}"; 99 - format-wifi = "{essid}"; 100 - format-ethernet = "ethernet"; 101 - format-disconnected = "no network"; 102 - on-click = "kitty -- nmtui"; 103 - on-click-right = "kitty -- bluetuith"; 104 - tooltip = false; 105 - };#f5a97f 106 - battery = { 107 - format = "{icon} {capacity} %"; 108 - format-icons = [ "󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; 109 - format-charging = "󰂄 {capacity} %"; 110 - tooltip = false; 111 - states = { 112 - warning = 30; 113 - critical = 15; 114 - }; 115 - on-click-right = "hyprlock & systemctl suspend"; 116 - on-click-middle = "hyprlock & systemctl hibernate"; 117 - }; 118 - 119 - }; 120 - }; 121 - 122 - style = '' 123 - * { 124 - all: unset; 125 - font-family: "JetBrainsMono Nerd Font Mono"; 126 - font-size: 14px; 127 - } 128 - 129 - window#waybar { 130 - background: @mantle; 131 - border: 2px solid transparent; 132 - border-radius: 10px; 133 - } 134 - window#waybar.empty #window { 135 - background-color: transparent; 136 - border: transparent; 137 - } 138 - 139 - #mpris, #battery, #network, #clock, #pulseaudio, #window, #tray, #tray menu { 140 - color: @text; 141 - margin: 6px 4px; 142 - padding: 2px 8px; 143 - border-radius: 8px; 144 - background-color: @base; 145 - border: 2px solid transparent; 146 - } 147 - 148 - #workspaces { 149 - margin-left: 8px; 150 - margin: 6px 4px; 151 - padding: 2px 8px; 152 - border-radius: 8px; 153 - background-color: #303446; 154 - border: 2px solid transparent; 155 - } 156 - .modules-left #workspaces { 157 - padding: 2px 8px; 158 - margin-left: 8px; 159 - } 160 - .modules-left #workspaces button { 161 - color: @text; 162 - padding: 0px 4px; 163 - border-bottom: 0px solid transparent; 164 - } 165 - .modules-left #workspaces button.empty { 166 - color: @surface0; 167 - border-bottom: 0px solid transparent; 168 - } 169 - .modules-left #workspaces button.active, 170 - .modules-left #workspaces button.focused { 171 - border-bottom: 0px solid transparent; 172 - } 173 - 174 - #custom-prev { 175 - border-radius: 8px 0px 0px 8px; 176 - padding: 2px 8px; 177 - margin: 6px 4px; 178 - border: 2px solid transparent; 179 - margin-right: 0px; 180 - border-right: 0px; 181 - background-color: @base; 182 - color: @text; 183 - } 184 - #custom-next { 185 - border-radius: 0px 8px 8px 0px; 186 - color: @text; 187 - padding: 2px 8px; 188 - margin: 6px 4px; 189 - border: 2px solid transparent; 190 - margin-left: 0px; 191 - border-left: 0px; 192 - background-color: @base; 193 - } 194 - #custom-playpause { 195 - color: @text; 196 - border-radius: 0px 0px 0px 0px; 197 - padding: 2px 8px; 198 - margin: 6px 4px; 199 - border: 2px solid transparent; 200 - margin-right: 0px; 201 - border-right: 0px; 202 - margin-left: 0px; 203 - border-left: 0px; 204 - background-color: @base; 205 - } 206 - 207 - #network.disconnected { 208 - color: @mauve; 209 - } 210 - #network.ethernet { 211 - color: @text; 212 - } 213 - #network.wifi { 214 - color: @text; 215 - } 216 - 217 - #battery { 218 - margin-right: 8px; 219 - } 220 - #battery.charging, #battery.plugged { 221 - color: @lavender; 222 - } 223 - #battery.critical:not(.charging) { 224 - color: @red; 225 - } 226 - #battery.warning:not(.charging) { 227 - color: @peach; 228 - } 229 - ''; 230 - }; 231 - }
-13
home/adjoly/wm/xdg.nix
··· 1 - { ... }: 2 - { 3 - xdg.portal.config = { 4 - common = { 5 - default = [ 6 - "gtk" 7 - ]; 8 - "org.freedesktop.impl.portal.Settings" = [ 9 - "darkman" 10 - ]; 11 - }; 12 - }; 13 - }
+15 -7
hosts/DEV-BOYY/boot.nix
··· 1 - { ... }: 1 + { lib, ... }: 2 2 3 3 { 4 4 boot = { 5 + kernelParams = [ 6 + "video=DP-2:1920x1080@75" 7 + ]; 5 8 loader = { 9 + systemd-boot.enable = lib.mkForce false; 6 10 efi = { 7 11 canTouchEfiVariables = true; 8 12 efiSysMountPoint = "/boot"; 9 13 }; 10 - grub = { 11 - enable = true; 12 - efiSupport = true; 13 - device = "nodev"; 14 - useOSProber = true; 15 - }; 14 + # grub = { 15 + # enable = false; 16 + # efiSupport = true; 17 + # device = "nodev"; 18 + # useOSProber = true; 19 + # }; 20 + }; 21 + lanzaboote = { 22 + enable = true; 23 + pkiBundle = "/etc/secureboot"; 16 24 }; 17 25 supportedFilesystems = [ "ntfs" ]; 18 26 blacklistedKernelModules = [
+25 -93
hosts/DEV-BOYY/default.nix
··· 2 2 pkgs, 3 3 inputs, 4 4 outputs, 5 + self, 5 6 ... 6 7 }: 7 8 8 9 { 9 10 imports = [ 10 - ./env.nix 11 + ../home.nix 12 + 11 13 ./boot.nix 12 - ./fonts.nix 13 - ./hardware 14 - ./services 15 - ./programs 16 - 17 - inputs.home-manager.nixosModules.home-manager 14 + ./hardware-configuration.nix 18 15 ]; 19 16 20 - nixpkgs = { 21 - config = { 22 - allowUnfree = true; 23 - }; 24 - }; 17 + networking.hostName = "DEV-BOYY"; 25 18 26 - security.pam.services.hyprlock = { }; 19 + # For ddcutils compatibility 20 + users.users.adjoly.extraGroups = [ "i2c" ]; 21 + 22 + keyzox = { 23 + defaults = true; 24 + wm = true; 27 25 28 - environment.variables = { 29 - QT_STYLE_OVERRIDE = "Fusion"; 30 - QT_QPA_PLATFORM = "wayland"; 31 - GDK_BACKEND = "wayland"; 32 - NIXOS_OZONE_WL = "1"; 33 - CLUTTER_BACKEND = "wayland"; 34 - KITTY_ENABLE_WAYLAND = "1"; 35 - MOZ_ENABLE_WAYLAND = 1; 36 - }; 37 - programs.dconf.enable = true; 26 + theme.enable = true; 38 27 39 - nix.settings = { 40 - trusted-users = [ 41 - "adjoly" 42 - ]; 43 - experimental-features = [ 44 - "nix-command" 45 - "flakes" 46 - ]; 28 + hardware = { 29 + bluetooth.enable = true; 30 + logitech.enable = true; 31 + nvidia.enable = true; 32 + }; 33 + programs = { 34 + docker.enable = true; 35 + # steam.enable = true; 36 + }; 37 + services = { }; 47 38 }; 48 - 49 - programs.zsh.enable = true; 50 - programs.fish.enable = true; 39 + powerManagement.enable = true; 40 + hardware.nvidia.powerManagement.enable = true; 51 41 52 42 environment.systemPackages = with pkgs; [ 53 - git 54 - zsh 55 - nil 56 - vim 57 - wget 58 - curl 59 - btop 60 - unzip 61 - wluma 62 - plexamp 63 - firefox 64 - chiaki-ng 65 - bluetuith 66 - cifs-utils 67 - xfce.thunar 68 - wl-clipboard 69 - brightnessctl 70 - docker-compose 71 - xfce.thunar-volman 72 - xfce.thunar-archive-plugin 73 - xfce.thunar-media-tags-plugin 74 - inputs.zen-browser.packages.${pkgs.system}.default 75 - inputs.hyprland-contrib.packages.${pkgs.system}.grimblast 43 + wlr-randr 76 44 ]; 77 - 78 - programs.ssh.startAgent = true; 79 - programs.seahorse.enable = true; 80 - services.gnome.gnome-keyring.enable = true; 81 - 82 - hardware.bluetooth.enable = true; # enables support for Bluetooth 83 - hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot 84 - 85 - users.users.adjoly = { 86 - shell = pkgs.zsh; 87 - isNormalUser = true; 88 - initialPassword = "kanelthego@t"; 89 - extraGroups = [ 90 - "docker" 91 - "audio" 92 - "video" 93 - "input" 94 - "networkmanager" 95 - "wheel" 96 - "sudo" 97 - "vboxusers" 98 - ]; 99 - }; 100 - virtualisation.docker.enable = true; 101 - 102 - catppuccin = { 103 - enable = true; 104 - flavor = "frappe"; 105 - accent = "lavender"; 106 - }; 107 - 108 - home-manager = { 109 - useUserPackages = true; 110 - extraSpecialArgs = { inherit inputs outputs; }; 111 - users.adjoly = import ../../home/adjoly/home.nix; 112 - }; 113 45 114 46 # This value determines the NixOS release from which the default 115 47 # settings for stateful data, like file locations and database versions
-22
hosts/DEV-BOYY/env.nix
··· 1 - { ... }: 2 - 3 - { 4 - 5 - time.timeZone = "Europe/Paris"; 6 - console.keyMap = "us-acentos"; 7 - 8 - i18n.defaultLocale = "fr_FR.UTF-8"; 9 - 10 - i18n.extraLocaleSettings = { 11 - LC_ADDRESS = "fr_FR.UTF-8"; 12 - LC_IDENTIFICATION = "fr_FR.UTF-8"; 13 - LC_MEASUREMENT = "fr_FR.UTF-8"; 14 - LC_MONETARY = "fr_FR.UTF-8"; 15 - LC_NAME = "fr_FR.UTF-8"; 16 - LC_NUMERIC = "fr_FR.UTF-8"; 17 - LC_PAPER = "fr_FR.UTF-8"; 18 - LC_TELEPHONE = "fr_FR.UTF-8"; 19 - LC_TIME = "fr_FR.UTF-8"; 20 - }; 21 - 22 - }
-33
hosts/DEV-BOYY/fonts.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - fonts = { 5 - enableDefaultPackages = true; 6 - packages = with pkgs; [ 7 - (nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) 8 - 9 - jetbrains-mono 10 - noto-fonts 11 - ]; 12 - fontconfig = { 13 - enable = true; 14 - defaultFonts = { 15 - serif = [ 16 - "Noto Sans Mono" 17 - "Noto Color Emoji" 18 - ]; 19 - sansSerif = [ 20 - "JetBrains Mono" 21 - "Noto Color Emoji" 22 - ]; 23 - monospace = [ 24 - "JetBrains Mono" 25 - "Noto Emoji" 26 - ]; 27 - emoji = [ 28 - "Noto Color Emoji" 29 - ]; 30 - }; 31 - }; 32 - }; 33 - }
+71
hosts/DEV-BOYY/hardware-configuration.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { 5 + config, 6 + lib, 7 + pkgs, 8 + modulesPath, 9 + ... 10 + }: 11 + 12 + { 13 + imports = [ 14 + (modulesPath + "/installer/scan/not-detected.nix") 15 + ]; 16 + 17 + boot.initrd.availableKernelModules = [ 18 + "nvme" 19 + "xhci_pci" 20 + "ahci" 21 + "usbhid" 22 + "uas" 23 + "sd_mod" 24 + ]; 25 + boot.initrd.kernelModules = [ ]; 26 + boot.kernelModules = [ 27 + "kvm-amd" 28 + "i2c-dev" 29 + ]; 30 + boot.extraModulePackages = [ ]; 31 + 32 + fileSystems."/" = { 33 + device = "/dev/disk/by-label/NIX_ROOT"; 34 + fsType = "btrfs"; 35 + options = [ "compress=zstd" ]; 36 + }; 37 + 38 + fileSystems."/boot" = { 39 + device = "/dev/disk/by-label/NIX_BOOT"; 40 + fsType = "vfat"; 41 + options = [ 42 + "fmask=0022" 43 + "dmask=0022" 44 + ]; 45 + }; 46 + 47 + fileSystems."/nix/store" = { 48 + device = "/dev/disk/by-label/NIX_STORE"; 49 + fsType = "btrfs"; 50 + options = [ 51 + "compress=zstd" 52 + "noatime" 53 + ]; 54 + }; 55 + 56 + swapDevices = [ { 57 + label = "SWAP"; 58 + } 59 + ]; 60 + 61 + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 62 + # (the default) this is the recommended approach. When using systemd-networkd it's 63 + # still possible to use this option, but it's recommended to use it in conjunction 64 + # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. 65 + networking.useDHCP = lib.mkDefault true; 66 + # networking.interfaces.enp8s0.useDHCP = lib.mkDefault true; 67 + # networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true; 68 + 69 + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 70 + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 71 + }
-8
hosts/DEV-BOYY/hardware/default.nix
··· 1 - { ... }: 2 - 3 - { 4 - imports = [ 5 - ./hardware-configuration.nix 6 - ]; 7 - hardware.nvidia.open = true; 8 - }
-66
hosts/DEV-BOYY/hardware/hardware-configuration.nix
··· 1 - # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 - # and may be overwritten by future invocations. Please make changes 3 - # to /etc/nixos/configuration.nix instead. 4 - { 5 - config, 6 - lib, 7 - pkgs, 8 - modulesPath, 9 - ... 10 - }: 11 - 12 - { 13 - imports = [ 14 - (modulesPath + "/installer/scan/not-detected.nix") 15 - ]; 16 - 17 - boot.initrd.availableKernelModules = [ 18 - "nvme" 19 - "xhci_pci" 20 - "ahci" 21 - "usbhid" 22 - "uas" 23 - "sd_mod" 24 - ]; 25 - boot.initrd.kernelModules = [ ]; 26 - boot.kernelModules = [ "kvm-amd" ]; 27 - boot.extraModulePackages = [ ]; 28 - 29 - fileSystems."/" = { 30 - device = "/dev/nvme0n1p6"; 31 - fsType = "btrfs"; 32 - options = [ "compress=zstd" ]; 33 - }; 34 - 35 - fileSystems."/boot" = { 36 - device = "/dev/nvme0n1p5"; 37 - fsType = "vfat"; 38 - options = [ 39 - "fmask=0022" 40 - "dmask=0022" 41 - ]; 42 - }; 43 - 44 - fileSystems."/nix/store" = { 45 - device = "/dev/disk/by-label/NIX_STORE"; 46 - fsType = "btrfs"; 47 - options = [ 48 - "compress=zstd" 49 - "noatime" 50 - ]; 51 - }; 52 - 53 - swapDevices = [ 54 - ]; 55 - 56 - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 57 - # (the default) this is the recommended approach. When using systemd-networkd it's 58 - # still possible to use this option, but it's recommended to use it in conjunction 59 - # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. 60 - networking.useDHCP = lib.mkDefault true; 61 - # networking.interfaces.enp8s0.useDHCP = lib.mkDefault true; 62 - # networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true; 63 - 64 - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 65 - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 66 - }
-10
hosts/DEV-BOYY/programs/android-studio.nix
··· 1 - { pkgs, ... }: 2 - { 3 - users.users.adjoly.extraGroups = [ "kvm" "adbusers" ]; 4 - programs = { 5 - adb.enable = true; 6 - }; 7 - environment.systemPackages = with pkgs; [ 8 - android-studio 9 - ]; 10 - }
-9
hosts/DEV-BOYY/programs/default.nix
··· 1 - { ... }: 2 - 3 - { 4 - imports = [ 5 - # ./game.nix 6 - ./hyprland.nix 7 - # ./android-studio.nix 8 - ]; 9 - }
-8
hosts/DEV-BOYY/programs/game.nix
··· 1 - { pkgs, ... }: 2 - { 3 - programs.steam = { 4 - enable = true; 5 - extest.enable = true; 6 - extraCompatPackages = with pkgs; [ proton-ge-bin ]; 7 - }; 8 - }
-15
hosts/DEV-BOYY/programs/hyprland.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - xdg.portal = { 5 - enable = true; 6 - extraPortals = [ pkgs.xdg-desktop-portal-hyprland ]; 7 - }; 8 - programs.hyprland = { 9 - enable = true; 10 - }; 11 - environment.sessionVariables = { 12 - WLR_NO_HARDWARE_CURSORS = "1"; 13 - NIXOS_OZONE_WL = "1"; 14 - }; 15 - }
-12
hosts/DEV-BOYY/services/default.nix
··· 1 - { ... }: 2 - 3 - { 4 - imports = [ 5 - #./ly.nix 6 - ./sddm.nix 7 - ./sound.nix 8 - ./network.nix 9 - ./xserver.nix 10 - ./wireguard.nix 11 - ]; 12 - }
-11
hosts/DEV-BOYY/services/ly.nix
··· 1 - { ... }: 2 - { 3 - services.displayManager.ly = { 4 - enable = true; 5 - settings = { 6 - load = true; 7 - save = true; 8 - animation = "doom"; 9 - }; 10 - }; 11 - }
-15
hosts/DEV-BOYY/services/network.nix
··· 1 - { ... }: 2 - 3 - { 4 - networking = { 5 - hostName = "DEV-BOYY"; 6 - networkmanager.enable = true; 7 - firewall = { 8 - enable = false; 9 - }; 10 - }; 11 - services.tailscale = { 12 - enable = true; 13 - extraUpFlags = [ "--accept-routes" ]; 14 - }; 15 - }
-9
hosts/DEV-BOYY/services/sddm.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - services.displayManager.sddm = { 5 - enable = true; 6 - wayland.enable = true; 7 - package = pkgs.kdePackages.sddm; 8 - }; 9 - }
-15
hosts/DEV-BOYY/services/sound.nix
··· 1 - { ... }: 2 - 3 - { 4 - hardware.pulseaudio.enable = false; 5 - security.rtkit.enable = true; 6 - services.pipewire = { 7 - enable = true; 8 - alsa = { 9 - enable = true; 10 - support32Bit = true; 11 - }; 12 - pulse.enable = true; 13 - jack.enable = true; 14 - }; 15 - }
-23
hosts/DEV-BOYY/services/wireguard.nix
··· 1 - { ... }: 2 - 3 - { 4 - networking.wg-quick.interfaces = { 5 - wg0 = { 6 - address = [ "100.117.135.231/32" ]; 7 - dns = [ "10.255.255.1" ]; 8 - privateKeyFile = "/home/adjoly/workspace/wg-windscribe/privKey"; 9 - peers = [ 10 - { 11 - allowedIPs = [ 12 - "0.0.0.0/0" 13 - "::/0" 14 - ]; 15 - endpoint = "bru-99-wg.whiskergalaxy.com:443"; 16 - publicKey = "TA+nBx5qMBdyIiug4SHgbw30/GXrRZ2aUAH7MQHJwzc="; 17 - presharedKeyFile = "/home/adjoly/workspace/wg-windscribe/preSharedKey"; 18 - } 19 - ]; 20 - autostart = false; 21 - }; 22 - }; 23 - }
-19
hosts/DEV-BOYY/services/xserver.nix
··· 1 - { ... }: 2 - 3 - { 4 - services.displayManager = { 5 - defaultSession = "hyprland"; 6 - }; 7 - services.xserver = { 8 - enable = true; 9 - videoDrivers = [ "modesetting" "nvidia" ]; 10 - xkb = { 11 - layout = "us"; 12 - variant = "intl"; 13 - }; 14 - }; 15 - services.libinput = { 16 - enable = true; 17 - mouse.accelProfile = "flat"; 18 - }; 19 - }
-29
hosts/LAPTOP-5530-ADAM/boot.nix
··· 1 - { 2 - pkgs, 3 - lib, 4 - config, 5 - inputs, 6 - outputs, 7 - ... 8 - }: 9 - 10 - { 11 - boot = { 12 - loader = { 13 - efi = { 14 - canTouchEfiVariables = true; 15 - efiSysMountPoint = "/boot"; 16 - }; 17 - grub = { 18 - enable = true; 19 - efiSupport = true; 20 - device = "nodev"; 21 - useOSProber = true; 22 - }; 23 - }; 24 - supportedFilesystems = [ "ntfs" ]; 25 - blacklistedKernelModules = [ 26 - "nouveau" 27 - ]; 28 - }; 29 - }
-130
hosts/LAPTOP-5530-ADAM/default.nix
··· 1 - { 2 - pkgs, 3 - inputs, 4 - outputs, 5 - ... 6 - }: 7 - 8 - { 9 - imports = [ 10 - ./env.nix 11 - ./boot.nix 12 - ./fonts.nix 13 - ./hardware 14 - ./programs 15 - ./virtualisation/ 16 - 17 - inputs.home-manager.nixosModules.home-manager 18 - ]; 19 - 20 - nixpkgs = { 21 - config = { 22 - allowUnfree = true; 23 - }; 24 - }; 25 - 26 - qt = { 27 - enable = true; 28 - platformTheme = "qt5ct"; 29 - }; 30 - 31 - security.pam.services.hyprlock = { }; 32 - 33 - environment.variables = { 34 - QT_STYLE_OVERRIDE = "Fusion"; 35 - QT_QPA_PLATFORM = "wayland"; 36 - GDK_BACKEND = "wayland"; 37 - NIXOS_OZONE_WL = "1"; 38 - CLUTTER_BACKEND = "wayland"; 39 - KITTY_ENABLE_WAYLAND = "1"; 40 - MOZ_ENABLE_WAYLAND = 1; 41 - }; 42 - programs.dconf.enable = true; 43 - 44 - nix.settings = { 45 - trusted-users = [ 46 - "adjoly" 47 - ]; 48 - experimental-features = [ 49 - "nix-command" 50 - "flakes" 51 - ]; 52 - }; 53 - 54 - programs.zsh.enable = true; 55 - 56 - environment.systemPackages = with pkgs; [ 57 - git 58 - zsh 59 - nil 60 - vim 61 - wget 62 - curl 63 - btop 64 - unzip 65 - wluma 66 - plexamp 67 - firefox 68 - gearlever 69 - chiaki-ng 70 - bluetuith 71 - cifs-utils 72 - xfce.thunar 73 - appimage-run 74 - wl-clipboard 75 - brightnessctl 76 - docker-compose 77 - xfce.thunar-volman 78 - xfce.thunar-archive-plugin 79 - xfce.thunar-media-tags-plugin 80 - #inputs.zen-browser.packages.${system}.twilight-official 81 - inputs.hyprland-contrib.packages.${pkgs.system}.grimblast 82 - ]; 83 - programs.ssh.startAgent = true; 84 - programs.seahorse.enable = true; 85 - services.gnome.gnome-keyring.enable = true; 86 - 87 - hardware.bluetooth.enable = true; # enables support for Bluetooth 88 - hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot 89 - 90 - users.users.adjoly = { 91 - shell = pkgs.zsh; 92 - isNormalUser = true; 93 - extraGroups = [ 94 - "docker" 95 - "audio" 96 - "video" 97 - "input" 98 - "networkmanager" 99 - "wheel" 100 - "sudo" 101 - "vboxusers" 102 - ]; 103 - }; 104 - 105 - virtualisation.docker.enable = true; 106 - 107 - catppuccin = { 108 - enable = true; 109 - flavor = "frappe"; 110 - accent = "lavender"; 111 - }; 112 - 113 - nixpkgs.config.permittedInsecurePackages = [ 114 - "electron-25.9.0" 115 - ]; 116 - 117 - home-manager = { 118 - useUserPackages = true; 119 - extraSpecialArgs = { inherit inputs outputs; }; 120 - users.adjoly = import ../../home/adjoly/home.nix; 121 - }; 122 - 123 - # This value determines the NixOS release from which the default 124 - # settings for stateful data, like file locations and database versions 125 - # on your system were taken. It‘s perfectly fine and recommended to leave 126 - # this value at the release version of the first install of this system. 127 - # Before changing this value read the documentation for this option 128 - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). 129 - system.stateVersion = "24.05"; # Did you read the comment? 130 - }
-22
hosts/LAPTOP-5530-ADAM/env.nix
··· 1 - { pkgs, lib, config, inputs, outputs, ... }: 2 - 3 - { 4 - 5 - time.timeZone = "Europe/Paris"; 6 - console.keyMap = "us-acentos"; 7 - 8 - i18n.defaultLocale = "fr_FR.UTF-8"; 9 - 10 - i18n.extraLocaleSettings = { 11 - LC_ADDRESS = "fr_FR.UTF-8"; 12 - LC_IDENTIFICATION = "fr_FR.UTF-8"; 13 - LC_MEASUREMENT = "fr_FR.UTF-8"; 14 - LC_MONETARY = "fr_FR.UTF-8"; 15 - LC_NAME = "fr_FR.UTF-8"; 16 - LC_NUMERIC = "fr_FR.UTF-8"; 17 - LC_PAPER = "fr_FR.UTF-8"; 18 - LC_TELEPHONE = "fr_FR.UTF-8"; 19 - LC_TIME = "fr_FR.UTF-8"; 20 - }; 21 - 22 - }
-33
hosts/LAPTOP-5530-ADAM/fonts.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - fonts = { 5 - enableDefaultPackages = true; 6 - packages = with pkgs; [ 7 - (nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) 8 - 9 - jetbrains-mono 10 - noto-fonts 11 - ]; 12 - fontconfig = { 13 - enable = true; 14 - defaultFonts = { 15 - serif = [ 16 - "Noto Sans Mono" 17 - "Noto Color Emoji" 18 - ]; 19 - sansSerif = [ 20 - "JetBrains Mono" 21 - "Noto Color Emoji" 22 - ]; 23 - monospace = [ 24 - "JetBrains Mono" 25 - "Noto Emoji" 26 - ]; 27 - emoji = [ 28 - "Noto Color Emoji" 29 - ]; 30 - }; 31 - }; 32 - }; 33 - }
-8
hosts/LAPTOP-5530-ADAM/hardware/default.nix
··· 1 - { ... }: 2 - 3 - { 4 - imports = [ 5 - ./disko.nix 6 - ./hardware-configuration.nix 7 - ]; 8 - }
+8 -1
hosts/LAPTOP-5530-ADAM/hardware/disko.nix hosts/LAPTOP-5530/disko.nix
··· 20 20 }; 21 21 }; 22 22 root = { 23 - size = "100%"; 23 + end = "-32G"; 24 24 content = { 25 25 type = "btrfs"; 26 26 extraArgs = [ "-f" ]; ··· 29 29 "compress=zstd" 30 30 "noatime" 31 31 ]; 32 + }; 33 + }; 34 + SWAP = { 35 + size = "100%"; 36 + content = { 37 + type = "swap"; 38 + # resumeDevice = true; 32 39 }; 33 40 }; 34 41 };
+1 -1
hosts/LAPTOP-5530-ADAM/hardware/hardware-configuration.nix hosts/LAPTOP-5530/hardware-configuration.nix
··· 10 10 11 11 boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; 12 12 boot.initrd.kernelModules = [ ]; 13 - boot.kernelModules = [ "kvm-intel" ]; 13 + # boot.kernelModules = [ "kvm-intel" ]; 14 14 boot.extraModulePackages = [ ]; 15 15 16 16 # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
-10
hosts/LAPTOP-5530-ADAM/programs/android-studio.nix
··· 1 - { pkgs, ... }: 2 - { 3 - users.users.adjoly.extraGroups = [ "kvm" "adbusers" ]; 4 - programs = { 5 - adb.enable = true; 6 - }; 7 - environment.systemPackages = with pkgs; [ 8 - android-studio 9 - ]; 10 - }
-9
hosts/LAPTOP-5530-ADAM/programs/default.nix
··· 1 - { ... }: 2 - 3 - { 4 - imports = [ 5 - ./game.nix 6 - ./hyprland.nix 7 - #./android-studio.nix 8 - ]; 9 - }
-8
hosts/LAPTOP-5530-ADAM/programs/game.nix
··· 1 - { pkgs, ... }: 2 - { 3 - programs.steam = { 4 - enable = true; 5 - extest.enable = true; 6 - extraCompatPackages = with pkgs; [ proton-ge-bin ]; 7 - }; 8 - }
-15
hosts/LAPTOP-5530-ADAM/programs/hyprland.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - xdg.portal = { 5 - enable = true; 6 - extraPortals = [ pkgs.xdg-desktop-portal-hyprland ]; 7 - }; 8 - programs.hyprland = { 9 - enable = true; 10 - }; 11 - environment.sessionVariables = { 12 - WLR_NO_HARDWARE_CURSORS = "1"; 13 - NIXOS_OZONE_WL = "1"; 14 - }; 15 - }
-12
hosts/LAPTOP-5530-ADAM/services/default.nix
··· 1 - { ... }: 2 - 3 - { 4 - imports = [ 5 - #./ly.nix 6 - ./sddm.nix 7 - ./sound.nix 8 - ./network.nix 9 - ./xserver.nix 10 - ./wireguard.nix 11 - ]; 12 - }
-11
hosts/LAPTOP-5530-ADAM/services/ly.nix
··· 1 - { ... }: 2 - { 3 - services.displayManager.ly = { 4 - enable = true; 5 - settings = { 6 - load = true; 7 - save = true; 8 - animation = "doom"; 9 - }; 10 - }; 11 - }
-15
hosts/LAPTOP-5530-ADAM/services/network.nix
··· 1 - { ... }: 2 - 3 - { 4 - networking = { 5 - hostName = "LAPTOP-5530-ADAM"; 6 - networkmanager.enable = true; 7 - firewall = { 8 - enable = false; 9 - }; 10 - }; 11 - services.tailscale = { 12 - enable = true; 13 - extraUpFlags = [ "--accept-routes" ]; 14 - }; 15 - }
-9
hosts/LAPTOP-5530-ADAM/services/sddm.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - services.displayManager.sddm = { 5 - enable = true; 6 - wayland.enable = true; 7 - package = pkgs.kdePackages.sddm; 8 - }; 9 - }
-15
hosts/LAPTOP-5530-ADAM/services/sound.nix
··· 1 - { ... }: 2 - 3 - { 4 - hardware.pulseaudio.enable = false; 5 - security.rtkit.enable = true; 6 - services.pipewire = { 7 - enable = true; 8 - alsa = { 9 - enable = true; 10 - support32Bit = true; 11 - }; 12 - pulse.enable = true; 13 - jack.enable = true; 14 - }; 15 - }
-23
hosts/LAPTOP-5530-ADAM/services/wireguard.nix
··· 1 - { ... }: 2 - 3 - { 4 - networking.wg-quick.interfaces = { 5 - wg0 = { 6 - address = [ "100.117.135.231/32" ]; 7 - dns = [ "10.255.255.1" ]; 8 - privateKeyFile = "/home/adjoly/workspace/wg-windscribe/privKey"; 9 - peers = [ 10 - { 11 - allowedIPs = [ 12 - "0.0.0.0/0" 13 - "::/0" 14 - ]; 15 - endpoint = "bru-99-wg.whiskergalaxy.com:443"; 16 - publicKey = "TA+nBx5qMBdyIiug4SHgbw30/GXrRZ2aUAH7MQHJwzc="; 17 - presharedKeyFile = "/home/adjoly/workspace/wg-windscribe/preSharedKey"; 18 - } 19 - ]; 20 - autostart = false; 21 - }; 22 - }; 23 - }
-19
hosts/LAPTOP-5530-ADAM/services/xserver.nix
··· 1 - { ... }: 2 - 3 - { 4 - services.displayManager = { 5 - defaultSession = "hyprland"; 6 - }; 7 - services.xserver = { 8 - enable = true; 9 - videoDrivers = [ "modesetting" "nvidia" ]; 10 - xkb = { 11 - layout = "us"; 12 - variant = "intl"; 13 - }; 14 - }; 15 - services.libinput = { 16 - enable = true; 17 - mouse.accelProfile = "flat"; 18 - }; 19 - }
-8
hosts/LAPTOP-5530-ADAM/virtualisation/default.nix
··· 1 - { ... }: 2 - 3 - { 4 - imports = [ 5 - ./virt.nix 6 - ./virtualbox.nix 7 - ]; 8 - }
-10
hosts/LAPTOP-5530-ADAM/virtualisation/virt.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - virtualisation.libvirtd.enable = true; 5 - programs.virt-manager.enable = true; 6 - environment.systemPackages = with pkgs; [ 7 - qemu 8 - ]; 9 - users.users.adjoly.extraGroups = [ "libvirtd" ]; 10 - }
-8
hosts/LAPTOP-5530-ADAM/virtualisation/virtualbox.nix
··· 1 - { ... }: 2 - 3 - { 4 - virtualisation.virtualbox.host = { 5 - enable = false; 6 - enableExtensionPack = true; 7 - }; 8 - }
+66
hosts/LAPTOP-5530/default.nix
··· 1 + { 2 + pkgs, 3 + config, 4 + ... 5 + }: 6 + 7 + { 8 + imports = [ 9 + ../home.nix 10 + 11 + ./disko.nix 12 + ./hardware-configuration.nix 13 + ]; 14 + 15 + services.xserver.videoDrivers = [ 16 + "modesetting" 17 + "nvidia" 18 + ]; 19 + 20 + networking.hostName = "LAPTOP-5530"; 21 + 22 + # For ddcutils compatibility 23 + users.users.adjoly.extraGroups = [ 24 + "i2c" 25 + "vboxusers" 26 + ]; 27 + boot.blacklistedKernelModules = [ 28 + "kvm" 29 + "kvm_intel" 30 + "kvm_amd" 31 + ]; 32 + 33 + keyzox = { 34 + defaults = true; 35 + wm = true; 36 + 37 + grub-boot.enable = true; 38 + theme.enable = true; 39 + 40 + hardware = { 41 + bluetooth.enable = true; 42 + logitech.enable = true; 43 + nvidia.powerManagement = true; 44 + }; 45 + programs = { 46 + docker.enable = true; 47 + steam.enable = true; 48 + }; 49 + services = { }; 50 + }; 51 + powerManagement.enable = true; 52 + environment.systemPackages = with pkgs; [ 53 + vagrant 54 + ]; 55 + virtualisation.virtualbox.host.enable = true; 56 + virtualisation.docker.daemon.settings.features.cdi = true; 57 + hardware.nvidia-container-toolkit.enable = true; 58 + 59 + # This value determines the NixOS release from which the default 60 + # settings for stateful data, like file locations and database versions 61 + # on your system were taken. It‘s perfectly fine and recommended to leave 62 + # this value at the release version of the first install of this system. 63 + # Before changing this value read the documentation for this option 64 + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). 65 + system.stateVersion = "24.11"; # Did you read the comment? 66 + }
-83
hosts/WSL/default.nix
··· 1 - { 2 - pkgs, 3 - inputs, 4 - outputs, 5 - ... 6 - }: 7 - 8 - { 9 - imports = [ 10 - ./wsl 11 - 12 - ./env.nix 13 - 14 - inputs.home-manager.nixosModules.home-manager 15 - ]; 16 - 17 - nixpkgs = { 18 - config = { 19 - allowUnfree = true; 20 - }; 21 - overlays = [ 22 - (final: prev: { 23 - unstable = import inputs.unstablepkgs { 24 - system = pkgs.system; 25 - config.allowUnfree = true; 26 - }; 27 - }) 28 - ]; 29 - }; 30 - 31 - environment.variables = { 32 - }; 33 - 34 - nix.settings.experimental-features = [ 35 - "nix-command" 36 - "flakes" 37 - ]; 38 - 39 - programs.zsh.enable = true; 40 - 41 - environment.systemPackages = with pkgs; [ 42 - git 43 - zsh 44 - nil 45 - vim 46 - wget 47 - curl 48 - sudo 49 - btop 50 - unzip 51 - cifs-utils 52 - ]; 53 - 54 - users.users.adjoly = { 55 - shell = pkgs.zsh; 56 - isNormalUser = true; 57 - initialPassword = "alpine"; 58 - extraGroups = [ 59 - "sudo" 60 - "input" 61 - "wheel" 62 - "networkmanager" 63 - ]; 64 - }; 65 - 66 - 67 - nixpkgs.config.permittedInsecurePackages = [ 68 - ]; 69 - 70 - home-manager = { 71 - useUserPackages = true; 72 - extraSpecialArgs = { inherit inputs outputs; }; 73 - users.adjoly = import ../../home/adjoly/home-cli.nix; 74 - }; 75 - 76 - # This value determines the NixOS release from which the default 77 - # settings for stateful data, like file locations and database versions 78 - # on your system were taken. It‘s perfectly fine and recommended to leave 79 - # this value at the release version of the first install of this system. 80 - # Before changing this value read the documentation for this option 81 - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). 82 - system.stateVersion = "24.05"; # Did you read the comment? 83 - }
-22
hosts/WSL/env.nix
··· 1 - { pkgs, lib, config, inputs, outputs, ... }: 2 - 3 - { 4 - 5 - time.timeZone = "Europe/Paris"; 6 - console.keyMap = "us-acentos"; 7 - 8 - i18n.defaultLocale = "fr_FR.UTF-8"; 9 - 10 - i18n.extraLocaleSettings = { 11 - LC_ADDRESS = "fr_FR.UTF-8"; 12 - LC_IDENTIFICATION = "fr_FR.UTF-8"; 13 - LC_MEASUREMENT = "fr_FR.UTF-8"; 14 - LC_MONETARY = "fr_FR.UTF-8"; 15 - LC_NAME = "fr_FR.UTF-8"; 16 - LC_NUMERIC = "fr_FR.UTF-8"; 17 - LC_PAPER = "fr_FR.UTF-8"; 18 - LC_TELEPHONE = "fr_FR.UTF-8"; 19 - LC_TIME = "fr_FR.UTF-8"; 20 - }; 21 - 22 - }
-12
hosts/WSL/wsl/default.nix
··· 1 - { ... }: 2 - 3 - { 4 - wsl = { 5 - enable = true; 6 - defaultUser = "adjoly"; 7 - docker-desktop.enable = true; 8 - # nativeSystemd = true; 9 - startMenuLaunchers = true; 10 - wslConf.network.hostname = "wsl-adjoly"; 11 - }; 12 - }
+33
hosts/home.nix
··· 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + outputs, 6 + inputs, 7 + self, 8 + ... 9 + }: 10 + 11 + { 12 + users.users.adjoly = { 13 + shell = pkgs.zsh; 14 + isNormalUser = true; 15 + initialPassword = "kanelthego@t"; 16 + extraGroups = [ 17 + "docker" 18 + "audio" 19 + "video" 20 + "input" 21 + "networkmanager" 22 + "wheel" 23 + "sudo" 24 + ]; 25 + }; 26 + home-manager = { 27 + useUserPackages = lib.mkDefault true; 28 + extraSpecialArgs = { inherit inputs outputs self; }; 29 + users.adjoly = import (../home/${config.networking.hostName}); 30 + }; 31 + programs.zsh.enable = true; 32 + nix.settings.trusted-users = [ "@wheel" ]; 33 + }
+35
modules/home-manager/catppuccin.nix
··· 1 + { 2 + lib, 3 + pkgs, 4 + config, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.theme.enable = lib.mkEnableOption "Can be used the enable catppuccin :D"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.theme.enable { 14 + catppuccin = { 15 + enable = true; 16 + flavor = "frappe"; 17 + accent = "lavender"; 18 + cursors = { 19 + enable = lib.mkDefault true; 20 + accent = "lavender"; 21 + flavor = "frappe"; 22 + }; 23 + btop = { 24 + enable = lib.mkDefault false; 25 + }; 26 + gh-dash.enable = lib.mkDefault true; 27 + kitty.enable = lib.mkDefault false; 28 + tofi.enable = lib.mkDefault false; 29 + fzf.enable = lib.mkDefault true; 30 + hyprlock.enable = lib.mkDefault false; 31 + starship.enable = lib.mkDefault false; 32 + waybar.enable = lib.mkDefault true; 33 + }; 34 + }; 35 + }
+46
modules/home-manager/cli/cli-app.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + inputs, 6 + ... 7 + }: 8 + 9 + { 10 + options = { 11 + keyzox.cli-app.enable = lib.mkEnableOption "can be used to enable the random cli app i use"; 12 + }; 13 + 14 + config = lib.mkIf config.keyzox.cli-app.enable { 15 + home.packages = with pkgs; [ 16 + inputs.timmy.packages.${pkgs.system}.timmy 17 + keyznvim 18 + ]; 19 + 20 + programs.yazi = { 21 + enable = lib.mkDefault true; 22 + enableZshIntegration = true; 23 + }; 24 + 25 + programs.thefuck = { 26 + enable = lib.mkDefault true; 27 + enableZshIntegration = true; 28 + }; 29 + 30 + programs.fastfetch = { 31 + enable = true; 32 + }; 33 + 34 + programs.btop = { 35 + enable = true; 36 + settings = { 37 + color_theme = "ayu"; 38 + vim_keys = true; 39 + }; 40 + }; 41 + 42 + nixpkgs.overlays = [ 43 + inputs.keyznvim.overlays.default 44 + ]; 45 + }; 46 + }
+9
modules/home-manager/cli/default.nix
··· 1 + { 2 + imports = [ 3 + ./tmux.nix 4 + ./git.nix 5 + ./pogit.nix 6 + ./shell.nix 7 + ./cli-app.nix 8 + ]; 9 + }
+30
modules/home-manager/cli/git.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.git.enable = lib.mkEnableOption "Can be used to enable git config"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.git.enable { 14 + programs = { 15 + git = { 16 + enable = true; 17 + userName = lib.mkDefault "adjoly"; 18 + userEmail = lib.mkDefault "contact@adjoly.fr"; 19 + signing = { 20 + format = "ssh"; 21 + signByDefault = lib.mkDefault true; 22 + key = lib.mkDefault "~/.ssh/id_git.pub"; 23 + }; 24 + }; 25 + }; 26 + services.ssh-agent = { 27 + enable = lib.mkDefault true; 28 + }; 29 + }; 30 + }
+41
modules/home-manager/cli/pogit.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + inputs, 6 + ... 7 + }: 8 + 9 + { 10 + options = { 11 + keyzox.pogit.enable = lib.mkEnableOption "Can be used to enable my pogit config :D"; 12 + }; 13 + 14 + config = lib.mkIf config.keyzox.pogit.enable { 15 + programs.pogit = { 16 + enable = true; 17 + config = { 18 + merge = { 19 + icon = "🔀"; 20 + msg = "a very cool feature has been merged ! :D"; 21 + }; 22 + release = { 23 + icon = "🔖"; 24 + msg = "new version has been pushed"; 25 + }; 26 + refactor = { 27 + icon = "♻️"; 28 + msg = "some code has been refactored"; 29 + }; 30 + ci = { 31 + icon = "👷"; 32 + msg = "ci just got an update"; 33 + }; 34 + update = { 35 + icon = "🆙"; 36 + msg = "just made a quick update !"; 37 + }; 38 + }; 39 + }; 40 + }; 41 + }
+57
modules/home-manager/cli/shell.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + imports = [ 10 + ./shell 11 + ]; 12 + 13 + options = { 14 + keyzox.shell.enable = lib.mkEnableOption "Can be used to enable my shell config"; 15 + keyzox.shell.nixos.enable = lib.mkEnableOption "Can be use the enable the shell config for nixos"; 16 + keyzox.bitwarden-ssh-agent.enable = lib.mkEnableOption "Can be used to add the env for bitwarden ssh agent"; 17 + }; 18 + 19 + config = lib.mkMerge [ 20 + (lib.mkIf config.keyzox.shell.enable { 21 + programs.zsh = { 22 + enable = lib.mkDefault true; 23 + autosuggestion.enable = true; 24 + enableCompletion = true; 25 + shellAliases = lib.mkBefore { 26 + l = "ls -lA --color=auto"; 27 + ls = "ls -A --color=auto"; 28 + grep = "grep --color=auto"; 29 + tm = "timmy create -d"; 30 + ts = "timmy search"; 31 + }; 32 + }; 33 + home.sessionVariables = { 34 + EDITOR = "nvim"; 35 + }; 36 + }) 37 + (lib.mkIf config.keyzox.shell.nixos.enable { 38 + programs.zsh = { 39 + shellAliases = { 40 + re = "nh os switch /home/adjoly/nixos-config"; 41 + lock = "hyprlock & systemctl suspend"; 42 + hibernate = "hyprlock & systemctl hibernate"; 43 + }; 44 + }; 45 + }) 46 + (lib.mkIf config.keyzox.bitwarden-ssh-agent.enable { 47 + home.packages = [ 48 + pkgs.unstable.bitwarden-desktop 49 + ]; 50 + programs.zsh = { 51 + envExtra = lib.mkBefore '' 52 + export SSH_AUTH_SOCK=$HOME/.bitwarden-ssh-agent.sock 53 + ''; 54 + }; 55 + }) 56 + ]; 57 + }
+12
modules/home-manager/cli/shell/default.nix
··· 1 + { 2 + ... 3 + }: 4 + 5 + { 6 + imports = [ 7 + ./zoxide.nix 8 + ./starship.nix 9 + ./fzf.nix 10 + ./direnv.nix 11 + ]; 12 + }
+14
modules/home-manager/cli/shell/direnv.nix
··· 1 + { 2 + lib, 3 + config, 4 + ... 5 + }: 6 + 7 + { 8 + programs.direnv = lib.mkIf config.keyzox.shell.enable { 9 + enable = lib.mkDefault true; 10 + enableZshIntegration = true; 11 + nix-direnv.enable = true; 12 + silent = true; 13 + }; 14 + }
+13
modules/home-manager/cli/shell/fzf.nix
··· 1 + { 2 + lib, 3 + config, 4 + ... 5 + }: 6 + 7 + { 8 + programs.fzf = lib.mkIf config.keyzox.shell.enable { 9 + enable = lib.mkDefault true; 10 + enableZshIntegration = true; 11 + tmux.enableShellIntegration = true; 12 + }; 13 + }
+37
modules/home-manager/cli/shell/starship.nix
··· 1 + { 2 + lib, 3 + config, 4 + ... 5 + }: 6 + 7 + { 8 + programs.starship = lib.mkIf config.keyzox.shell.enable { 9 + enable = lib.mkDefault true; 10 + enableZshIntegration = true; 11 + settings = { 12 + add_newline = false; 13 + format = " $directory $git_branch$git_status[➜](bold green) "; 14 + directory = { 15 + truncation_length = 3; 16 + fish_style_pwd_dir_length = 3; 17 + home_symbol = "󰋜 "; 18 + read_only_style = "197"; 19 + read_only = " 󰌾"; 20 + format = "[$path]($style)[$read_only]($read_only_style)"; 21 + }; 22 + git_branch = { 23 + symbol = ""; 24 + format = "via [$symbol $branch]($style) "; 25 + truncation_length = 7; 26 + truncation_symbol = "…/"; 27 + style = "bold green"; 28 + }; 29 + git_status = { 30 + format = "([$all_status$ahead_behind ]($style))"; 31 + staged = "•"; 32 + modified = "~"; 33 + untracked = "+"; 34 + }; 35 + }; 36 + }; 37 + }
+15
modules/home-manager/cli/shell/zoxide.nix
··· 1 + { 2 + lib, 3 + config, 4 + ... 5 + }: 6 + 7 + { 8 + programs.zoxide = lib.mkIf config.keyzox.shell.enable { 9 + enable = lib.mkDefault true; 10 + enableZshIntegration = true; 11 + options = [ 12 + "--cmd cd" 13 + ]; 14 + }; 15 + }
+53
modules/home-manager/cli/tmux.nix
··· 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + ... 6 + }: 7 + { 8 + options = { 9 + keyzox.tmux.enable = lib.mkEnableOption "Can be used to enable my tmux config"; 10 + }; 11 + 12 + config = lib.mkIf config.keyzox.tmux.enable { 13 + 14 + catppuccin.tmux.enable = true; 15 + 16 + programs.tmux = { 17 + enable = true; 18 + terminal = "tmux-256color"; 19 + prefix = "C-a"; 20 + mouse = true; 21 + keyMode = "vi"; 22 + baseIndex = 1; 23 + clock24 = true; 24 + plugins = with pkgs; [ 25 + tmuxPlugins.tmux-fzf 26 + tmuxPlugins.vim-tmux-navigator 27 + tmuxPlugins.sensible 28 + ]; 29 + extraConfig = '' 30 + set-option -g renumber-windows on 31 + bind-key -n C-x kill-pane 32 + bind -n M-H previous-window 33 + bind -n M-L next-window 34 + bind-key "C-l" run-shell -b "${pkgs.tmuxPlugins.tmux-fzf}/share/tmux-plugins/tmux-fzf/scripts/session.sh switch" 35 + 36 + # Status 37 + set -g status-right '%Y-%m-%d %H:%M ' 38 + set -g status-left ''' 39 + set -g status-position bottom 40 + 41 + # Window status 42 + setw -g window-status-current-format ' #I #W #F ' 43 + setw -g window-status-current-style 'fg=#303446 bg=#babbf2' 44 + setw -g window-status-format ' #I #[fg=white]#W #[fg=mauve]#F ' 45 + 46 + # Pane status 47 + set -g pane-border-style 'fg=#292c3c' 48 + 49 + ''; 50 + }; 51 + 52 + }; 53 + }
+49
modules/home-manager/default.nix
··· 1 + { 2 + inputs, 3 + config, 4 + lib, 5 + pkgs, 6 + ... 7 + }: 8 + let 9 + cli-conf = lib.mkIf config.keyzox.cli.enable { 10 + keyzox.tmux.enable = lib.mkDefault true; 11 + keyzox.git.enable = lib.mkDefault true; 12 + keyzox.pogit.enable = lib.mkDefault true; 13 + keyzox.shell.enable = lib.mkDefault true; 14 + keyzox.cli-app.enable = lib.mkDefault true; 15 + }; 16 + gui-conf = lib.mkIf config.keyzox.gui.enable { 17 + keyzox.cli.enable = lib.mkDefault true; 18 + keyzox.kitty.enable = lib.mkDefault true; 19 + keyzox.nextcloud.enable = lib.mkDefault true; 20 + keyzox.darkman.enable = lib.mkDefault true; 21 + keyzox.dunst.enable = lib.mkDefault true; 22 + keyzox.hyprlock.enable = lib.mkDefault true; 23 + keyzox.hyprland.enable = lib.mkDefault true; 24 + keyzox.wl-sunset.enable = lib.mkDefault true; 25 + keyzox.gui-app.enable = lib.mkDefault true; 26 + }; 27 + in 28 + { 29 + imports = [ 30 + ./cli 31 + ./gui 32 + 33 + ./catppuccin.nix 34 + 35 + inputs.catppuccin.homeModules.catppuccin 36 + inputs.pogit.homeManagerModules.default 37 + ]; 38 + 39 + options = { 40 + keyzox.cli.enable = lib.mkEnableOption "Can be used to enable all the default cli configs i got"; 41 + keyzox.gui.enable = lib.mkEnableOption "Can be used to enable all the default gui configs i got. It also enable `default.cli`"; 42 + }; 43 + 44 + config = lib.mkMerge [ 45 + cli-conf 46 + gui-conf 47 + ]; 48 + 49 + }
+50
modules/home-manager/gui/darkman.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.darkman.enable = lib.mkEnableOption "Can be used to enable darkman config (for autodarkmode)"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.darkman.enable { 14 + 15 + xdg.configFile."xdg-desktop-portal/portals.conf" = { 16 + text = '' 17 + [preferred] 18 + org.freedesktop.impl.portal.Settings=darkman 19 + ''; 20 + }; 21 + 22 + services.darkman = { 23 + enable = true; 24 + lightModeScripts = { 25 + notification = '' 26 + dunstify --appname=darkman --urgency=low "switching to light mode" 27 + ''; 28 + system-light = '' 29 + dconf write /org/gnome/desktop/interface/color-scheme "'prefer-light'" 30 + dconf write /org/gnome/desktop/interface/gtk-theme "'Adwaita'" 31 + ''; 32 + }; 33 + darkModeScripts = { 34 + notification = '' 35 + dunstify --appname=darkman --urgency=low "switching to dark mode" 36 + ''; 37 + system-dark = '' 38 + dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'" 39 + dconf write /org/gnome/desktop/interface/gtk-theme "'Adwaita-dark'" 40 + ''; 41 + }; 42 + settings = { 43 + lat = 45.64; 44 + lng = 0.16; 45 + dbusserver = true; 46 + portal = true; 47 + }; 48 + }; 49 + }; 50 + }
+11
modules/home-manager/gui/default.nix
··· 1 + { 2 + imports = [ 3 + ./kitty.nix 4 + ./nextcloud.nix 5 + ./darkman.nix 6 + ./dunst.nix 7 + ./gui-app.nix 8 + 9 + ./wm 10 + ]; 11 + }
+18
modules/home-manager/gui/dunst.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.dunst.enable = lib.mkEnableOption "Can be used to enable dunst"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.dunst.enable { 14 + services.dunst = { 15 + enable = true; 16 + }; 17 + }; 18 + }
+32
modules/home-manager/gui/gui-app.nix
··· 1 + { 2 + config, 3 + inputs, 4 + lib, 5 + pkgs, 6 + ... 7 + }: 8 + 9 + { 10 + options = { 11 + keyzox.gui-app.enable = lib.mkEnableOption "Can be used to install the default gui app"; 12 + }; 13 + 14 + config = lib.mkIf config.keyzox.gui-app.enable { 15 + home.packages = with pkgs; [ 16 + vlc 17 + slack 18 + discord 19 + firefox 20 + obsidian 21 + localsend 22 + gearlever 23 + libreoffice 24 + inputs.zen-browser.packages.${pkgs.system}.default 25 + inputs.hyprland-contrib.packages.${pkgs.system}.grimblast 26 + xfce.thunar 27 + xfce.thunar-volman 28 + xfce.thunar-archive-plugin 29 + xfce.thunar-media-tags-plugin 30 + ]; 31 + }; 32 + }
+41
modules/home-manager/gui/kitty.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.kitty.enable = lib.mkEnableOption "Can be used to enable my kitty config"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.kitty.enable { 14 + programs.kitty = { 15 + enable = true; 16 + shellIntegration.enableZshIntegration = lib.mkDefault true; 17 + environment = { 18 + "KITTY_ENABLE_WAYLAND" = "1"; 19 + }; 20 + font = { 21 + name = lib.mkDefault "JetBrainsMono Nerd Font Mono"; 22 + size = lib.mkDefault 13; 23 + }; 24 + }; 25 + xdg.configFile."kitty/light-theme.auto.conf" = { 26 + text = '' 27 + include ${pkgs.kitty-themes}/share/kitty-themes/themes/Catppuccin-Latte.conf 28 + ''; 29 + }; 30 + xdg.configFile."kitty/dark-theme.auto.conf" = { 31 + text = '' 32 + include ${pkgs.kitty-themes}/share/kitty-themes/themes/Catppuccin-Frappe.conf 33 + ''; 34 + }; 35 + xdg.configFile."kitty/no-preference-theme.auto.conf" = { 36 + text = '' 37 + include ${pkgs.kitty-themes}/share/kitty-themes/themes/Catppuccin-Frappe.conf 38 + ''; 39 + }; 40 + }; 41 + }
+22
modules/home-manager/gui/nextcloud.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.nextcloud.enable = lib.mkEnableOption "Can be use to enable my nextcloud config"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.nextcloud.enable { 14 + home.packages = with pkgs; [ 15 + nextcloud-client 16 + ]; 17 + services.nextcloud-client = { 18 + enable = true; 19 + startInBackground = true; 20 + }; 21 + }; 22 + }
+15
modules/home-manager/gui/wm/default.nix
··· 1 + { 2 + ... 3 + }: 4 + 5 + { 6 + imports = [ 7 + ./hyprlock.nix 8 + ./hyprpaper.nix 9 + ./hypridle.nix 10 + ./hyprland.nix 11 + ./waybar.nix 12 + ./tofi.nix 13 + ./wl-sunset.nix 14 + ]; 15 + }
+42
modules/home-manager/gui/wm/hypridle.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.hypridle.enable = lib.mkEnableOption "Can be used to enable the hypridle daemon"; 11 + keyzox.hypridle.sleep_timeout = lib.mkOption { 12 + type = lib.types.int; 13 + default = 600; 14 + example = 300; 15 + description = "Can be used to change the time until sleep"; 16 + }; 17 + }; 18 + 19 + config = lib.mkIf config.keyzox.hypridle.enable { 20 + services.hypridle = { 21 + enable = true; 22 + settings = { 23 + general = { 24 + lock_cmd = "pidof hyprlock || hyprlock"; 25 + before_sleep_cmd = "loginctl lock-session"; 26 + after_sleep_cmd = "hyprctl dispatch dpms on"; 27 + }; 28 + listener = [ 29 + { 30 + timeout = config.keyzox.hypridle.sleep_timeout; 31 + on-timeout = "systemctl suspend"; 32 + } 33 + { 34 + timeout = 180; 35 + on-timeout = "hyprctl dispatch dpms off"; 36 + on-resume = "hyprctl dispatch dpms on"; 37 + } 38 + ]; 39 + }; 40 + }; 41 + }; 42 + }
+140
modules/home-manager/gui/wm/hyprland.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.hyprland.enable = lib.mkEnableOption "Can be used to enable my hyprland config"; 11 + keyzox.hyprland.autostart.enable = lib.mkEnableOption "Can be used the enable my autostart routine"; 12 + }; 13 + 14 + config = lib.mkMerge [ 15 + 16 + (lib.mkIf config.keyzox.hyprland.enable { 17 + keyzox.hyprpaper.enable = lib.mkDefault true; 18 + keyzox.tofi.enable = lib.mkDefault true; 19 + keyzox.waybar.enable = lib.mkDefault true; 20 + 21 + wayland.windowManager.hyprland = { 22 + enable = true; 23 + xwayland.enable = true; 24 + settings = { 25 + general = { 26 + border_size = "0"; 27 + gaps_in = "4"; 28 + gaps_out = "8,8,8,8"; 29 + "col.active_border" = "rgba(ffbabbf1)"; 30 + "col.inactive_border" = "rgba(ff303446)"; 31 + }; 32 + decoration = { 33 + rounding = 8; 34 + }; 35 + gestures.workspace_swipe = "on"; 36 + exec-once = lib.mkBefore [ 37 + "hyprpaper" 38 + "waybar" 39 + ]; 40 + "$mod" = "ALT"; 41 + "$win" = "SUPER"; 42 + bind = 43 + [ 44 + "$mod, P, exec, tofi-drun --drun=true" 45 + "CONTROLALT, delete, exec, hyprctl dispatch exit" 46 + "$mod, return, exec, kitty" 47 + "$mod, Q, killactive" 48 + "$mod, F, fullscreen" 49 + "$win, L, exec, hyprlock" 50 + "$win + SHIFT, S, exec, grimblast --notify copysave area \"$HOME/Nextcloud/Images/Captures d’écran/Capture d’écran $(date +%F-%H%M%S).png\"" 51 + "CTRL ALT, L, exec, systemctl suspend" 52 + ] 53 + ++ (builtins.concatLists ( 54 + builtins.genList ( 55 + x: 56 + let 57 + ws = 58 + let 59 + c = (x + 1) / 10; 60 + in 61 + builtins.toString (x + 1 - (c * 10)); 62 + in 63 + [ 64 + "$mod, ${ws}, workspace, ${toString (x + 1)}" 65 + "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}" 66 + ] 67 + ) 10 68 + )); 69 + env = [ 70 + "XCURSOR_SIZE,30" 71 + "XDG_CURRENT_DESKTOP,Hyprland" 72 + "OBSIDIAN_USE_WAYLAND=1" 73 + ]; 74 + cursor = { 75 + no_hardware_cursors = true; 76 + }; 77 + bindl = [ 78 + # media controls 79 + ", XF86AudioPlay, exec, playerctl play-pause" 80 + ", XF86AudioPause, exec, playerctl pause" 81 + ", XF86AudioPrev, exec, playerctl previous" 82 + ", XF86AudioNext, exec, playerctl next" 83 + 84 + # volume 85 + ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" 86 + ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" 87 + ]; 88 + 89 + bindle = [ 90 + # volume 91 + ", XF86AudioRaiseVolume, exec, wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 5%+" 92 + ", XF86AudioLowerVolume, exec, wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 5%-" 93 + 94 + # backlight 95 + ", XF86MonBrightnessUp, exec, brightnessctl s 5%+" 96 + ", XF86MonBrightnessDown, exec, brightnessctl s 5%-" 97 + ]; 98 + misc = { 99 + focus_on_activate = true; 100 + }; 101 + animation = [ 102 + "global, 1, 0.8, default" 103 + ]; 104 + input = { 105 + kb_layout = "us"; 106 + kb_variant = "intl"; 107 + follow_mouse = "1"; 108 + scroll_factor = "0.7"; 109 + force_no_accel = true; 110 + touchpad = { 111 + natural_scroll = "yes"; 112 + tap-and-drag = true; 113 + scroll_factor = "0.5"; 114 + }; 115 + sensitivity = "0.7"; 116 + accel_profile = "flat"; 117 + }; 118 + }; 119 + }; 120 + }) 121 + (lib.mkIf config.keyzox.hyprland.autostart.enable { 122 + wayland.windowManager.hyprland.settings = { 123 + windowrule = [ 124 + "workspace 3, class:obsidian" 125 + "workspace 5, class:Bitwarden" 126 + "workspace 8, class:Slack" 127 + "workspace 9, class:discord" 128 + "workspace 10, class:BeeperTexts" 129 + ]; 130 + exec-once = [ 131 + "/home/adjoly/AppImages/beeper.appimage -enable-features=UseOzonePlatform -ozone-platform=wayland" 132 + "discord" 133 + "bitwarden" 134 + "localsend_app --hidden" 135 + "solaar -w hide" 136 + ]; 137 + }; 138 + }) 139 + ]; 140 + }
+126
modules/home-manager/gui/wm/hyprlock.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + let 9 + source = pkgs.fetchurl { 10 + url = "https://drive.kanel.ovh/s/kS7b2Gpip6TkyGY/download/hyprlock.png"; 11 + sha256 = "mRpFtFyEbZjH3y501UrA/O+jhBNvtlD/6VwkCwYlITQ="; 12 + }; 13 + bsky-profile = pkgs.fetchurl { 14 + url = "https://cdn.bsky.app/img/avatar/plain/did:plc:7g74v3wiannux6tuc5t74gln/bafkreigdabcv3w3qmabjtkwxb6rnvtgnk3megwdcclni6bkv4frbcqf4ma@jpeg"; 15 + sha256 = "jKqJ+6PEO37NpY0FakGAwrRKzY1N6A6mYeUxhaL+jAA="; 16 + }; 17 + in 18 + { 19 + options = { 20 + keyzox.hyprlock.enable = lib.mkEnableOption "Can be used to enable my lock screen"; 21 + keyzox.hyprlock.monitor = lib.mkOption { 22 + type = lib.types.str; 23 + default = ""; 24 + example = "DP-2"; 25 + description = "Can be used to set the main screen for the lock"; 26 + }; 27 + }; 28 + 29 + config = lib.mkIf config.keyzox.hyprlock.enable { 30 + keyzox.hypridle.enable = true; 31 + 32 + programs.hyprlock = { 33 + enable = true; 34 + settings = { 35 + general = { 36 + disable_loading_bar = true; 37 + no_fade_in = true; 38 + ignore_empty_input = true; 39 + grace = 0; 40 + }; 41 + input-field = { 42 + monitor = [ config.keyzox.hyprlock.monitor ]; 43 + size = "200, 50"; 44 + position = "0, 150"; 45 + outer_color = "rgba(0, 0, 0, 0)"; 46 + fail_color = "rgba(231, 130, 132, 0.90)"; 47 + fail_text = "Wrong password"; 48 + check_color = "rgba(225, 200, 145, 0.90)"; 49 + rounding = 10; 50 + font_color = "rgba(198, 208, 245, 1.0)"; 51 + font_size = 3; 52 + dot_spacing = 0.3; 53 + dot_size = 1.0; 54 + inner_color = "rgba(48, 52, 70, 0.7)"; 55 + placeholder_text = "Enter password"; 56 + hide_input = false; 57 + fade_on_empty = false; 58 + halign = "center"; 59 + valign = "bottom"; 60 + font_family = "Noto Sans Regular"; 61 + outline_thickness = 2; 62 + }; 63 + background = { 64 + blur_passes = 1; 65 + blur_size = 1; 66 + monitor = ""; 67 + path = "${source}"; 68 + }; 69 + label = [ 70 + { 71 + monitor = [ config.keyzox.hyprlock.monitor ]; 72 + font_size = 120; 73 + position = "0, 250"; 74 + text = "cmd[update:1000] echo \"<span>\$(date +\"\%H:\%M\")</span>\""; 75 + halign = "center"; 76 + valign = "center"; 77 + font_family = "Noto Sans Medium"; 78 + color = "rgba(216, 222, 233, 0.90)"; 79 + } 80 + { 81 + monitor = [ config.keyzox.hyprlock.monitor ]; 82 + text = "cmd[update:1000] echo -e \"$(date +\"%A, %B %d\")\""; 83 + position = "0, 350"; 84 + halign = "center"; 85 + valign = "center"; 86 + font_family = "Noto Sans Medium"; 87 + color = "rgba(216, 222, 233, 0.90)"; 88 + } 89 + { 90 + monitor = [ config.keyzox.hyprlock.monitor ]; 91 + text = "${config.home.username}'s computer"; 92 + position = "0, 225"; 93 + font_size = 15; 94 + font_family = "Noto Sans Medium"; 95 + color = "rgba(216, 222, 233, 0.95)"; 96 + halign = "center"; 97 + valign = "bottom"; 98 + } 99 + ]; 100 + shape = [ 101 + { 102 + monitor = [ config.keyzox.hyprlock.monitor ]; 103 + size = "300, 350"; 104 + position = "0, 100"; 105 + halign = "center"; 106 + valign = "bottom"; 107 + color = "rgba(35, 38, 52, 0.7)"; 108 + rounding = 10; 109 + } 110 + ]; 111 + image = [ 112 + { 113 + monitor = [ config.keyzox.hyprlock.monitor ]; 114 + path = "${bsky-profile}"; 115 + border_size = 0; 116 + position = "0, 270"; 117 + size = 130; 118 + rounding = -1; 119 + halign = "center"; 120 + valign = "bottom"; 121 + } 122 + ]; 123 + }; 124 + }; 125 + }; 126 + }
+28
modules/home-manager/gui/wm/hyprpaper.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + let 9 + source = pkgs.fetchurl { 10 + url = "https://drive.kanel.ovh/s/e9Hqxi85gsSoZg5/download/DSC_4763.jpg"; 11 + sha256 = "0s4qavjcs9kf1g8vllqlb43i7si9vk6b9338rbpkqc87k6a794hi"; 12 + }; 13 + in 14 + { 15 + options = { 16 + keyzox.hyprpaper.enable = lib.mkEnableOption ""; 17 + }; 18 + 19 + config = lib.mkIf config.keyzox.hyprpaper.enable { 20 + services.hyprpaper = { 21 + enable = true; 22 + settings = { 23 + preload = [ "${source}" ]; 24 + wallpaper = [ ", ${source}" ]; 25 + }; 26 + }; 27 + }; 28 + }
+43
modules/home-manager/gui/wm/tofi.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.tofi.enable = lib.mkEnableOption "Can be used to enable my tofi config"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.tofi.enable { 14 + programs.tofi = { 15 + enable = true; 16 + settings = { 17 + width = "100%"; 18 + height = "100%"; 19 + 20 + prompt-text = "> "; 21 + hide-cursor = "true"; 22 + 23 + border-width = "0"; 24 + outline-width = "0"; 25 + padding-left = "33%"; 26 + padding-top = "20%"; 27 + 28 + text-color = "#babbf1"; 29 + selection-color = "#e78284"; 30 + prompt-color = "#eebebe"; 31 + result-spacing = "15"; 32 + 33 + background-color = "#303446df"; 34 + 35 + font = "monospace"; 36 + 37 + num-results = "10"; 38 + 39 + terminal = "kitty"; 40 + }; 41 + }; 42 + }; 43 + }
+269
modules/home-manager/gui/wm/waybar.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.waybar.enable = lib.mkEnableOption "Can be used to enable my waybar config"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.waybar.enable { 14 + services.mpris-proxy.enable = true; 15 + 16 + home.packages = [ 17 + pkgs.zenity # for the calendar popup in the bar 18 + ]; 19 + 20 + programs.waybar = { 21 + enable = true; 22 + settings = { 23 + bar = { 24 + margin-top = 8; 25 + margin-bottom = 0; 26 + margin-right = 8; 27 + margin-left = 8; 28 + layer = "top"; 29 + modules-left = [ 30 + "hyprland/workspaces" 31 + "hyprland/window" 32 + ]; 33 + modules-center = [ "clock" ]; 34 + modules-right = [ 35 + "mpris" 36 + "tray" 37 + "pulseaudio" 38 + "custom/prev" 39 + "custom/playpause" 40 + "custom/next" 41 + "network" 42 + "battery" 43 + ]; 44 + 45 + # --------------------------------------------------------- 46 + 47 + "hyprland/workspaces" = { 48 + format = "{icon}"; 49 + tooltip = false; 50 + format-icons = { 51 + "1" = "1"; 52 + "2" = "2"; 53 + "3" = "3"; 54 + "4" = "4"; 55 + "5" = "5"; 56 + "6" = "6"; 57 + "7" = "7"; 58 + "8" = "8"; 59 + "9" = "9"; 60 + "10" = "10"; 61 + "active" = ""; 62 + }; 63 + }; 64 + 65 + "hyprland/window" = { 66 + format = "{title}"; 67 + tooltip = false; 68 + icon = true; 69 + icon-size = 16; 70 + max-length = 20; 71 + }; 72 + 73 + # -------------------------:-------------------------------- 74 + 75 + clock = { 76 + format = "{:%a %d %b | %H : %M}"; 77 + tooltip = false; 78 + on-click = "GSK_RENDERER=gl zenity --calendar"; 79 + }; 80 + 81 + # --------------------------------------------------------- 82 + 83 + "custom/next" = { 84 + format = "󰒭"; 85 + on-click = "playerctl next"; 86 + tooltip = false; 87 + }; 88 + "custom/playpause" = { 89 + format = "󰐊"; 90 + on-click = "playerctl play-pause"; 91 + tooltip = false; 92 + }; 93 + "custom/prev" = { 94 + format = "󰒮"; 95 + on-click = "playerctl previous"; 96 + tooltip = false; 97 + }; 98 + pulseaudio = { 99 + format = "{icon} {volume:2}%"; 100 + format-bluetooth = "{icon} {volume}% "; 101 + format-muted = "MUTE {volume:2}%"; 102 + format-icons = { 103 + headphones = ""; 104 + default = [ 105 + "" 106 + "" 107 + ]; 108 + }; 109 + reverse-mouse-scrolling = true; 110 + on-click = "wpctl set-mute @DEFAULT_SINK@ toggle"; 111 + tooltip = false; 112 + }; 113 + mpris = { 114 + format = "{dynamic}"; 115 + format-paused = " {dynamic}"; 116 + title-len = 20; 117 + dynamic-len = 20; 118 + dynamic-order = [ "title" ]; 119 + tooltip = false; 120 + }; 121 + tray = { 122 + icon-size = 16; 123 + }; 124 + network = { 125 + format = "{ifname}"; 126 + format-wifi = "{essid}"; 127 + format-ethernet = "ethernet"; 128 + format-disconnected = "no network"; 129 + on-click = "kitty -- nmtui"; 130 + on-click-right = "kitty -- bluetuith"; 131 + tooltip = false; 132 + }; 133 + battery = { 134 + format = "{icon} {capacity} %"; 135 + format-icons = [ 136 + "󰂎" 137 + "󰁺" 138 + "󰁻" 139 + "󰁼" 140 + "󰁽" 141 + "󰁾" 142 + "󰁿" 143 + "󰂀" 144 + "󰂁" 145 + "󰂂" 146 + "󰁹" 147 + ]; 148 + format-charging = "󰂄 {capacity} %"; 149 + tooltip = false; 150 + states = { 151 + warning = 30; 152 + critical = 15; 153 + }; 154 + on-click-right = "systemctl suspend"; 155 + }; 156 + }; 157 + }; 158 + 159 + style = '' 160 + * { 161 + all: unset; 162 + font-family: "JetBrainsMono Nerd Font Mono"; 163 + font-size: 14px; 164 + } 165 + 166 + window#waybar { 167 + background: @mantle; 168 + border: 2px solid transparent; 169 + border-radius: 10px; 170 + } 171 + window#waybar.empty #window { 172 + background-color: transparent; 173 + border: transparent; 174 + } 175 + 176 + #mpris, #battery, #network, #clock, #pulseaudio, #window, #tray, #tray menu { 177 + color: @text; 178 + margin: 6px 4px; 179 + padding: 2px 8px; 180 + border-radius: 8px; 181 + background-color: @base; 182 + border: 2px solid transparent; 183 + } 184 + 185 + #workspaces { 186 + margin-left: 8px; 187 + margin: 6px 4px; 188 + padding: 2px 8px; 189 + border-radius: 8px; 190 + background-color: #303446; 191 + border: 2px solid transparent; 192 + } 193 + .modules-left #workspaces { 194 + padding: 2px 8px; 195 + margin-left: 8px; 196 + } 197 + .modules-left #workspaces button { 198 + color: @text; 199 + padding: 0px 4px; 200 + border-bottom: 0px solid transparent; 201 + } 202 + .modules-left #workspaces button.empty { 203 + color: @surface0; 204 + border-bottom: 0px solid transparent; 205 + } 206 + .modules-left #workspaces button.active, 207 + .modules-left #workspaces button.focused { 208 + border-bottom: 0px solid transparent; 209 + } 210 + 211 + #custom-prev { 212 + border-radius: 8px 0px 0px 8px; 213 + padding: 2px 8px; 214 + margin: 6px 4px; 215 + border: 2px solid transparent; 216 + margin-right: 0px; 217 + border-right: 0px; 218 + background-color: @base; 219 + color: @text; 220 + } 221 + #custom-next { 222 + border-radius: 0px 8px 8px 0px; 223 + color: @text; 224 + padding: 2px 8px; 225 + margin: 6px 4px; 226 + border: 2px solid transparent; 227 + margin-left: 0px; 228 + border-left: 0px; 229 + background-color: @base; 230 + } 231 + #custom-playpause { 232 + color: @text; 233 + border-radius: 0px 0px 0px 0px; 234 + padding: 2px 8px; 235 + margin: 6px 4px; 236 + border: 2px solid transparent; 237 + margin-right: 0px; 238 + border-right: 0px; 239 + margin-left: 0px; 240 + border-left: 0px; 241 + background-color: @base; 242 + } 243 + 244 + #network.disconnected { 245 + color: @mauve; 246 + } 247 + #network.ethernet { 248 + color: @text; 249 + } 250 + #network.wifi { 251 + color: @text; 252 + } 253 + 254 + #battery { 255 + margin-right: 8px; 256 + } 257 + #battery.charging, #battery.plugged { 258 + color: @lavender; 259 + } 260 + #battery.critical:not(.charging) { 261 + color: @red; 262 + } 263 + #battery.warning:not(.charging) { 264 + color: @peach; 265 + } 266 + ''; 267 + }; 268 + }; 269 + }
+24
modules/home-manager/gui/wm/wl-sunset.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.wl-sunset.enable = lib.mkEnableOption "Can be used to enable wl-sunset"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.wl-sunset.enable { 14 + services.wlsunset = { 15 + enable = true; 16 + latitude = 45.64; 17 + longitude = 0.16; 18 + temperature = { 19 + day = 6500; 20 + night = 3500; 21 + }; 22 + }; 23 + }; 24 + }
+20
modules/nixos/catppuccin.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.theme.enable = lib.mkEnableOption "Can be used to enable catppuccin"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.theme.enable { 14 + catppuccin = { 15 + enable = true; 16 + flavor = "frappe"; 17 + accent = "lavender"; 18 + }; 19 + }; 20 + }
+137
modules/nixos/default.nix
··· 1 + { 2 + inputs, 3 + config, 4 + lib, 5 + pkgs, 6 + ... 7 + }: 8 + let 9 + auto-theme = lib.mkIf config.keyzox.theme.auto { 10 + programs.dconf.enable = true; 11 + }; 12 + wm = lib.mkIf config.keyzox.wm { 13 + keyzox = { 14 + fonts = true; 15 + 16 + theme.auto = true; 17 + programs = { 18 + hyprland.enable = true; 19 + app-image.enable = true; 20 + gnome-keyring.enable = true; 21 + }; 22 + services = { 23 + gdm.enable = true; 24 + xserver.enable = true; 25 + sound.enable = true; 26 + ddcutils.enable = true; 27 + }; 28 + }; 29 + }; 30 + boot = lib.mkIf config.keyzox.boot { 31 + boot = { 32 + loader.efi = { 33 + canTouchEfiVariables = true; 34 + efiSysMountPoint = "/boot"; 35 + }; 36 + 37 + supportedFilesystems = [ "ntfs" ]; 38 + blacklistedKernelModules = [ 39 + "nouveau" 40 + ]; 41 + }; 42 + }; 43 + env = lib.mkIf config.keyzox.env { 44 + time.timeZone = lib.mkDefault "Europe/Paris"; 45 + console.keyMap = lib.mkDefault "us-acentos"; 46 + 47 + i18n.defaultLocale = "fr_FR.UTF-8"; 48 + 49 + i18n.extraLocaleSettings = { 50 + LC_ADDRESS = "fr_FR.UTF-8"; 51 + LC_IDENTIFICATION = "fr_FR.UTF-8"; 52 + LC_MEASUREMENT = "fr_FR.UTF-8"; 53 + LC_MONETARY = "fr_FR.UTF-8"; 54 + LC_NAME = "fr_FR.UTF-8"; 55 + LC_NUMERIC = "fr_FR.UTF-8"; 56 + LC_PAPER = "fr_FR.UTF-8"; 57 + LC_TELEPHONE = "fr_FR.UTF-8"; 58 + LC_TIME = "fr_FR.UTF-8"; 59 + }; 60 + }; 61 + defaults = lib.mkIf config.keyzox.defaults { 62 + keyzox = { 63 + env = lib.mkDefault true; 64 + boot = lib.mkDefault true; 65 + programs = { 66 + nh.enable = lib.mkDefault true; 67 + }; 68 + services = { 69 + tailscale.enable = lib.mkDefault true; 70 + }; 71 + }; 72 + 73 + nixpkgs = { 74 + config = { 75 + allowUnfree = lib.mkDefault true; 76 + }; 77 + }; 78 + nix = { 79 + settings = { 80 + trusted-users = [ 81 + "@wheel" 82 + ]; 83 + experimental-features = [ 84 + "nix-command" 85 + "flakes" 86 + ]; 87 + # auto-optimise-store = true; 88 + }; 89 + }; 90 + 91 + environment.systemPackages = with pkgs; [ 92 + git 93 + vim 94 + wget 95 + curl 96 + btop 97 + unzip 98 + ]; 99 + 100 + networking = { 101 + networkmanager.enable = lib.mkDefault true; 102 + firewall = { 103 + enable = lib.mkDefault false; 104 + }; 105 + }; 106 + }; 107 + in 108 + { 109 + imports = [ 110 + ./catppuccin.nix 111 + ./grub-boot.nix 112 + ./fonts.nix 113 + 114 + ./hardware 115 + ./services 116 + ./programs 117 + 118 + inputs.home-manager.nixosModules.home-manager 119 + ]; 120 + 121 + options = { 122 + keyzox.env = lib.mkEnableOption "to enable all env (language and locales)"; 123 + keyzox.boot = lib.mkEnableOption "to enable default boot options"; 124 + keyzox.wm = lib.mkEnableOption "to enable my window manager configs"; 125 + keyzox.theme.auto = lib.mkEnableOption "to enable wath will be used for auto dark mode"; 126 + 127 + keyzox.defaults = lib.mkEnableOption "to enable default config (cli or not)"; 128 + }; 129 + 130 + config = lib.mkMerge [ 131 + defaults 132 + env 133 + boot 134 + wm 135 + auto-theme 136 + ]; 137 + }
+45
modules/nixos/fonts.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.fonts = lib.mkEnableOption "to install all my defaults fonts"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.fonts { 14 + fonts = { 15 + enableDefaultPackages = true; 16 + packages = with pkgs; [ 17 + nerd-fonts.jetbrains-mono 18 + 19 + jetbrains-mono 20 + noto-fonts 21 + ]; 22 + fontconfig = { 23 + enable = true; 24 + defaultFonts = { 25 + serif = [ 26 + "Noto Sans Mono" 27 + "Noto Color Emoji" 28 + ]; 29 + sansSerif = [ 30 + "JetBrains Mono" 31 + "Noto Color Emoji" 32 + ]; 33 + monospace = [ 34 + "JetBrainsMono Nerd Font Mono" 35 + "Noto Emoji" 36 + ]; 37 + emoji = [ 38 + "Noto Color Emoji" 39 + ]; 40 + }; 41 + }; 42 + }; 43 + 44 + }; 45 + }
+21
modules/nixos/grub-boot.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.grub-boot.enable = lib.mkEnableOption "to enable boot with grub"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.grub-boot.enable { 14 + boot.loader.grub = { 15 + device = lib.mkDefault "nodev"; 16 + enable = true; 17 + efiSupport = lib.mkDefault true; 18 + useOSProber = lib.mkDefault true; 19 + }; 20 + }; 21 + }
+22
modules/nixos/hardware/bluetooth.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.hardware.bluetooth.enable = lib.mkEnableOption "Can be used to enable bluetooth"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.hardware.bluetooth.enable { 14 + environment.systemPackages = with pkgs; [ 15 + bluetuith 16 + ]; 17 + hardware.bluetooth = { 18 + enable = true; 19 + powerOnBoot = true; 20 + }; 21 + }; 22 + }
+8
modules/nixos/hardware/default.nix
··· 1 + {...}: 2 + { 3 + imports = [ 4 + ./bluetooth.nix 5 + ./nvidia.nix 6 + ./logitech.nix 7 + ]; 8 + }
+22
modules/nixos/hardware/logitech.nix
··· 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + ... 6 + }: 7 + 8 + { 9 + 10 + options = { 11 + keyzox.hardware.logitech.enable = lib.mkEnableOption "To enabe logitech and solaar"; 12 + }; 13 + 14 + config = lib.mkIf config.keyzox.hardware.logitech.enable { 15 + hardware.logitech = { 16 + wireless = { 17 + enable = true; 18 + enableGraphical = true; 19 + }; 20 + }; 21 + }; 22 + }
+44
modules/nixos/hardware/nvidia.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + let 9 + activate = lib.mkIf config.keyzox.hardware.nvidia.enable { 10 + services.xserver.videoDrivers = [ "nvidia" ]; 11 + hardware = { 12 + graphics = { 13 + enable = true; 14 + enable32Bit = true; 15 + }; 16 + 17 + nvidia = { 18 + modesetting = { 19 + enable = lib.mkDefault true; 20 + }; 21 + nvidiaSettings = lib.mkDefault true; 22 + open = lib.mkDefault false; 23 + }; 24 + }; 25 + }; 26 + 27 + powerManage = lib.mkIf config.keyzox.hardware.nvidia.powerManagement { 28 + hardware.nvidia.powerManagement = { 29 + enable = lib.mkDefault true; 30 + finegrained = lib.mkDefault true; 31 + }; 32 + }; 33 + in 34 + { 35 + options = { 36 + keyzox.hardware.nvidia.enable = lib.mkEnableOption "Can be used to enable the nvidia drivers"; 37 + keyzox.hardware.nvidia.powerManagement = lib.mkEnableOption "Can be used to enable the powerManagement options for nvidia driver"; 38 + }; 39 + 40 + config = lib.mkMerge [ 41 + powerManage 42 + activate 43 + ]; 44 + }
+19
modules/nixos/programs/app-image.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.programs.app-image.enable = lib.mkEnableOption "to enable appimage support"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.programs.app-image.enable { 14 + programs.appimage = { 15 + enable = true; 16 + binfmt = true; 17 + }; 18 + }; 19 + }
+14
modules/nixos/programs/default.nix
··· 1 + { 2 + ... 3 + }: 4 + 5 + { 6 + imports = [ 7 + ./nh.nix 8 + ./hyprland.nix 9 + ./gnome-keyring.nix 10 + ./app-image.nix 11 + ./steam.nix 12 + ./docker.nix 13 + ]; 14 + }
+30
modules/nixos/programs/docker.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.programs.docker.enable = lib.mkEnableOption "to enable docker and docker-compose"; 11 + keyzox.programs.docker.rootless = lib.mkEnableOption "to enable rootless for docker"; 12 + }; 13 + 14 + config = lib.mkMerge [ 15 + (lib.mkIf config.keyzox.programs.docker.enable { 16 + virtualisation.docker = { 17 + enable = true; 18 + }; 19 + 20 + environment.systemPackages = with pkgs; [ 21 + docker-compose 22 + ]; 23 + }) 24 + (lib.mkIf config.keyzox.programs.docker.rootless { 25 + virtualisation.docker.rootless = { 26 + enable = true; 27 + }; 28 + }) 29 + ]; 30 + }
+17
modules/nixos/programs/gnome-keyring.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.programs.gnome-keyring.enable = lib.mkEnableOption "to enable gnome gnome-keyring"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.programs.gnome-keyring.enable { 14 + programs.seahorse.enable = true; 15 + services.gnome.gnome-keyring.enable = true; 16 + }; 17 + }
+42
modules/nixos/programs/hyprland.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.programs.hyprland.enable = lib.mkEnableOption "to enable hyprland"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.programs.hyprland.enable { 14 + xdg.portal = { 15 + enable = true; 16 + extraPortals = [ 17 + pkgs.xdg-desktop-portal-hyprland 18 + ]; 19 + }; 20 + programs.hyprland = { 21 + enable = true; 22 + }; 23 + environment.sessionVariables = { 24 + WLR_NO_HARDWARE_CURSORS = "1"; 25 + NIXOS_OZONE_WL = "1"; 26 + QT_STYLE_OVERRIDE = "Fusion"; 27 + QT_QPA_PLATFORM = "wayland"; 28 + GDK_BACKEND = "wayland"; 29 + CLUTTER_BACKEND = "wayland"; 30 + KITTY_ENABLE_WAYLAND = "1"; 31 + MOZ_ENABLE_WAYLAND = 1; 32 + }; 33 + 34 + services.displayManager = { 35 + defaultSession = "hyprland"; 36 + }; 37 + 38 + environment.systemPackages = with pkgs; [ 39 + wl-clipboard 40 + ]; 41 + }; 42 + }
+23
modules/nixos/programs/nh.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.programs.nh.enable = lib.mkEnableOption "to enable nh (nix helper)"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.programs.nh.enable { 14 + programs.nh = { 15 + enable = true; 16 + clean = { 17 + enable = true; 18 + extraArgs = lib.mkDefault "--keep 5 --keep-since 3d"; 19 + }; 20 + flake = lib.mkDefault "/home/adjoly/nixos-config"; 21 + }; 22 + }; 23 + }
+26
modules/nixos/programs/steam.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.programs.steam.enable = lib.mkEnableOption "to enable steam and proton"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.programs.steam.enable { 14 + programs.steam = { 15 + enable = true; 16 + extest.enable = true; 17 + extraCompatPackages = with pkgs; [ proton-ge-bin ]; 18 + protontricks = { 19 + enable = lib.mkDefault true; 20 + }; 21 + gamescopeSession = { 22 + enable = lib.mkDefault true; 23 + }; 24 + }; 25 + }; 26 + }
+30
modules/nixos/services/ddcutils.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.services.ddcutils.enable = lib.mkEnableOption "to enable ddcutils"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.services.ddcutils.enable { 14 + hardware.i2c.enable = true; 15 + users.groups.i2c = { }; 16 + 17 + services.udev.extraRules = '' 18 + KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0660" 19 + ''; 20 + 21 + environment.systemPackages = with pkgs; [ 22 + ddcui 23 + ddcutil 24 + ]; 25 + 26 + services.udev.packages = with pkgs; [ 27 + ddcutil 28 + ]; 29 + }; 30 + }
+12
modules/nixos/services/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + ./ddcutils.nix 6 + ./gdm.nix 7 + ./ly.nix 8 + ./tailscale.nix 9 + ./sound.nix 10 + ./xserver.nix 11 + ]; 12 + }
+19
modules/nixos/services/gdm.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.services.gdm.enable = lib.mkEnableOption "To enable gdm"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.services.gdm.enable { 14 + services.xserver.displayManager.gdm = { 15 + enable = true; 16 + wayland = true; 17 + }; 18 + }; 19 + }
+23
modules/nixos/services/ly.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.services.ly.enable = lib.mkEnableOption "to enable ly session manager"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.services.ly.enable { 14 + services.displayManager.ly = { 15 + enable = true; 16 + settings = { 17 + load = true; 18 + save = true; 19 + animation = "doom"; 20 + }; 21 + }; 22 + }; 23 + }
+27
modules/nixos/services/sound.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.services.sound.enable = lib.mkEnableOption "to enable sound"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.services.sound.enable { 14 + services.pulseaudio.enable = false; 15 + security.rtkit.enable = true; 16 + services.pipewire = { 17 + enable = true; 18 + alsa = { 19 + enable = true; 20 + support32Bit = true; 21 + }; 22 + pulse.enable = true; 23 + jack.enable = true; 24 + }; 25 + services.playerctld.enable = true; 26 + }; 27 + }
+19
modules/nixos/services/tailscale.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.services.tailscale.enable = lib.mkEnableOption "To enable tailscale"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.services.tailscale.enable { 14 + services.tailscale = { 15 + enable = true; 16 + extraUpFlags = lib.mkBefore [ "--accept-routes" ]; 17 + }; 18 + }; 19 + }
+26
modules/nixos/services/xserver.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + keyzox.services.xserver.enable = lib.mkEnableOption "to enable xserver"; 11 + }; 12 + 13 + config = lib.mkIf config.keyzox.services.xserver.enable { 14 + services.xserver = { 15 + enable = true; 16 + xkb = { 17 + layout = "us"; 18 + variant = "intl"; 19 + }; 20 + }; 21 + services.libinput = { 22 + enable = lib.mkDefault true; 23 + mouse.accelProfile = "flat"; 24 + }; 25 + }; 26 + }
+40
pkgs/adjust-brightness/default.nix
··· 1 + { 2 + pkgs ? import <nixpkgs> { }, 3 + }: 4 + 5 + pkgs.writeShellScriptBin "adjust-brightness" '' 6 + #!/bin/sh 7 + 8 + # Check if the correct number of arguments is provided 9 + if [ "$#" -ne 2 ]; then 10 + echo "Usage: $0 <display_number> <brightness_value_or_adjustment>" 11 + exit 1 12 + fi 13 + 14 + DISPLAY=$1 15 + VALUE_OR_ADJUSTMENT=$2 16 + 17 + # Get the current brightness value 18 + CURRENT=$(ddcutil getvcp 10 --display=$DISPLAY | grep -oP 'current value =\s*\K\d+') 19 + 20 + # Check if the adjustment is relative (+ or -) 21 + if [[ "$VALUE_OR_ADJUSTMENT" =~ ^[+-] ]]; then 22 + # Calculate the new brightness value 23 + NEW_BRIGHTNESS=$((CURRENT + VALUE_OR_ADJUSTMENT)) 24 + else 25 + # Set the brightness to the specified value 26 + NEW_BRIGHTNESS=$VALUE_OR_ADJUSTMENT 27 + fi 28 + 29 + # Ensure the new brightness is within the valid range (0-100) 30 + if [ "$NEW_BRIGHTNESS" -lt 0 ]; then 31 + NEW_BRIGHTNESS=0 32 + elif [ "$NEW_BRIGHTNESS" -gt 100 ]; then 33 + NEW_BRIGHTNESS=100 34 + fi 35 + 36 + # Set the new brightness value 37 + ddcutil setvcp 10 $NEW_BRIGHTNESS --display=$DISPLAY 38 + 39 + echo "Brightness for display $DISPLAY changed to $NEW_BRIGHTNESS" 40 + ''