{ description = "nixconfig"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-26.05"; flake-parts.url = "github:hercules-ci/flake-parts"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; hjem = { url = "github:feel-co/hjem"; inputs.nixpkgs.follows = "nixpkgs"; }; impermanence = { url = "github:nix-community/impermanence"; inputs.nixpkgs.follows = "nixpkgs"; }; sls-steam = { url = "github:AceSLS/SLSsteam"; inputs.nixpkgs.follows = "nixpkgs"; }; openmw-nix = { url = "git+https://codeberg.org/adikro/openmw-nix.git"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; disko = { url = "github:nix-community/disko/latest"; inputs.nixpkgs.follows = "nixpkgs"; }; omnisearch = { url = "git+https://git.bwaaa.monster/omnisearch?shallow=0"; # inputs.nixpkgs.follows = "nixpkgs"; }; otter-launcher = { url = "github:kuokuo123/otter-launcher"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ (inputs.flake-parts.lib.importTree ./modules) ]; perSystem = { pkgs, ... }: { formatter = pkgs.nixfmt-rfc-style; }; flake = { nixosModules.default = { imports = [ inputs.hjem.nixosModules.default ]; }; nixosConfigurations = let mkHost = { hostname, user ? "adam", pkgsInput ? inputs.nixpkgs, path ? ./hosts/${hostname}/configuration.nix, }: pkgsInput.lib.nixosSystem { specialArgs = { inherit inputs; username = user; pkgs-unstable = import inputs.nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; }; pkgs-stable = import inputs.nixpkgs-stable { system = "x86_64-linux"; config.allowUnfree = true; }; }; modules = [ inputs.hjem.nixosModules.default inputs.disko.nixosModules.disko inputs.impermanence.nixosModules.impermanence inputs.sops-nix.nixosModules.sops path { networking.hostName = hostname; } ]; }; in { szpont = mkHost { hostname = "szpont"; }; thinkpad = mkHost { hostname = "thinkpad"; }; pendrive = mkHost { hostname = "pendrive"; user = "user"; pkgsInput = inputs.nixpkgs-stable; }; }; }; }; }