personal nixos config and packages
at main 2.0 kB view raw
1{ 2 description = "Asa's personal NixOS configuration"; 3 4 inputs = { 5 nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 6 hardware.url = "github:nixos/nixos-hardware/master"; 7 quickshell = { 8 url = "github:outfoxxed/quickshell"; 9 inputs.nixpkgs.follows = "nixpkgs"; 10 }; 11 noctalia = { 12 url = "github:noctalia-dev/noctalia-shell"; 13 inputs.nixpkgs.follows = "nixpkgs"; 14 inputs.quickshell.follows = "quickshell"; 15 }; 16 nixpak = { 17 url = "github:nixpak/nixpak"; 18 inputs.nixpkgs.follows = "nixpkgs"; 19 }; 20 }; 21 22 outputs = 23 { 24 nixpkgs, 25 hardware, 26 noctalia, 27 nixpak, 28 ... 29 }@inputs: 30 let 31 noctalia-overlay = system: final: prev: { noctalia-shell = noctalia.packages.${system}.default; }; 32 forAllSystems = 33 function: 34 nixpkgs.lib.genAttrs [ 35 "x86_64-linux" # <- useful 36 "aarch64-linux" # <- aspirational 37 "aarch64-darwin" # <- useless 38 ] (system: function (nixpkgs.legacyPackages.${system}.extend (noctalia-overlay system))); 39 in 40 { 41 nixosConfigurations.asa-fw = nixpkgs.lib.nixosSystem rec { 42 system = "x86_64-linux"; 43 specialArgs = { 44 inherit inputs; 45 }; 46 modules = [ 47 modules/system.nix 48 modules/desktop.nix 49 modules/apps.nix 50 modules/fonts.nix 51 modules/networking.nix 52 modules/audio.nix 53 modules/dev.nix 54 hardware/fw-13.nix 55 hardware.nixosModules.framework-13-7040-amd 56 { 57 nixpkgs.overlays = [ 58 (noctalia-overlay system) 59 (final: prev: { 60 customPackages = import ./programs { 61 pkgs = prev; 62 }; 63 }) 64 ]; 65 } 66 ]; 67 }; 68 69 packages = forAllSystems (pkgs: import ./programs { inherit pkgs; }); 70 71 devShell = forAllSystems (pkgs: pkgs.nixd); 72 73 formatter = forAllSystems (pkgs: pkgs.nixfmt-tree); 74 }; 75}