{ description = "flake for nixos-pulse"; nixConfig = { }; inputs = { nixpkgs-unstable = { url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; nixos-unstable = { url = "github:NixOS/nixpkgs/nixos-unstable"; }; nixpkgs = { url = "github:NixOS/nixpkgs/nixos-23.11"; }; nixinate.url = "git+https://git.vlt81.de/tristan/nixinate.git"; chaotic = { url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; }; home-manager = { url = "github:nix-community/home-manager/release-23.11"; 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"; }; nixtheplanet.url = "github:matthewcroughan/nixtheplanet"; }; outputs = { self , nixpkgs , nixpkgs-unstable , nixos-unstable , nixtheplanet , nixinate , home-manager , emacs-overlay , nur , nix-index-database , disko , chaotic , ... } @ 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" "electron-25.9.0" ]; }; }; 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 chaotic.nixosModules.default nixtheplanet.nixosModules.macos-ventura ]; args = { inherit self; inherit inputs; inherit system; }; in { apps.x86_64-linux = (nixinate.nixinate.x86_64-linux self).nixinate; formatter = { ${system} = pkgs.nixpkgs-fmt; }; diskoConfigurations = { nixos-pulse = import ./systems/nixos-pulse/disko.nix; nixos-desk = import ./systems/nixos-desk/disko.nix; }; nixosConfigurations = { nixos-pulse = nixpkgs.lib.nixosSystem { system = system; specialArgs = args; modules = [ ./systems/nixos-pulse { nixpkgs.pkgs = pkgs; nix.registry.nixpkgs.flake = nixpkgs; home-manager.sharedModules = hmModules; home-manager.extraSpecialArgs = args; } ] ++ osModules; }; nixos-desk = nixpkgs.lib.nixosSystem { system = system; specialArgs = args; modules = [ ./systems/nixos-desk { nixpkgs.pkgs = pkgs; nix.registry.nixpkgs.flake = nixpkgs; home-manager.sharedModules = hmModules; home-manager.extraSpecialArgs = args; } { _module.args.nixinate = { host = "100.64.0.3"; sshUser = "tristand"; buildOn = "remote"; # valid args are "local" or "remote" substituteOnTarget = false; # if buildOn is "local" then it will substitute on the target, "-s" hermetic = false; }; } ] ++ osModules; }; nixos-karl-kvm-guest = nixpkgs.lib.nixosSystem { system = system; specialArgs = args; modules = [ ./systems/nixos-karl-kvm-guest { nixpkgs.pkgs = pkgs; nix.registry.nixpkgs.flake = nixpkgs; home-manager.sharedModules = hmModules; home-manager.extraSpecialArgs = args; } { _module.args.nixinate = { host = "nixos-karl-kvm-guest.oekonzept.de"; sshUser = "reopen5194"; buildOn = "remote"; # valid args are "local" or "remote" substituteOnTarget = false; # if buildOn is "local" then it will substitute on the target, "-s" hermetic = false; }; } ] ++ osModules; }; }; }; }