Flake for my NixOS devices

Update

bwc9876.dev 2c3b0555 f3e28d61

verified
+63 -226
+5
base/boot.nix
··· 2 2 # /tmp should be clean! 3 3 boot.tmp.cleanOnBoot = true; 4 4 5 + # Give me back my RAM! 6 + services.logind.extraConfig = '' 7 + RuntimeDirectorySize=100M 8 + ''; 9 + 5 10 # Don't do Wait Online 6 11 systemd.services.NetworkManager-wait-online.enable = false; 7 12 systemd.network.wait-online.enable = false;
+1
base/nix.nix
··· 22 22 "flakes" 23 23 ]; 24 24 auto-optimise-store = true; 25 + fallback = true; 25 26 }; 26 27 gc = { 27 28 automatic = true;
+47 -205
flake.lock
··· 2 2 "nodes": { 3 3 "catppuccin": { 4 4 "inputs": { 5 - "catppuccin-v1_1": "catppuccin-v1_1", 6 - "catppuccin-v1_2": "catppuccin-v1_2", 7 - "home-manager": [ 8 - "hm" 9 - ], 10 - "home-manager-stable": "home-manager-stable", 11 5 "nixpkgs": [ 12 6 "nixpkgs" 13 - ], 14 - "nixpkgs-stable": "nixpkgs-stable", 15 - "nuscht-search": "nuscht-search" 7 + ] 16 8 }, 17 9 "locked": { 18 - "lastModified": 1736957255, 19 - "narHash": "sha256-qZZ/K5XheRMjCNYgle90QESuys0PIFJNPJJswMJ0GEA=", 10 + "lastModified": 1737579274, 11 + "narHash": "sha256-8kBIYfn8TI9jbffhDNS12SdbQHb9ITXflwcgIJBeGqw=", 20 12 "owner": "catppuccin", 21 13 "repo": "nix", 22 - "rev": "f06fcadf9a61b6581b392e72f230fa6783fe36e4", 14 + "rev": "06f0ea19334bcc8112e6d671fd53e61f9e3ad63a", 23 15 "type": "github" 24 16 }, 25 17 "original": { ··· 28 20 "type": "github" 29 21 } 30 22 }, 31 - "catppuccin-v1_1": { 32 - "locked": { 33 - "lastModified": 1734055249, 34 - "narHash": "sha256-pCWJgwo77KD7EJpwynwKrWPZ//dwypHq2TfdzZWqK68=", 35 - "rev": "7221d6ca17ac36ed20588e1c3a80177ac5843fa7", 36 - "revCount": 326, 37 - "type": "tarball", 38 - "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.1.1/0193bdc0-b045-7eed-bbec-95611a8ecdf5/source.tar.gz" 39 - }, 40 - "original": { 41 - "type": "tarball", 42 - "url": "https://flakehub.com/f/catppuccin/nix/1.1.%2A.tar.gz" 43 - } 44 - }, 45 - "catppuccin-v1_2": { 46 - "locked": { 47 - "lastModified": 1734734291, 48 - "narHash": "sha256-CFX4diEQHKvZYjnhf7TLg20m3ge1O4vqgplsk/Kuaek=", 49 - "rev": "1e4c3803b8da874ff75224ec8512cb173036bbd8", 50 - "revCount": 344, 51 - "type": "tarball", 52 - "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.1/0193e646-1107-7f69-a402-f2a3988ecf1d/source.tar.gz" 53 - }, 54 - "original": { 55 - "type": "tarball", 56 - "url": "https://flakehub.com/f/catppuccin/nix/1.2.%2A.tar.gz" 57 - } 58 - }, 59 23 "crane": { 60 24 "locked": { 61 25 "lastModified": 1731098351, ··· 110 74 }, 111 75 "flake-compat_2": { 112 76 "locked": { 113 - "lastModified": 1696426674, 114 - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 115 - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 116 - "revCount": 57, 77 + "lastModified": 1733328505, 78 + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", 79 + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", 80 + "revCount": 69, 117 81 "type": "tarball", 118 - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" 82 + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" 119 83 }, 120 84 "original": { 121 85 "type": "tarball", ··· 182 146 "type": "github" 183 147 } 184 148 }, 185 - "flake-utils_2": { 186 - "inputs": { 187 - "systems": "systems_2" 188 - }, 189 - "locked": { 190 - "lastModified": 1731533236, 191 - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 192 - "owner": "numtide", 193 - "repo": "flake-utils", 194 - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 195 - "type": "github" 196 - }, 197 - "original": { 198 - "owner": "numtide", 199 - "repo": "flake-utils", 200 - "type": "github" 201 - } 202 - }, 203 149 "gh-grader-preview": { 204 150 "inputs": { 205 151 "nixpkgs": [ ··· 233 179 ] 234 180 }, 235 181 "locked": { 236 - "lastModified": 1737043064, 237 - "narHash": "sha256-I/OuxGwXwRi5gnFPsyCvVR+IfFstA+QXEpHu1hvsgD8=", 182 + "lastModified": 1737465171, 183 + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", 238 184 "owner": "cachix", 239 185 "repo": "git-hooks.nix", 240 - "rev": "94ee657f6032d913fe0ef49adaa743804635b0bb", 186 + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", 241 187 "type": "github" 242 188 }, 243 189 "original": { ··· 297 243 ] 298 244 }, 299 245 "locked": { 300 - "lastModified": 1737221749, 301 - "narHash": "sha256-igllW0yG+UbetvhT11jnt9RppSHXYgMykYhZJeqfHs0=", 246 + "lastModified": 1738178313, 247 + "narHash": "sha256-/8TLf6LkXGRGERzcWMNDeXjYaHSbexmfV+ofheo7K6k=", 302 248 "owner": "nix-community", 303 249 "repo": "home-manager", 304 - "rev": "97d7946b5e107dd03cc82f21165251d4e0159655", 250 + "rev": "420a0d9506b5dac4d86a68b9ef8e763624ad86c6", 305 251 "type": "github" 306 252 }, 307 253 "original": { ··· 310 256 "type": "github" 311 257 } 312 258 }, 313 - "home-manager-stable": { 314 - "inputs": { 315 - "nixpkgs": [ 316 - "catppuccin", 317 - "nixpkgs-stable" 318 - ] 319 - }, 320 - "locked": { 321 - "lastModified": 1736373539, 322 - "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", 323 - "owner": "nix-community", 324 - "repo": "home-manager", 325 - "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", 326 - "type": "github" 327 - }, 328 - "original": { 329 - "owner": "nix-community", 330 - "ref": "release-24.11", 331 - "repo": "home-manager", 332 - "type": "github" 333 - } 334 - }, 335 259 "imperm": { 336 260 "locked": { 337 - "lastModified": 1736688610, 338 - "narHash": "sha256-1Zl9xahw399UiZSJ9Vxs1W4WRFjO1SsNdVZQD4nghz0=", 261 + "lastModified": 1737831083, 262 + "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", 339 263 "owner": "nix-community", 340 264 "repo": "impermanence", 341 - "rev": "c64bed13b562fc3bb454b48773d4155023ac31b7", 265 + "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", 342 266 "type": "github" 343 267 }, 344 268 "original": { ··· 350 274 "ixx": { 351 275 "inputs": { 352 276 "flake-utils": [ 353 - "catppuccin", 354 - "nuscht-search", 355 - "flake-utils" 356 - ], 357 - "nixpkgs": [ 358 - "catppuccin", 359 - "nuscht-search", 360 - "nixpkgs" 361 - ] 362 - }, 363 - "locked": { 364 - "lastModified": 1729958008, 365 - "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", 366 - "owner": "NuschtOS", 367 - "repo": "ixx", 368 - "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", 369 - "type": "github" 370 - }, 371 - "original": { 372 - "owner": "NuschtOS", 373 - "ref": "v0.0.6", 374 - "repo": "ixx", 375 - "type": "github" 376 - } 377 - }, 378 - "ixx_2": { 379 - "inputs": { 380 - "flake-utils": [ 381 277 "nixvim", 382 278 "nuschtosSearch", 383 279 "flake-utils" ··· 415 311 "rust-overlay": "rust-overlay" 416 312 }, 417 313 "locked": { 418 - "lastModified": 1734994463, 419 - "narHash": "sha256-S9MgfQjNt4J3I7obdLOVY23h+Yl/hnyibwGfOl+1uOE=", 314 + "lastModified": 1737639419, 315 + "narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", 420 316 "owner": "nix-community", 421 317 "repo": "lanzaboote", 422 - "rev": "93e6f0d77548be8757c11ebda5c4235ef4f3bc67", 318 + "rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", 423 319 "type": "github" 424 320 }, 425 321 "original": { ··· 436 332 ] 437 333 }, 438 334 "locked": { 439 - "lastModified": 1736819234, 440 - "narHash": "sha256-deQVtIH4UJueELJqluAICUtX7OosD9paTP+5FgbiSwI=", 335 + "lastModified": 1738033138, 336 + "narHash": "sha256-qlIM8A3bdL9c6PexhpS+QyZLO9y/8a3V75HVyJgDE5Q=", 441 337 "owner": "lnl7", 442 338 "repo": "nix-darwin", 443 - "rev": "bd921223ba7cdac346477d7ea5204d6f4736fcc6", 339 + "rev": "349a74c66c596ef97ee97b4d80a3ca61227b6120", 444 340 "type": "github" 445 341 }, 446 342 "original": { ··· 456 352 ] 457 353 }, 458 354 "locked": { 459 - "lastModified": 1736652904, 460 - "narHash": "sha256-8uolHABgroXqzs03QdulHp8H9e5kWQZnnhcda1MKbBM=", 355 + "lastModified": 1737861961, 356 + "narHash": "sha256-LIRtMvAwLGb8pBoamzgEF67oKlNPz4LuXiRPVZf+TpE=", 461 357 "owner": "Mic92", 462 358 "repo": "nix-index-database", 463 - "rev": "271e5bd7c57e1f001693799518b10a02d1123b12", 359 + "rev": "79b7b8eae3243fc5aa9aad34ba6b9bbb2266f523", 464 360 "type": "github" 465 361 }, 466 362 "original": { ··· 471 367 }, 472 368 "nixos-hardware": { 473 369 "locked": { 474 - "lastModified": 1736978406, 475 - "narHash": "sha256-oMr3PVIQ8XPDI8/x6BHxsWEPBRU98Pam6KGVwUh8MPk=", 370 + "lastModified": 1737751639, 371 + "narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=", 476 372 "owner": "NixOS", 477 373 "repo": "nixos-hardware", 478 - "rev": "b678606690027913f3434dea3864e712b862dde5", 374 + "rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4", 479 375 "type": "github" 480 376 }, 481 377 "original": { ··· 487 383 }, 488 384 "nixpkgs": { 489 385 "locked": { 490 - "lastModified": 1737062831, 491 - "narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=", 386 + "lastModified": 1737885589, 387 + "narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=", 492 388 "owner": "NixOS", 493 389 "repo": "nixpkgs", 494 - "rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c", 390 + "rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8", 495 391 "type": "github" 496 392 }, 497 393 "original": { ··· 503 399 }, 504 400 "nixpkgs-stable": { 505 401 "locked": { 506 - "lastModified": 1736061677, 507 - "narHash": "sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60=", 508 - "owner": "NixOS", 509 - "repo": "nixpkgs", 510 - "rev": "cbd8ec4de4469333c82ff40d057350c30e9f7d36", 511 - "type": "github" 512 - }, 513 - "original": { 514 - "owner": "NixOS", 515 - "ref": "nixos-24.11", 516 - "repo": "nixpkgs", 517 - "type": "github" 518 - } 519 - }, 520 - "nixpkgs-stable_2": { 521 - "locked": { 522 402 "lastModified": 1730741070, 523 403 "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", 524 404 "owner": "NixOS", ··· 550 430 "treefmt-nix": "treefmt-nix" 551 431 }, 552 432 "locked": { 553 - "lastModified": 1737200978, 554 - "narHash": "sha256-QTUx/F8HVjrRIHQxHKrr72aPMj+cDk18WTbvBCCBBdI=", 433 + "lastModified": 1738172358, 434 + "narHash": "sha256-ymUG0cDevhMgNIholJmWosZ3+6WTqO1J54U0ooJvtOk=", 555 435 "owner": "nix-community", 556 436 "repo": "nixvim", 557 - "rev": "cbf960e5659054b2ccf27b67218782e69016bef5", 437 + "rev": "1a5f1b43930807e1faa30c6fba814f8f2cfa3c37", 558 438 "type": "github" 559 439 }, 560 440 "original": { ··· 563 443 "type": "github" 564 444 } 565 445 }, 566 - "nuscht-search": { 446 + "nuschtosSearch": { 567 447 "inputs": { 568 448 "flake-utils": "flake-utils", 569 449 "ixx": "ixx", 570 450 "nixpkgs": [ 571 - "catppuccin", 572 - "nixpkgs" 573 - ] 574 - }, 575 - "locked": { 576 - "lastModified": 1735854821, 577 - "narHash": "sha256-Iv59gMDZajNfezTO0Fw6LHE7uKAShxbvMidmZREit7c=", 578 - "owner": "NuschtOS", 579 - "repo": "search", 580 - "rev": "836908e3bddd837ae0f13e215dd48767aee355f0", 581 - "type": "github" 582 - }, 583 - "original": { 584 - "owner": "NuschtOS", 585 - "repo": "search", 586 - "type": "github" 587 - } 588 - }, 589 - "nuschtosSearch": { 590 - "inputs": { 591 - "flake-utils": "flake-utils_2", 592 - "ixx": "ixx_2", 593 - "nixpkgs": [ 594 451 "nixvim", 595 452 "nixpkgs" 596 453 ] 597 454 }, 598 455 "locked": { 599 - "lastModified": 1735854821, 600 - "narHash": "sha256-Iv59gMDZajNfezTO0Fw6LHE7uKAShxbvMidmZREit7c=", 456 + "lastModified": 1737924095, 457 + "narHash": "sha256-9RO/IlxiE7bpY7GYsdDMNB533PnDOBo9UvYyXXqlN4c=", 601 458 "owner": "NuschtOS", 602 459 "repo": "search", 603 - "rev": "836908e3bddd837ae0f13e215dd48767aee355f0", 460 + "rev": "5efc9c966bb9bdad07a3c28667eac38b758c6f18", 604 461 "type": "github" 605 462 }, 606 463 "original": { ··· 620 477 "lanzaboote", 621 478 "nixpkgs" 622 479 ], 623 - "nixpkgs-stable": "nixpkgs-stable_2" 480 + "nixpkgs-stable": "nixpkgs-stable" 624 481 }, 625 482 "locked": { 626 483 "lastModified": 1731363552, ··· 679 536 ] 680 537 }, 681 538 "locked": { 682 - "lastModified": 1737166965, 683 - "narHash": "sha256-vlDROBAgq+7PEVM0vaS2zboY6DXs3oKK0qW/1dVuFs4=", 539 + "lastModified": 1738117527, 540 + "narHash": "sha256-GFviGfaezjGLFUlxdv3zyC7rSZvTXqwcG/YsF6MDkOw=", 684 541 "owner": "oxalica", 685 542 "repo": "rust-overlay", 686 - "rev": "fc839c9d5d1ebc789b4657c43c4d54838c7c01de", 543 + "rev": "6a3dc6ce4132bd57359214d986db376f2333c14d", 687 544 "type": "github" 688 545 }, 689 546 "original": { ··· 707 564 "type": "github" 708 565 } 709 566 }, 710 - "systems_2": { 711 - "locked": { 712 - "lastModified": 1681028828, 713 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 714 - "owner": "nix-systems", 715 - "repo": "default", 716 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 717 - "type": "github" 718 - }, 719 - "original": { 720 - "owner": "nix-systems", 721 - "repo": "default", 722 - "type": "github" 723 - } 724 - }, 725 567 "treefmt-nix": { 726 568 "inputs": { 727 569 "nixpkgs": [ ··· 730 572 ] 731 573 }, 732 574 "locked": { 733 - "lastModified": 1737054102, 734 - "narHash": "sha256-saLiCRQ5RtdTnznT/fja7GxcYRAzeY3k8S+IF/2s/2A=", 575 + "lastModified": 1737483750, 576 + "narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=", 735 577 "owner": "numtide", 736 578 "repo": "treefmt-nix", 737 - "rev": "97871d416166803134ba64597a1006f3f670fbde", 579 + "rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f", 738 580 "type": "github" 739 581 }, 740 582 "original": {
+1 -4
flake.nix
··· 17 17 rust-overlay.url = "github:oxalica/rust-overlay"; 18 18 rust-overlay.inputs.nixpkgs.follows = "nixpkgs"; 19 19 catppuccin.url = "github:catppuccin/nix"; 20 - catppuccin.inputs = { 21 - nixpkgs.follows = "nixpkgs"; 22 - home-manager.follows = "hm"; 23 - }; 20 + catppuccin.inputs.nixpkgs.follows = "nixpkgs"; 24 21 nixvim.url = "github:nix-community/nixvim"; 25 22 nixvim.inputs.nixpkgs.follows = "nixpkgs"; 26 23 nixvim.inputs.home-manager.follows = "hm";
+2 -2
res/custom_waybar_modules/kdeconnect.nu
··· 22 22 get_device_list | each {|it| device_info $it | insert "id" $it} 23 23 } 24 24 25 - def is_reachable [device: record] -> bool { 25 + def is_reachable [device: record] : bool -> bool { 26 26 $device.isReachable? | default false 27 27 } 28 28 29 - def supports_battery [device: record] -> bool { 29 + def supports_battery [device: record] : bool -> bool { 30 30 let reachable = is_reachable $device; 31 31 let supported = "kdeconnect_battery" in ($device.supportedPlugins? | default []); 32 32 let exists = dbus introspect --session --dest=$BUS_NAME (dev_path $device.id) | get -i children | default [] | any {|it| $it.name == "battery"}
+2 -2
roles/dev/nvim.nix
··· 371 371 372 372 dap = { 373 373 enable = true; 374 - extensions.dap-virtual-text.enable = true; 375 374 }; 375 + 376 + dap-virtual-text.enable = true; 376 377 377 378 lualine = { 378 379 enable = true; ··· 381 382 "trouble" 382 383 "toggleterm" 383 384 ]; 384 - # sections.lualine_c = ["lsp_progress"]; 385 385 }; 386 386 }; 387 387
+2 -11
roles/graphics/apps.nix
··· 150 150 151 151 programs.kdeconnect.enable = true; 152 152 153 - systemd.user.services.kdeconnect = { 154 - description = "Adds communication between your desktop and your smartphone"; 155 - after = ["graphical-session-pre.target"]; 156 - partOf = ["graphical-session.target"]; 157 - wantedBy = ["graphical-session.target"]; 158 - serviceConfig = { 159 - # Environment = "PATH=${config.home.profileDirectory}/bin"; 160 - ExecStart = "${pkgs.libsForQt5.kdeconnect-kde}/libexec/kdeconnectd"; 161 - Restart = "on-abort"; 162 - }; 163 - }; 153 + home-manager.users.bean.services.kdeconnect.enable = true; 164 154 165 155 environment.systemPackages = with pkgs; [ 166 156 chromium 167 157 kitty 168 158 catppuccinifier-gui 159 + zoom-us 169 160 170 161 # Office 171 162 libreoffice-qt6
+1 -1
systems/aperture.nix
··· 30 30 boot.extraModulePackages = []; 31 31 boot.binfmt.emulatedSystems = ["aarch64-linux"]; 32 32 33 - hardware.framework.enableKmod = true; 33 + hardware.framework.enableKmod = false; 34 34 35 35 fileSystems."/" = { 36 36 fsType = "tmpfs";
+2 -1
systems/test.nix
··· 8 8 9 9 includeBaseMods = true; 10 10 11 - roles = ["latest-linux" "normalboot" "imperm"]; 11 + roles = ["latest-linux" "normalboot" "vm"]; 12 + 12 13 extraModules = []; 13 14 }; 14 15 }