diff --git a/flake.nix b/flake.nix index 19bc64f..2fe1d89 100644 --- a/flake.nix +++ b/flake.nix @@ -6,9 +6,9 @@ nixpkgs-test.url = "github:NixOS/nixpkgs/refs/pull/295155/head"; # for testing nixpkgs-edge.url = "github:NixOS/nixpkgs/nixos-unstable"; # "edge" is four letters nixpkgs-2411.url = "github:NixOS/nixpkgs/nixos-24.11"; - nixpkgs-2405.url = "github:NixOS/nixpkgs/nixos-24.05"; - nixpkgs-2311.url = "github:NixOS/nixpkgs/nixos-23.11"; - nixpkgs-2305.url = "github:NixOS/nixpkgs/nixos-23.05"; + nixpkgs-2405.url = "github:NixOS/nixpkgs/nixos-24.05"; # for old docs + nixpkgs-2311.url = "github:NixOS/nixpkgs/nixos-23.11"; # for old docs + nixpkgs-2305.url = "github:NixOS/nixpkgs/nixos-23.05"; # for old docs nixpkgs-2211.url = "github:NixOS/nixpkgs/nixos-22.11"; # for old docs nixpkgs-2205.url = "github:NixOS/nixpkgs/nixos-22.05"; # for old docs nixpkgs-2111.url = "github:NixOS/nixpkgs/nixos-21.11"; # for old docs @@ -37,6 +37,14 @@ # https://github.com/NixOS/nixos-hardware nixos-hardware.url = "github:NixOS/nixos-hardware"; + # https://github.com/numtide/system-manager + system-manager-edge.url = "github:numtide/system-manager"; + system-manager-edge.inputs.nixpkgs.follows = "nixpkgs-edge"; + + # https://github.com/soupglasses/nix-system-graphics + nix-system-graphics-edge.url = "github:soupglasses/nix-system-graphics"; + nix-system-graphics-edge.inputs.nixpkgs.follows = "nixpkgs-edge"; + # https://github.com/tfc/nspawn-nixos nixos-nspawn.url = "github:tfc/nspawn-nixos"; nixos-nspawn.flake = false; # we don't use it /shrug @@ -191,6 +199,7 @@ nixpkgs.overlays = [ self.overlays.pbsdspkgs + inputs.system-manager-edge.overlays.packages (final: prev: { unstable = import inputs.unstable { inherit system; @@ -405,10 +414,24 @@ )) ]; + systemConfigs = let + mkSystem = name: inputs: system: inputs.system-manager-edge.lib.makeSystemConfig { + modules = [ + { nixpkgs.hostPlatform = system; } + { system-manager.allowAnyDistro = true; } + inputs.nix-system-graphics-edge.systemModules.default + ./hosts/system-manager/${name}/configuration.nix + ]; + }; + in { + furios = mkSystem "furios" inputs-edge "aarch64-linux"; + }; + devShells = forAllSystems ({ pkgs, system, ... }: let mkShell = packages: pkgs.mkShellNoCC { inherit packages; }; envrc-pkgs = [ self.packages.${system}.nixos-rebuild-nom + inputs-edge.system-manager-edge.packages.${system}.system-manager pkgs.home-manager pkgs.nix-output-monitor pkgs.cachix @@ -428,6 +451,7 @@ ]); remoteenv = mkShell [ self.packages.${system}.nixos-rebuild-nom + inputs-edge.system-manager-edge.packages.${system}.system-manager pkgs.age pkgs.ssh-to-age pkgs.just