personal nixos config and packages
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}