{ description = "flake for nixos-pulse"; nixConfig = { }; inputs = { nixpkgs-unstable = { url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; nixpkgs = { url = "github:NixOS/nixpkgs/nixos-unstable"; }; 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"; 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-alien.url = "github:thiagokokada/nix-alien"; nixtheplanet.url = "github:matthewcroughan/nixtheplanet"; envfs = { url = "github:Mic92/envfs"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-ld-rs.url = "github:nix-community/nix-ld-rs"; kde2nix.url = "github:nix-community/kde2nix"; }; outputs = { self , nixpkgs , nixpkgs-unstable , nixtheplanet , nixinate , home-manager , plasma-manager , emacs-overlay , nur , nix-index-database , disko , chaotic , envfs , kde2nix , ... } @ inputs: let system = "x86_64-linux"; unstable-pkgs = import nixpkgs-unstable pkgs-args; my-overlay = final: prev: { my = self.packages."${system}"; unstable-pkgs = unstable-pkgs.pkgs; }; overlays = [ my-overlay emacs-overlay.overlay inputs.nix-alien.overlays.default inputs.nix-ld-rs.overlays.default ]; pkgs-args = { inherit system overlays; config = { allowUnfree = true; packageOverrides = pkgs: { }; 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 plasma-manager.homeManagerModules.plasma-manager ]; osModules = [ disko.nixosModules.disko home-manager.nixosModules.home-manager nix-index-database.nixosModules.nix-index nur.nixosModules.nur chaotic.nixosModules.default nixtheplanet.nixosModules.macos-ventura envfs.nixosModules.envfs kde2nix.nixosModules.default ]; args = { inherit self inputs system; }; in { apps.x86_64-linux = (nixinate.nixinate.x86_64-linux self).nixinate; formatter = { ${system} = pkgs.nixpkgs-fmt; }; packages."${system}" = { spotube = pkgs.callPackage ./pkgs/spotube.nix { }; }; diskoConfigurations = { nixos-desk = import ./systems/nixos-desk/disko.nix; nixos-pulse = import ./systems/nixos-pulse/disko.nix; nixos-he4 = import ./systems/nixos-he4/disko.nix; }; nixosConfigurations = { nixos-he4 = nixpkgs.lib.nixosSystem { inherit system; specialArgs = args; modules = [ ./systems/nixos-he4 { nixpkgs.pkgs = pkgs; nix.registry.nixpkgs.flake = nixpkgs; home-manager.sharedModules = hmModules; home-manager.extraSpecialArgs = args; } ] ++ osModules; }; nixos-pulse = nixpkgs.lib.nixosSystem { inherit 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 { inherit 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 { inherit 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; }; }; }; }