{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland"; niri.url = "github:sodiboo/niri-flake"; nix-monitored.url = "github:ners/nix-monitored"; home = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs = { nixpkgs.follows = "nixpkgs"; }; }; noctalia = { url = "github:noctalia-dev/noctalia-shell"; inputs.nixpkgs.follows = "nixpkgs"; inputs.noctalia-qs.follows = "noctalia-qs"; }; noctalia-qs = { url = "github:noctalia-dev/noctalia-qs"; inputs.nixpkgs.follows = "nixpkgs"; }; }; nixConfig = { extra-substituters = [ "https://cache.nixos.org" "https://cache.lix.systems" "https://nix-community.cachix.org" "https://cache.garnix.io" "https://niri.cachix.org" ]; extra-trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964=" "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" ]; }; outputs = {self, home, nixpkgs, nixpkgs-stable, ...}@inputs: let lib = import ./lib; config = { allowUnfree = true; }; overlays = [ inputs.rust-overlay.overlays.default inputs.niri.overlays.niri ]; in { nixosConfigurations = lib.genNixOSHosts { inherit inputs config overlays self; baseModules = [ home.nixosModules.home-manager self.nixosModules.default inputs.niri.nixosModules.niri inputs.stylix.nixosModules.stylix inputs.nix-monitored.nixosModules.default ]; }; homeConfigurations = lib.genHomeHosts { inherit inputs config overlays; user = "joshua"; baseModules = [ self.homeModules.default inputs.niri.homeModules.niri inputs.niri.homeModules.stylix inputs.noctalia.homeModules.default inputs.stylix.homeModules.stylix ]; }; homeModules.default = import ./modules/home; nixosModules.default = import ./modules/nixos; #TODO put home-manager in dtcommon # nixosConfigurations.prospero = nixpkgs.lib.nixosSystem { # system = "x86_64-linux"; # modules = [ # ./all.nix # home-manager.nixosModules.home-manager # ./dt-common.nix # ./prospero/configuration.nix # ]; # }; # nixosConfigurations.uruk = nixpkgs.lib.nixosSystem { # system = "x86_64-linux"; # modules = [ # ./all.nix # home-manager.nixosModules.home-manager # ./dt-common.nix # ./uruk/configuration.nix # ]; # }; }; }