Flake for my NixOS devices

Update, rework network module

bwc9876.dev 720bdceb fdaca612

verified
+59 -44
+25 -25
flake.lock
··· 31 ] 32 }, 33 "locked": { 34 - "lastModified": 1762198582, 35 - "narHash": "sha256-P9giW/1Crn7ekQt4YIbONJ/hKFaHkTwyhz82FCjh+OM=", 36 "owner": "catppuccin", 37 "repo": "nix", 38 - "rev": "08716214674ca27914daa52e6fa809cc022b581e", 39 "type": "github" 40 }, 41 "original": { ··· 202 ] 203 }, 204 "locked": { 205 - "lastModified": 1760948891, 206 - "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=", 207 "owner": "hercules-ci", 208 "repo": "flake-parts", 209 - "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04", 210 "type": "github" 211 }, 212 "original": { ··· 410 ] 411 }, 412 "locked": { 413 - "lastModified": 1762296971, 414 - "narHash": "sha256-Jyv3L5rrUYpecON+9zyFz2VqgTSTsIG35fXuCyuCQv0=", 415 "owner": "nix-community", 416 "repo": "home-manager", 417 - "rev": "34fe48801d2a5301b814eaa1efb496499d06cebc", 418 "type": "github" 419 }, 420 "original": { ··· 515 }, 516 "nixos-hardware": { 517 "locked": { 518 - "lastModified": 1762267440, 519 - "narHash": "sha256-WHjEJ80oYbWyNu0dxysBs5oMlBc5w7YYzL1/UPj4iGo=", 520 "owner": "NixOS", 521 "repo": "nixos-hardware", 522 - "rev": "2e85ae1b7030df39269d29118b1f74944d0c8f15", 523 "type": "github" 524 }, 525 "original": { ··· 530 }, 531 "nixpkgs": { 532 "locked": { 533 - "lastModified": 1762111121, 534 - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", 535 "owner": "NixOS", 536 "repo": "nixpkgs", 537 - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", 538 "type": "github" 539 }, 540 "original": { ··· 554 "systems": "systems_2" 555 }, 556 "locked": { 557 - "lastModified": 1762293638, 558 - "narHash": "sha256-svsYLbxNq8EZoVtNF97wCAElZ2py5Q1p7viG6lTUixA=", 559 "owner": "nix-community", 560 "repo": "nixvim", 561 - "rev": "aa3a1dfb028cd09b8061862f9dd8d859467fc7ed", 562 "type": "github" 563 }, 564 "original": { ··· 748 ] 749 }, 750 "locked": { 751 - "lastModified": 1762223900, 752 - "narHash": "sha256-caxpESVH71mdrdihYvQZ9rTZPZqW0GyEG9un7MgpyRM=", 753 "owner": "oxalica", 754 "repo": "rust-overlay", 755 - "rev": "cfe1598d69a42a5edb204770e71b8df77efef2c3", 756 "type": "github" 757 }, 758 "original": { ··· 779 ] 780 }, 781 "locked": { 782 - "lastModified": 1762038257, 783 - "narHash": "sha256-D1Pbr/VaEWjmidcfmqa6/usolDCcJyW7TZcuCqc3sIs=", 784 "ref": "refs/heads/main", 785 - "rev": "a6dcef445f25eb059a4a8d64abfdbbe4c3635718", 786 - "revCount": 283, 787 "type": "git", 788 "url": "https://codeberg.org/spoonbaker/mono" 789 },
··· 31 ] 32 }, 33 "locked": { 34 + "lastModified": 1762510976, 35 + "narHash": "sha256-KGoSj8qMOOPaNE48RTtuNBbqOvKLTeklnRHWWvE/TXo=", 36 "owner": "catppuccin", 37 "repo": "nix", 38 + "rev": "728cb0a667ce37bb0c68557dba819c7fb54ff1c8", 39 "type": "github" 40 }, 41 "original": { ··· 202 ] 203 }, 204 "locked": { 205 + "lastModified": 1762040540, 206 + "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=", 207 "owner": "hercules-ci", 208 "repo": "flake-parts", 209 + "rev": "0010412d62a25d959151790968765a70c436598b", 210 "type": "github" 211 }, 212 "original": { ··· 410 ] 411 }, 412 "locked": { 413 + "lastModified": 1762463325, 414 + "narHash": "sha256-33YUsWpPyeBZEWrKQ2a1gkRZ7i0XCC/2MYpU6BVeQSU=", 415 "owner": "nix-community", 416 "repo": "home-manager", 417 + "rev": "0562fef070a1027325dd4ea10813d64d2c967b39", 418 "type": "github" 419 }, 420 "original": { ··· 515 }, 516 "nixos-hardware": { 517 "locked": { 518 + "lastModified": 1762463231, 519 + "narHash": "sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7+/YE=", 520 "owner": "NixOS", 521 "repo": "nixos-hardware", 522 + "rev": "52113c4f5cfd1e823001310e56d9c8d0699a6226", 523 "type": "github" 524 }, 525 "original": { ··· 530 }, 531 "nixpkgs": { 532 "locked": { 533 + "lastModified": 1762363567, 534 + "narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=", 535 "owner": "NixOS", 536 "repo": "nixpkgs", 537 + "rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4", 538 "type": "github" 539 }, 540 "original": { ··· 554 "systems": "systems_2" 555 }, 556 "locked": { 557 + "lastModified": 1762510447, 558 + "narHash": "sha256-C9zdTJKMX+mSTEXlXfyWTEZIPUKpzNgGP4v1cHd/JTs=", 559 "owner": "nix-community", 560 "repo": "nixvim", 561 + "rev": "3be63f84fd08d7cb37d5f9ac7c1c46e65b79ffec", 562 "type": "github" 563 }, 564 "original": { ··· 748 ] 749 }, 750 "locked": { 751 + "lastModified": 1762483116, 752 + "narHash": "sha256-Z8EVsTH10BjCdFyPxbUu5jBV+HGL39rh9+beQcnNRm0=", 753 "owner": "oxalica", 754 "repo": "rust-overlay", 755 + "rev": "9de55b59b6aaadbd9dbf223765a835239b767ee5", 756 "type": "github" 757 }, 758 "original": { ··· 779 ] 780 }, 781 "locked": { 782 + "lastModified": 1762377373, 783 + "narHash": "sha256-oc2sIniNQQwArQyASFCMtci2T88qtVgZEjgdVN3UzCY=", 784 "ref": "refs/heads/main", 785 + "rev": "04dfe79667923fccb4cf2a361af4a99f7af10f48", 786 + "revCount": 286, 787 "type": "git", 788 "url": "https://codeberg.org/spoonbaker/mono" 789 },
+13 -11
homeModules/nvim.nix
··· 66 enabled = true; 67 lsp = true; 68 }; 69 - gitsigns = true; 70 neotree = true; 71 native_lsp = { 72 enabled = true; ··· 120 smartindent = true; 121 cursorline = true; 122 showtabline = 2; 123 breakindent = true; 124 fillchars.__raw = ''[[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]''; 125 foldcolumn = "1"; ··· 226 options.desc = "Previous Tab"; 227 } 228 { 229 - action = "BufferLinePick"; 230 - key = "<Tab>"; 231 - options.desc = "Pick Tab and Switch"; 232 - } 233 - { 234 action = "Neotree toggle"; 235 key = "t"; 236 options.desc = "Toggle Neotree"; ··· 239 } 240 { 241 group = "Tab Closing"; 242 - prefix = "<S-Tab>"; 243 keys = [ 244 { 245 action = "BufferLineCloseLeft"; ··· 421 422 alpha = { 423 enable = true; 424 - opts = { 425 position = "center"; 426 }; 427 - layout = let 428 o = { 429 position = "center"; 430 }; ··· 674 nvim-ufo = { 675 enable = true; 676 }; 677 - gitsigns.enable = true; 678 679 lualine = { 680 enable = true; ··· 744 }; 745 web-devicons.enable = true; 746 747 - guess-indent.enable = true; 748 intellitab.enable = true; 749 750 which-key = {
··· 66 enabled = true; 67 lsp = true; 68 }; 69 neotree = true; 70 native_lsp = { 71 enabled = true; ··· 119 smartindent = true; 120 cursorline = true; 121 showtabline = 2; 122 + tabstop = 2; 123 + shiftwidth = 2; 124 breakindent = true; 125 fillchars.__raw = ''[[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]''; 126 foldcolumn = "1"; ··· 227 options.desc = "Previous Tab"; 228 } 229 { 230 action = "Neotree toggle"; 231 key = "t"; 232 options.desc = "Toggle Neotree"; ··· 235 } 236 { 237 group = "Tab Closing"; 238 + prefix = "<Tab><Tab>"; 239 keys = [ 240 { 241 action = "BufferLineCloseLeft"; ··· 417 418 alpha = { 419 enable = true; 420 + settings.opts = { 421 position = "center"; 422 }; 423 + settings.layout = let 424 o = { 425 position = "center"; 426 }; ··· 670 nvim-ufo = { 671 enable = true; 672 }; 673 + 674 + # gitgutter = { 675 + # enable = true; 676 + # settings = { 677 + # 678 + # }; 679 + # }; 680 681 lualine = { 682 enable = true; ··· 746 }; 747 web-devicons.enable = true; 748 749 + indent-o-matic.enable = true; 750 intellitab.enable = true; 751 752 which-key = {
+2 -2
homeModules/utils.nix
··· 52 }; 53 distro = null; 54 light_dark = "dark"; 55 - lightness = 0.65; 56 mode = "rgb"; 57 - preset = "interprogress"; 58 pride_month_disable = false; 59 pride_month_shown = []; 60 };
··· 52 }; 53 distro = null; 54 light_dark = "dark"; 55 + lightness = 0.5; 56 mode = "rgb"; 57 + preset = "gay-men"; 58 pride_month_disable = false; 59 pride_month_shown = []; 60 };
+4 -1
nixosConfigurations/installer.nix
··· 88 }; 89 90 cow = { 91 - network.wireless = true; 92 hm.enable = true; 93 cat.enable = true; 94 };
··· 88 }; 89 90 cow = { 91 + network = { 92 + enable = true; 93 + wireless = true; 94 + }; 95 hm.enable = true; 96 cat.enable = true; 97 };
+13 -5
nixosModules/network.nix
··· 1 {...}: { 2 config, 3 lib, 4 ... 5 }: { 6 options.cow.network = { 7 wireless = lib.mkEnableOption "wireless networking with IWD"; 8 bluetooth = lib.mkEnableOption "bluetooth networking"; 9 }; 10 11 - config = { 12 hardware.bluetooth = lib.mkIf config.cow.network.bluetooth { 13 enable = true; 14 settings = { ··· 18 }; 19 }; 20 21 cow.imperm.keepCache = 22 (lib.optional config.cow.network.bluetooth "/var/lib/bluetooth") 23 ++ (lib.optional config.cow.network.wireless "/var/lib/iwd"); 24 25 - networking = lib.mkIf config.cow.network.wireless { 26 - wireless.iwd.enable = true; 27 useNetworkd = true; 28 useDHCP = true; 29 }; 30 31 systemd.network = { 32 - enable = lib.mkDefault config.cow.network.wireless; 33 wait-online = { 34 enable = lib.mkDefault false; 35 }; 36 }; 37 38 - services = lib.mkIf config.cow.network.wireless { 39 resolved = { 40 enable = true; 41 llmnr = "false";
··· 1 {...}: { 2 config, 3 lib, 4 + pkgs, 5 ... 6 }: { 7 options.cow.network = { 8 + enable = lib.mkEnableOption "custom network setup using some nicer defaults"; 9 wireless = lib.mkEnableOption "wireless networking with IWD"; 10 bluetooth = lib.mkEnableOption "bluetooth networking"; 11 }; 12 13 + config = lib.mkIf config.cow.network.enable { 14 hardware.bluetooth = lib.mkIf config.cow.network.bluetooth { 15 enable = true; 16 settings = { ··· 20 }; 21 }; 22 23 + environment.systemPackages = with pkgs; 24 + (lib.optionals config.cow.network.bluetooth [ 25 + bluetui 26 + ]) 27 + ++ (lib.optionals config.cow.network.wireless [impala]); 28 + 29 cow.imperm.keepCache = 30 (lib.optional config.cow.network.bluetooth "/var/lib/bluetooth") 31 ++ (lib.optional config.cow.network.wireless "/var/lib/iwd"); 32 33 + networking = { 34 + wireless.iwd.enable = config.cow.network.wireless; 35 useNetworkd = true; 36 useDHCP = true; 37 }; 38 39 systemd.network = { 40 + enable = lib.mkDefault true; 41 wait-online = { 42 enable = lib.mkDefault false; 43 }; 44 }; 45 46 + services = lib.mkDefault { 47 resolved = { 48 enable = true; 49 llmnr = "false";
+1
nixosModules/role-desktop.nix
··· 15 firewall.openForUsers = true; 16 hm.enable = true; 17 network = { 18 bluetooth = lib.mkDefault true; 19 wireless = lib.mkDefault true; 20 };
··· 15 firewall.openForUsers = true; 16 hm.enable = true; 17 network = { 18 + enable = true; 19 bluetooth = lib.mkDefault true; 20 wireless = lib.mkDefault true; 21 };
+1
nixosModules/role-laptop.nix
··· 23 print.enable = true; 24 hm.enable = true; 25 network = { 26 bluetooth = true; 27 wireless = true; 28 };
··· 23 print.enable = true; 24 hm.enable = true; 25 network = { 26 + enable = true; 27 bluetooth = true; 28 wireless = true; 29 };