{ description = "My NixOS desktop and server configs"; inputs = { # NixOS official package source, using the nixos-23.11 branch here nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixos-hardware.url = "github:nixos/nixos-hardware"; # Declarative dotfile management home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; # Declarative partitioning and formatting disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; zen = { url = "github:MarceColl/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; jovian = { url = "github:Jovian-Experiments/Jovian-NixOS"; inputs.nixpkgs.follows = "nixpkgs"; }; # Secrets management. See ./docs/secretsmgmt.md sops-nix = { url = "github:mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, ... }@inputs: let lib = nixpkgs.lib; in { nixosConfigurations = { Lenni = let system = "x86_64-linux"; in lib.nixosSystem { specialArgs = { hostname = "Lenni"; inherit inputs; inherit system; }; modules = [ inputs.home-manager.nixosModules.home-manager { home-manager.useUserPackages = true; } inputs.niri.nixosModules.niri inputs.sops-nix.nixosModules.sops inputs.disko.nixosModules.disko inputs.stylix.nixosModules.stylix inputs.nixvim.nixosModules.nixvim inputs.nixos-hardware.nixosModules.framework-12th-gen-intel ./hosts/Lenni ./pkgs ]; }; Puenktchen = let system = "x86_64-linux"; in lib.nixosSystem { specialArgs = { hostname = "Puenktchen"; inherit inputs; inherit system; }; modules = [ inputs.home-manager.nixosModules.home-manager { home-manager.useUserPackages = true; } inputs.niri.nixosModules.niri inputs.sops-nix.nixosModules.sops inputs.disko.nixosModules.disko inputs.stylix.nixosModules.stylix inputs.nixvim.nixosModules.nixvim inputs.nixos-hardware.nixosModules.common-cpu-amd inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate inputs.nixos-hardware.nixosModules.common-cpu-amd-zenpower ./hosts/Puenktchen ./pkgs ]; }; Anton = let system = "x86_64-linux"; in lib.nixosSystem { specialArgs = { hostname = "Anton"; inherit inputs; inherit system; }; modules = [ inputs.home-manager.nixosModules.home-manager { home-manager.useUserPackages = true; } inputs.niri.nixosModules.niri inputs.sops-nix.nixosModules.sops inputs.disko.nixosModules.disko inputs.stylix.nixosModules.stylix inputs.nixvim.nixosModules.nixvim inputs.nixos-hardware.nixosModules.common-cpu-amd inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate inputs.nixos-hardware.nixosModules.common-cpu-amd-zenpower ./hosts/Anton ./pkgs ]; }; Lillie = let system = "x86_64-linux"; in lib.nixosSystem { specialArgs = { hostname = "Lillie"; inherit inputs; inherit system; }; modules = [ inputs.home-manager.nixosModules.home-manager { home-manager.useUserPackages = true; } inputs.niri.nixosModules.niri inputs.sops-nix.nixosModules.sops inputs.disko.nixosModules.disko inputs.stylix.nixosModules.stylix inputs.nixvim.nixosModules.nixvim inputs.jovian.nixosModules.default ./hosts/Lillie ./pkgs ]; }; }; }; }