{ description = "flake for nixos-pulse"; nixConfig = { extra-trusted-substituters = [ "https://nix-community.cachix.org" ]; extra-trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; inputs = { nixpkgs-unstable = { url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; nixos-unstable = { url = "github:NixOS/nixpkgs/nixos-unstable"; }; nixpkgs = { url = "github:NixOS/nixpkgs/nixos-23.05"; }; tuxedo-nixos = { url = "github:blitz/tuxedo-nixos"; }; home-manager = { url = "github:nix-community/home-manager/release-23.05"; inputs.nixpkgs.follows = "nixpkgs"; }; emacs-overlay = { url = "github:nix-community/emacs-overlay"; inputs.nixpkgs-stable.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; nur = { url = "github:nix-community/NUR"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-wallpaper = { url = "github:lunik1/nix-wallpaper"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-index-database = { url = "github:Mic92/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; plasma-manager = { url = "github:pjones/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; nix-ld = { url = "github:Mic92/nix-ld"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self , nixpkgs , nixpkgs-unstable , nixos-unstable , home-manager , emacs-overlay , nur , nix-index-database , disko , ... } @ inputs: let system = "x86_64-linux"; unstable-os = import nixos-unstable pkgs-args; unstable-os-overlay = _final: _prev: { unstable-os = unstable-os.pkgs; }; unstable-pkgs = import nixpkgs-unstable pkgs-args; unstable-pkgs-overlay = _final: _prev: { unstable-pkgs = unstable-pkgs.pkgs; }; overlays = [ unstable-os-overlay unstable-pkgs-overlay emacs-overlay.overlay ]; pkgs-args = { inherit system; inherit overlays; config = { allowUnfree = true; permittedInsecurePackages = [ "electron-22.3.27" "electron-24.8.6" ]; }; }; pkgs = import nixpkgs pkgs-args; hmModules = [ nix-index-database.hmModules.nix-index nur.hmModules.nur inputs.plasma-manager.homeManagerModules.plasma-manager ]; osModules = [ disko.nixosModules.disko home-manager.nixosModules.home-manager nix-index-database.nixosModules.nix-index nur.nixosModules.nur inputs.nix-ld.nixosModules.nix-ld inputs.tuxedo-nixos.nixosModules.default ]; args = { inherit self; inherit inputs; inherit system; }; in { formatter = { ${system} = pkgs.nixpkgs-fmt; }; diskoConfigurations = { nixos-pulse = import ./systems/nixos-pulse/disko.nix; }; homeConfigurations = { "tester@tristan-desk-arch" = home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ ./users/tester.nix { _module = { inherit args; }; targets.genericLinux.enable = true; programs = { bash.enable = true; zsh.enable = true; home-manager.enable = true; }; } ] ++ hmModules; }; "tristand" = home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ ./users/tristand.nix { _module = { inherit args; }; xsession.enable = true; } ] ++ hmModules; }; }; nixosConfigurations = { nixos-pulse = nixpkgs.lib.nixosSystem { modules = [ ./systems/nixos-pulse { _module = { inherit args; }; nix.registry.nixpkgs.flake = nixpkgs; nixpkgs.pkgs = pkgs; home-manager.sharedModules = hmModules; home-manager.extraSpecialArgs = args; } ] ++ osModules; }; nixos-desk = nixpkgs.lib.nixosSystem { modules = [ ./systems/nixos-desk { _module.args = args; nixpkgs.pkgs = pkgs; nix.registry.nixpkgs.flake = nixpkgs; home-manager.sharedModules = hmModules; home-manager.extraSpecialArgs = args; } ] ++ osModules; }; }; }; }