{ description = "Complete system and home config"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager-unstable = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; quickshell = { url = "git+https://git.outfoxxed.me/quickshell/quickshell"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; }; outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, home-manager-unstable, ... }@inputs: { nixosConfigurations = { arielle = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ ./hosts/arielle home-manager.nixosModules.home-manager { home-manager = { extraSpecialArgs = { inherit inputs; }; useGlobalPkgs = true; useUserPackages = true; users = { till = { imports = [ ./home/minimal ./users/till/home.nix ]; }; }; }; } { # firefox-addons.config.allowUnfreePredicate = pkg: # builtins.elem (nixpkgs.lib.getName pkg) [ # "tampermonkey" # ]; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [ "outline" ]; } ]; }; homer = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ ./hosts/homer ]; }; mila = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ ./hosts/mila ]; }; nova = nixpkgs-unstable.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ ./hosts/nova home-manager-unstable.nixosModules.home-manager { home-manager = { extraSpecialArgs = { inherit inputs; }; useGlobalPkgs = true; useUserPackages = true; users = { till = { imports = [ ./home/desktop-full ./users/till/home.nix ]; }; alt = { imports = [ ./home/desktop-slim ./users/alt/home.nix ]; }; guest = { imports = [ ./home/desktop-slim ./users/guest/home.nix ]; }; }; }; } { # firefox-addons.config.allowUnfreePredicate = pkg: # builtins.elem (nixpkgs.lib.getName pkg) [ # "tampermonkey" # ]; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [ "corefonts" "textfonts" "keymapp" "steam" "steam-unwrapped" # "tampermonkey" ]; } ]; }; }; }; }