this repo has no description
1
fork

Configure Feed

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

Update

Ben C 944b5e96 5633530f

+246 -200
+72 -72
flake.lock
··· 31 31 ] 32 32 }, 33 33 "locked": { 34 - "lastModified": 1765990358, 35 - "narHash": "sha256-l8x0gU8mnYaGMl+gWrsSHKBJlZWD8KXJfHTkRlFiPI0=", 34 + "lastModified": 1767750947, 35 + "narHash": "sha256-zqe9esphlAFu19TGL/nAyOHyOiR+Vu8M2IWWLg9cm4U=", 36 36 "owner": "catppuccin", 37 37 "repo": "nix", 38 - "rev": "de1b60ca45a578f59f7d84c8d338b346017b2161", 38 + "rev": "e7135074fe2a3d17bee3c229b5a7d3da26f76ce8", 39 39 "type": "github" 40 40 }, 41 41 "original": { ··· 61 61 }, 62 62 "crane_2": { 63 63 "locked": { 64 - "lastModified": 1766774972, 65 - "narHash": "sha256-8qxEFpj4dVmIuPn9j9z6NTbU+hrcGjBOvaxTzre5HmM=", 64 + "lastModified": 1767461147, 65 + "narHash": "sha256-TH/xTeq/RI+DOzo+c+4F431eVuBpYVwQwBxzURe7kcI=", 66 66 "owner": "ipetkov", 67 67 "repo": "crane", 68 - "rev": "01bc1d404a51a0a07e9d8759cd50a7903e218c82", 68 + "rev": "7d59256814085fd9666a2ae3e774dc5ee216b630", 69 69 "type": "github" 70 70 }, 71 71 "original": { ··· 76 76 }, 77 77 "crane_3": { 78 78 "locked": { 79 - "lastModified": 1762538466, 80 - "narHash": "sha256-8zrIPl6J+wLm9MH5ksHcW7BUHo7jSNOu0/hA0ohOOaM=", 79 + "lastModified": 1767461147, 80 + "narHash": "sha256-TH/xTeq/RI+DOzo+c+4F431eVuBpYVwQwBxzURe7kcI=", 81 81 "owner": "ipetkov", 82 82 "repo": "crane", 83 - "rev": "0cea393fffb39575c46b7a0318386467272182fe", 83 + "rev": "7d59256814085fd9666a2ae3e774dc5ee216b630", 84 84 "type": "github" 85 85 }, 86 86 "original": { ··· 91 91 }, 92 92 "crane_4": { 93 93 "locked": { 94 - "lastModified": 1762538466, 95 - "narHash": "sha256-8zrIPl6J+wLm9MH5ksHcW7BUHo7jSNOu0/hA0ohOOaM=", 94 + "lastModified": 1767461147, 95 + "narHash": "sha256-TH/xTeq/RI+DOzo+c+4F431eVuBpYVwQwBxzURe7kcI=", 96 96 "owner": "ipetkov", 97 97 "repo": "crane", 98 - "rev": "0cea393fffb39575c46b7a0318386467272182fe", 98 + "rev": "7d59256814085fd9666a2ae3e774dc5ee216b630", 99 99 "type": "github" 100 100 }, 101 101 "original": { ··· 158 158 "rust-analyzer-src": "rust-analyzer-src_2" 159 159 }, 160 160 "locked": { 161 - "lastModified": 1765435813, 162 - "narHash": "sha256-C6tT7K1Lx6VsYw1BY5S3OavtapUvEnDQtmQB5DSgbCc=", 161 + "lastModified": 1767163745, 162 + "narHash": "sha256-sJXyT3AeB3rHPuK93VjnVI16hoLJazieFq7LP62cTHw=", 163 163 "owner": "nix-community", 164 164 "repo": "fenix", 165 - "rev": "6399553b7a300c77e7f07342904eb696a5b6bf9d", 165 + "rev": "33e17a88166bba14f4017b3ee6cafe5b3376aef0", 166 166 "type": "github" 167 167 }, 168 168 "original": { ··· 174 174 "flake-compat": { 175 175 "flake": false, 176 176 "locked": { 177 - "lastModified": 1761588595, 178 - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", 179 - "owner": "edolstra", 177 + "lastModified": 1767039857, 178 + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", 179 + "owner": "NixOS", 180 180 "repo": "flake-compat", 181 - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", 181 + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", 182 182 "type": "github" 183 183 }, 184 184 "original": { 185 - "owner": "edolstra", 185 + "owner": "NixOS", 186 186 "repo": "flake-compat", 187 187 "type": "github" 188 188 } ··· 274 274 ] 275 275 }, 276 276 "locked": { 277 - "lastModified": 1767012911, 278 - "narHash": "sha256-+olVAh2dL9mg7C94bMYFpfzqaplHVigtUSpszS86xDM=", 277 + "lastModified": 1767617821, 278 + "narHash": "sha256-hV5T4bJopoXrUR9neI8CaR04qX9XpsnydvgJaIPWkFs=", 279 279 "owner": "nix-community", 280 280 "repo": "flakelight", 281 - "rev": "1eb3dee6b0dfbae9d0cb0c139a816ea62c5aa7ca", 281 + "rev": "1d0d50612c3e13e62363aeed63715ec3a5d9e18f", 282 282 "type": "github" 283 283 }, 284 284 "original": { ··· 316 316 ] 317 317 }, 318 318 "locked": { 319 - "lastModified": 1762844981, 320 - "narHash": "sha256-Sghy+Gi+zcUDFfdDJuKyPMtF/klSTeWjmJZoQH7SwzA=", 319 + "lastModified": 1767012911, 320 + "narHash": "sha256-+olVAh2dL9mg7C94bMYFpfzqaplHVigtUSpszS86xDM=", 321 321 "owner": "nix-community", 322 322 "repo": "flakelight", 323 - "rev": "faf9643dce373b7a556c77af8f8b961a75a066a4", 323 + "rev": "1eb3dee6b0dfbae9d0cb0c139a816ea62c5aa7ca", 324 324 "type": "github" 325 325 }, 326 326 "original": { ··· 337 337 ] 338 338 }, 339 339 "locked": { 340 - "lastModified": 1762844981, 341 - "narHash": "sha256-Sghy+Gi+zcUDFfdDJuKyPMtF/klSTeWjmJZoQH7SwzA=", 340 + "lastModified": 1767617821, 341 + "narHash": "sha256-hV5T4bJopoXrUR9neI8CaR04qX9XpsnydvgJaIPWkFs=", 342 342 "owner": "nix-community", 343 343 "repo": "flakelight", 344 - "rev": "faf9643dce373b7a556c77af8f8b961a75a066a4", 344 + "rev": "1d0d50612c3e13e62363aeed63715ec3a5d9e18f", 345 345 "type": "github" 346 346 }, 347 347 "original": { ··· 401 401 ] 402 402 }, 403 403 "locked": { 404 - "lastModified": 1767104570, 405 - "narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=", 404 + "lastModified": 1767738364, 405 + "narHash": "sha256-rmAerMcKMYusVs5B88RAKAYUiENrO+d4bjvpQkkaaks=", 406 406 "owner": "nix-community", 407 407 "repo": "home-manager", 408 - "rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf", 408 + "rev": "4e8b7bef66c60735982369f3151b93e62fe37da7", 409 409 "type": "github" 410 410 }, 411 411 "original": { ··· 439 439 "rust-overlay": "rust-overlay" 440 440 }, 441 441 "locked": { 442 - "lastModified": 1767013031, 443 - "narHash": "sha256-p8ANXBakAtfX/aEhLbU6w0tuQe3nrBvLdHbKirJP7ug=", 442 + "lastModified": 1767697030, 443 + "narHash": "sha256-0iVZ99H3kR5h6Lhw8kDDuUc5C/k6iismeWgCS1qWTQ4=", 444 444 "owner": "nix-community", 445 445 "repo": "lanzaboote", 446 - "rev": "c2a82339373daee8cbbcad5f51f22ae6b71069e0", 446 + "rev": "657469e8f036334db768daaf7732b1174676054b", 447 447 "type": "github" 448 448 }, 449 449 "original": { ··· 480 480 "xwayland-satellite-unstable": "xwayland-satellite-unstable" 481 481 }, 482 482 "locked": { 483 - "lastModified": 1767257541, 484 - "narHash": "sha256-eAZD0o5eC85jES3k8S0e1NlJJv+rTgofhl0QajhFjyM=", 483 + "lastModified": 1767745408, 484 + "narHash": "sha256-vvi7WchbK9jRs1TNQOq67ymWkdLqEHa5dZmWBI6go/0=", 485 485 "owner": "sodiboo", 486 486 "repo": "niri-flake", 487 - "rev": "0eb70f38f02923ff59743a0978fed88f04c98c7d", 487 + "rev": "89e47caf40415c5494d6ae3cb169d2c58d963b37", 488 488 "type": "github" 489 489 }, 490 490 "original": { ··· 513 513 "niri-unstable": { 514 514 "flake": false, 515 515 "locked": { 516 - "lastModified": 1767160009, 517 - "narHash": "sha256-aTj88rDBdhmzaGXoFPOsHjXYM2OjNttixsGftT/X0dI=", 516 + "lastModified": 1767598098, 517 + "narHash": "sha256-IyH3zaCT2JZ6fdY4vKlUz2RbDdxaryvSZWUVixKYrKM=", 518 518 "owner": "YaLTeR", 519 519 "repo": "niri", 520 - "rev": "cf0b4bc0ca93ab5c18b562ada1d8609b67b3c4e3", 520 + "rev": "b7eb8a635b7f75705808eaed85c016f02ae4fd2d", 521 521 "type": "github" 522 522 }, 523 523 "original": { ··· 563 563 }, 564 564 "nixpkgs": { 565 565 "locked": { 566 - "lastModified": 1767116409, 567 - "narHash": "sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw=", 566 + "lastModified": 1767640445, 567 + "narHash": "sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i+bwD6XxMb8A=", 568 568 "owner": "NixOS", 569 569 "repo": "nixpkgs", 570 - "rev": "cad22e7d996aea55ecab064e84834289143e44a0", 570 + "rev": "9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5", 571 571 "type": "github" 572 572 }, 573 573 "original": { ··· 579 579 }, 580 580 "nixpkgs-stable": { 581 581 "locked": { 582 - "lastModified": 1767047869, 583 - "narHash": "sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo=", 582 + "lastModified": 1767634882, 583 + "narHash": "sha256-2GffSfQxe3sedHzK+sTKlYo/NTIAGzbFCIsNMUPAAnk=", 584 584 "owner": "NixOS", 585 585 "repo": "nixpkgs", 586 - "rev": "89dbf01df72eb5ebe3b24a86334b12c27d68016a", 586 + "rev": "3c9db02515ef1d9b6b709fc60ba9a540957f661c", 587 587 "type": "github" 588 588 }, 589 589 "original": { ··· 602 602 "systems": "systems" 603 603 }, 604 604 "locked": { 605 - "lastModified": 1767185101, 606 - "narHash": "sha256-gyNczVfQMoi+OQghxBik6wx8XLsCelok9SMl1bMLUoc=", 605 + "lastModified": 1767608728, 606 + "narHash": "sha256-kmSJCTgrx+BxgqQOTPHAOkohvO+lbRsPWqu+PSPcz3I=", 607 607 "owner": "nix-community", 608 608 "repo": "nixvim", 609 - "rev": "df9d3637e80b98c5b937fc73a465d0eea2c3aa88", 609 + "rev": "851399eebd0fb383d2fd76269d859f16021dc7a8", 610 610 "type": "github" 611 611 }, 612 612 "original": { ··· 624 624 ] 625 625 }, 626 626 "locked": { 627 - "lastModified": 1763136727, 628 - "narHash": "sha256-UKzRG4/AR075DE6H3fAFA3y8tw+39qIwhUTC8FMZYLY=", 627 + "lastModified": 1767479474, 628 + "narHash": "sha256-l3vEkfel6jmIudd378XU/MmB0fBeraDyrux+rs9/mE4=", 629 629 "owner": "Bwc9876", 630 630 "repo": "nu_plugin_dbus", 631 - "rev": "9aae652c46c40726c469030222af1414efe25513", 631 + "rev": "ac513d2c3ef04a8b664109127ae62516ab0b580a", 632 632 "type": "github" 633 633 }, 634 634 "original": { ··· 663 663 ] 664 664 }, 665 665 "locked": { 666 - "lastModified": 1765911976, 667 - "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=", 666 + "lastModified": 1767281941, 667 + "narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=", 668 668 "owner": "cachix", 669 669 "repo": "pre-commit-hooks.nix", 670 - "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27", 670 + "rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa", 671 671 "type": "github" 672 672 }, 673 673 "original": { ··· 679 679 "prismlauncher-meta": { 680 680 "flake": false, 681 681 "locked": { 682 - "lastModified": 1766163665, 683 - "narHash": "sha256-XaKuaWB4MxbUk6OaNqrrGoM7wREz5sU1WaeLEsVpZ1A=", 682 + "lastModified": 1767135651, 683 + "narHash": "sha256-fNCNWqrIOQtappichzs5vjiY1kwlx1SKcDUx2sHCIOo=", 684 684 "owner": "PrismLauncher", 685 685 "repo": "meta-upstream", 686 - "rev": "206cd7b780ad64c4fdb3f88f3ed06fec8940400f", 686 + "rev": "5f1223e7ca223c3f89bf9681a8ae3e0db1723387", 687 687 "type": "github" 688 688 }, 689 689 "original": { ··· 782 782 "rust-analyzer-src_2": { 783 783 "flake": false, 784 784 "locked": { 785 - "lastModified": 1765400135, 786 - "narHash": "sha256-D3+4hfNwUhG0fdCpDhOASLwEQ1jKuHi4mV72up4kLQM=", 785 + "lastModified": 1767092832, 786 + "narHash": "sha256-cZFPNglcpjQuA9MXejYELyrIvPm67jR5CZ8Sq2o5P0w=", 787 787 "owner": "rust-lang", 788 788 "repo": "rust-analyzer", 789 - "rev": "fface27171988b3d605ef45cf986c25533116f7e", 789 + "rev": "2b4263b042d9bdee370e027e4b0ea0f6101709d0", 790 790 "type": "github" 791 791 }, 792 792 "original": { ··· 804 804 ] 805 805 }, 806 806 "locked": { 807 - "lastModified": 1766976750, 808 - "narHash": "sha256-w+o3AIBI56tzfMJRqRXg9tSXnpQRN5hAT15o2t9rxYw=", 807 + "lastModified": 1767495280, 808 + "narHash": "sha256-hEEgtE/RSRigw8xscchGymf/t1nluZwTfru4QF6O1CQ=", 809 809 "owner": "oxalica", 810 810 "repo": "rust-overlay", 811 - "rev": "9fe44e7f05b734a64a01f92fc51ad064fb0a884f", 811 + "rev": "cb24c5cc207ba8e9a4ce245eedd2d37c3a988bc1", 812 812 "type": "github" 813 813 }, 814 814 "original": { ··· 838 838 "prismlauncher-meta": "prismlauncher-meta" 839 839 }, 840 840 "locked": { 841 - "lastModified": 1767240050, 842 - "narHash": "sha256-NHV78UUI3BPyelMwwgfgMb5RH0+h5zZ+RwusBRAyVQs=", 841 + "lastModified": 1767339557, 842 + "narHash": "sha256-ofGCMK3nfyR6FUT0ddRjEZjUmshnTjE0u+8CdFmsGmE=", 843 843 "ref": "refs/heads/main", 844 - "rev": "85763f8fd86b6e08dd3436346d4edb1ebb8f1bc8", 845 - "revCount": 357, 844 + "rev": "7a0a3f4b3a0c4d4c34a9cdbdc88a1debc8677459", 845 + "revCount": 360, 846 846 "type": "git", 847 847 "url": "https://codeberg.org/spoonbaker/mono" 848 848 }, ··· 933 933 ] 934 934 }, 935 935 "locked": { 936 - "lastModified": 1763136818, 937 - "narHash": "sha256-6nDklWdTSDErRkVwhSg6pNxbh+eJmnqKWCpfqhq9rtg=", 936 + "lastModified": 1767633747, 937 + "narHash": "sha256-lZHoduWuBCqiyxGxFSPXrNbkl9vsjJeLPJ0jCOTVrw4=", 938 938 "owner": "Bwc9876", 939 939 "repo": "wayland-mpris-idle-inhibit", 940 - "rev": "804db180a94bc21ad60515af832ecc01e4c00cca", 940 + "rev": "2b8a6a6b07013df73bdc7736893776aa155cddac", 941 941 "type": "github" 942 942 }, 943 943 "original": {
-1
homeModules/gdi.nix
··· 6 6 }: { 7 7 imports = [inputs.niri.homeModules.niri]; 8 8 9 - # TODO: Replace Hyprland with Niri, switch out gdi.nix for this 10 9 options.cow.gdi = { 11 10 enable = lib.mkEnableOption "Niri + Customizations"; 12 11 doIdle = lib.mkEnableOption "Turn off screen, sleep, etc. from inactivity";
+2 -2
homeModules/user-bean.nix
··· 38 38 }; 39 39 }; 40 40 41 - home.packages = with pkgs; [ 41 + home.packages = lib.mkIf config.cow.gdi.enable (with pkgs; [ 42 42 libreoffice-qt6 43 43 obs-studio 44 44 loupe ··· 46 46 lorien 47 47 zoom-us 48 48 tuxpaint 49 - ]; 49 + ]); 50 50 51 51 home.sessionVariables = { 52 52 "EDITOR" = "nvim";
+11 -1
homeModules/yazi.nix
··· 60 60 bypass 61 61 mediainfo 62 62 wl-clipboard 63 - yatline 64 63 yatline-catppuccin 65 64 ; 65 + yatline = pkgs.yaziPlugins.yatline.overrideAttrs ( 66 + _: _: { 67 + version = "25.5.31-unstable-2026-01-05"; 68 + src = pkgs.fetchFromGitHub { 69 + owner = "carlosedp"; 70 + repo = "yatline.yazi"; 71 + rev = "e9589884cbdd7cc2283523fdb94f1c4c717a6de7"; 72 + sha256 = "sha256-TiMY4XEfrHUKDDw1GRoYQU4mjrIEPEy7NwDoYuUyMic="; 73 + }; 74 + } 75 + ); 66 76 }; 67 77 68 78 initLua = ''
+59 -54
nixosConfigurations/aperture.nix
··· 10 10 (builtins.attrValues outputs.nixosModules) 11 11 ++ [ 12 12 inputs.nixos-hardware.nixosModules.framework-13th-gen-intel 13 - { 14 - home-manager.users.bean.home.stateVersion = "25.05"; 15 - system.stateVersion = "25.05"; 16 - networking.hostName = "aperture"; 13 + ( 14 + {pkgs, ...}: { 15 + home-manager.users.bean.home.stateVersion = "25.05"; 16 + system.stateVersion = "25.05"; 17 + networking.hostName = "aperture"; 17 18 18 - users.users = let 19 - secureRoot = "/nix/persist/secure"; 20 - in { 21 - bean = { 22 - hashedPasswordFile = "${secureRoot}/hashed-passwd"; 23 - extraGroups = [ 24 - "adbusers" 25 - "kvm" 26 - ]; 19 + users.users = let 20 + secureRoot = "/nix/persist/secure"; 21 + in { 22 + bean = { 23 + hashedPasswordFile = "${secureRoot}/hashed-passwd"; 24 + extraGroups = [ 25 + "adbusers" 26 + "kvm" 27 + ]; 28 + }; 29 + root.hashedPasswordFile = "${secureRoot}/hashed-passwd"; 27 30 }; 28 - root.hashedPasswordFile = "${secureRoot}/hashed-passwd"; 29 - }; 30 31 31 - home-manager.users.bean.cow = { 32 - kde-connect = { 33 - enable = true; 34 - dev-name = "APERTURE"; 32 + home-manager.users.bean.cow = { 33 + kde-connect = { 34 + enable = true; 35 + dev-name = "APERTURE"; 36 + }; 37 + dev.mc = true; 35 38 }; 36 - dev.mc = true; 37 - }; 38 39 39 - home-manager.users.bean.programs.niri.settings.outputs."eDP-1".scale = 1; 40 + home-manager.users.bean.programs.niri.settings.outputs."eDP-1".scale = 1; 40 41 41 - programs.adb.enable = true; 42 + environment.systemPackages = with pkgs; [ 43 + android-tools 44 + ]; 42 45 43 - cow = { 44 - bean.sudoer = true; 45 - lanzaboote.enable = true; 46 - hypervisor.enable = true; 47 - role-laptop = { 48 - enable = true; 49 - fingerPrintSensor = true; 50 - }; 51 - gaming.enable = true; 52 - imperm.enable = true; 53 - disks = { 54 - enable = true; 55 - swap = true; 56 - luks = true; 46 + cow = { 47 + base.sysrqs = true; 48 + bean.sudoer = true; 49 + lanzaboote.enable = true; 50 + hypervisor.enable = true; 51 + role-laptop = { 52 + enable = true; 53 + fingerPrintSensor = true; 54 + }; 55 + gaming.enable = true; 56 + imperm.enable = true; 57 + disks = { 58 + enable = true; 59 + swap = true; 60 + luks = true; 61 + }; 57 62 }; 58 - }; 59 63 60 - boot.initrd.availableKernelModules = [ 61 - "xhci_pci" 62 - "thunderbolt" 63 - "nvme" 64 - "usb_storage" 65 - "sd_mod" 66 - ]; 67 - boot.initrd.kernelModules = []; 68 - boot.kernelModules = ["kvm-intel"]; 69 - boot.extraModulePackages = []; 70 - boot.binfmt.emulatedSystems = ["aarch64-linux"]; 64 + boot.initrd.availableKernelModules = [ 65 + "xhci_pci" 66 + "thunderbolt" 67 + "nvme" 68 + "usb_storage" 69 + "sd_mod" 70 + ]; 71 + boot.initrd.kernelModules = []; 72 + boot.kernelModules = ["kvm-intel"]; 73 + boot.extraModulePackages = []; 74 + boot.binfmt.emulatedSystems = ["aarch64-linux"]; 71 75 72 - hardware.framework.enableKmod = false; 76 + hardware.framework.enableKmod = false; 73 77 74 - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; 75 - hardware.enableRedistributableFirmware = lib.mkDefault true; 76 - hardware.cpu.intel.updateMicrocode = true; 77 - } 78 + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; 79 + hardware.enableRedistributableFirmware = lib.mkDefault true; 80 + hardware.cpu.intel.updateMicrocode = true; 81 + } 82 + ) 78 83 ]; 79 84 }
+1
nixosConfigurations/installer.nix
··· 88 88 }; 89 89 90 90 cow = { 91 + base.enable = true; 91 92 network = { 92 93 enable = true; 93 94 wireless = true;
+5 -2
nixosConfigurations/mann-co.nix
··· 1 1 { 2 - lib, 3 2 inputs, 4 3 outputs, 5 4 ... ··· 7 6 system = "aarch64-linux"; 8 7 9 8 modules = 10 - (builtins.attrValues (lib.filterAttrs (n: _: n != "base") outputs.nixosModules)) 9 + (builtins.attrValues outputs.nixosModules) 11 10 ++ [ 12 11 "${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" 13 12 {disabledModules = ["${inputs.nixpkgs}/nixos/modules/profiles/base.nix"];} ··· 26 25 security.sudo.wheelNeedsPassword = false; 27 26 28 27 cow = { 28 + base = { 29 + enable = true; 30 + linux-latest = false; 31 + }; 29 32 bean = { 30 33 enable = true; 31 34 sudoer = true;
+84 -61
nixosModules/base.nix
··· 5 5 lib, 6 6 ... 7 7 }: { 8 - time.timeZone = lib.mkDefault "America/New_York"; 8 + options.cow.base = let 9 + mkDefaultOption = d: (lib.mkEnableOption d) // {default = true;}; 10 + in { 11 + enable = lib.mkEnableOption "Base niceties and system tweaks. Also sets up some defaults specific to me, but can be easily changed."; 12 + env = mkDefaultOption "a nice environment setup, sets /etc/machine-id, HOSTNAME, and links flake source code in /etc/flake-src"; 13 + util = mkDefaultOption "Programs needed to rebuild the flake and run just recipes"; 14 + tmp = mkDefaultOption "Clear /tmp on boot and limit RuntimeDirectorySize"; 15 + nix = mkDefaultOption "Nix tweaks: use Lix, mark flake inputs as extra deps, adjust OOM score of the build daemon, expose nixpkgs instance as 'p' in flake registry, turn off channels, etc."; 16 + boot = mkDefaultOption "systemd in initrd, set kernel lockdown"; 17 + linux-latest = mkDefaultOption "latest Linux kernel"; 18 + sysrqs = lib.mkEnableOption "sysrqs"; 19 + }; 9 20 10 - environment.etc."machine-id".text = lib.mkDefault ( 11 - builtins.hashString "md5" config.networking.hostName 12 - ); 13 - 14 - environment.variables."HOSTNAME" = lib.mkDefault config.networking.hostName; 15 - environment.systemPackages = with pkgs; [ 16 - uutils-coreutils-noprefix 17 - nh 18 - nix-output-monitor 19 - git 20 - just 21 - ]; 22 - environment.etc."flake-src".source = inputs.self; 23 - 24 - programs.ssh.startAgent = true; 25 - documentation.man.generateCaches = false; 26 - services.upower.enable = true; 27 - services.udisks2.enable = true; 28 - 29 - boot.tmp.cleanOnBoot = lib.mkDefault true; 30 - services.logind.settings.Login.RuntimeDirectorySize = lib.mkDefault "100M"; 31 - 32 - # Make Nix builder lower OOM priority so it's killed before other stuff 33 - systemd.services.nix-daemon.serviceConfig.OOMScoreAdjust = lib.mkDefault 250; 34 - 35 - # Keep flake inputs when GC-ing 36 - system.extraDependencies = with builtins; let 37 - flakeDeps = flake: 38 - [flake.outPath] ++ (foldl' (a: b: a ++ b) [] (map flakeDeps (attrValues flake.inputs or {}))); 21 + config = let 22 + conf = config.cow.base; 39 23 in 40 - flakeDeps inputs.self; 24 + lib.mkIf conf.enable ( 25 + lib.mkMerge [ 26 + { 27 + time.timeZone = lib.mkDefault "America/New_York"; 28 + programs.ssh.startAgent = true; 29 + } 30 + (lib.mkIf conf.env { 31 + environment.etc = { 32 + "machine-id".text = builtins.hashString "md5" config.networking.hostName; 33 + "flake-src".source = inputs.self; 34 + }; 35 + environment.variables.HOSTNAME = config.networking.hostName; 36 + }) 37 + (lib.mkIf conf.util { 38 + environment.systemPackages = with pkgs; [ 39 + uutils-coreutils-noprefix 40 + nh 41 + nix-output-monitor 42 + git 43 + just 44 + ]; 45 + }) 46 + (lib.mkIf conf.tmp { 47 + boot.tmp.cleanOnBoot = lib.mkDefault true; 48 + services.logind.settings.Login.RuntimeDirectorySize = lib.mkDefault "100M"; 49 + }) 50 + (lib.mkIf conf.nix { 51 + # Make Nix builder lower OOM priority so it's killed before other stuff 52 + systemd.services.nix-daemon.serviceConfig.OOMScoreAdjust = lib.mkDefault 250; 41 53 42 - boot = { 43 - initrd.systemd = { 44 - enable = lib.mkDefault true; 45 - }; 46 - 47 - # Use latest kernel with sysrqs and lockdown enabled 48 - kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; 49 - kernelParams = lib.mkDefault ["lockdown=confidentiality"]; 50 - kernel.sysctl."kernel.sysrq" = lib.mkDefault 1; 51 - }; 54 + # Keep flake inputs when GC-ing 55 + system.extraDependencies = with builtins; let 56 + flakeDeps = flake: 57 + [flake.outPath] ++ (foldl' (a: b: a ++ b) [] (map flakeDeps (attrValues flake.inputs or {}))); 58 + in 59 + flakeDeps inputs.self; 52 60 53 - nix = { 54 - channel.enable = false; 55 - registry.p.flake = inputs.self; 56 - package = pkgs.lix; 57 - settings = { 58 - # So we can do `import <nixpkgs>` 59 - nix-path = "nixpkgs=${inputs.nixpkgs}"; 60 - experimental-features = [ 61 - "nix-command" 62 - "flakes" 63 - "pipe-operator" 64 - ]; 65 - auto-optimise-store = true; 66 - fallback = true; 67 - }; 68 - gc = { 69 - automatic = lib.mkDefault false; 70 - dates = lib.mkDefault "weekly"; 71 - }; 72 - }; 61 + nix = { 62 + channel.enable = false; 63 + registry.p.flake = inputs.self; 64 + package = pkgs.lix; 65 + settings = { 66 + # So we can do `import <nixpkgs>` 67 + nix-path = "nixpkgs=${inputs.nixpkgs}"; 68 + experimental-features = [ 69 + "nix-command" 70 + "flakes" 71 + "pipe-operator" 72 + ]; 73 + auto-optimise-store = true; 74 + fallback = true; 75 + }; 76 + gc = { 77 + automatic = lib.mkDefault false; 78 + dates = lib.mkDefault "weekly"; 79 + }; 80 + }; 81 + }) 82 + (lib.mkIf conf.boot { 83 + boot = { 84 + initrd.systemd.enable = lib.mkDefault true; 85 + kernelParams = lib.mkDefault ["lockdown=confidentiality"]; 86 + }; 87 + }) 88 + (lib.mkIf conf.linux-latest { 89 + boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; 90 + }) 91 + (lib.mkIf conf.sysrqs { 92 + boot.kernel.sysctl."kernel.sysrq" = lib.mkDefault 1; 93 + }) 94 + ] 95 + ); 73 96 }
+6 -2
nixosModules/gdi.nix
··· 5 5 ... 6 6 }: { 7 7 options.cow.gdi = { 8 - enable = lib.mkEnableOption "Hyprland with graphical apps, etc."; 8 + enable = lib.mkEnableOption "Niri with graphical apps, etc."; 9 9 doIdle = lib.mkEnableOption "Idling the system"; 10 - showGreet = lib.mkEnableOption "Show a greeter interface that runs a Wayland window manager"; 10 + showGreet = lib.mkEnableOption "Show a greeter interface that runs Niri"; 11 11 }; 12 12 13 13 config = lib.mkIf config.cow.gdi.enable { ··· 15 15 "/share/applications" 16 16 "/share/xdg-desktop-portal" 17 17 ]; 18 + 19 + # Services needed for shell 20 + services.upower.enable = lib.mkDefault true; 21 + services.udisks2.enable = lib.mkDefault true; 18 22 19 23 services.greetd = lib.mkIf config.cow.gdi.showGreet { 20 24 enable = true;
+2 -1
nixosModules/role-desktop.nix
··· 8 8 }; 9 9 10 10 config = lib.mkIf config.cow.role-desktop.enable { 11 - security.sudo.wheelNeedsPassword = false; 11 + security.sudo.wheelNeedsPassword = lib.mkDefault false; 12 12 13 13 cow = { 14 + base.enable = true; 14 15 bean.enable = true; 15 16 firewall.openForUsers = true; 16 17 hm.enable = true;
+1
nixosModules/role-laptop.nix
··· 18 18 }; 19 19 20 20 cow = { 21 + base.enable = true; 21 22 bean.enable = true; 22 23 firewall.openForUsers = true; 23 24 print.enable = true;
+3 -4
nixosModules/user-bean.nix
··· 10 10 enable = lib.mkEnableOption "Bean user"; 11 11 sudoer = lib.mkEnableOption "Bean being a sudoer"; 12 12 pubkey = lib.mkOption { 13 - type = lib.types.str; 13 + type = lib.types.nullOr lib.types.str; 14 14 description = "Public Key to Add for Bean"; 15 15 default = pubkey; 16 16 }; ··· 22 22 description = "Ben C"; 23 23 extraGroups = lib.optionals config.cow.bean.sudoer ["wheel"]; 24 24 shell = pkgs.nushell; 25 - openssh.authorizedKeys.keys = [config.cow.bean.pubkey]; 25 + openssh.authorizedKeys.keys = lib.mkIf (config.cow.bean.pubkey != null) [config.cow.bean.pubkey]; 26 26 }; 27 27 28 28 home-manager.users.bean = lib.mkIf config.cow.hm.enable { 29 29 cow.bean = { 30 - inherit (config.cow.bean) enable; 31 - inherit (config.cow.bean) pubkey; 30 + inherit (config.cow.bean) enable pubkey; 32 31 }; 33 32 cow.games.enable = config.cow.gaming.enable; 34 33 cow.gdi = {