Deduplicate home config and optimize mkPkgsUnstable calls

This commit is contained in:
2026-04-07 03:08:12 +02:00
parent 090989e581
commit 795df94928

View File

@@ -30,7 +30,6 @@
outputs = { self, nixpkgs, nixpkgs-unstable, flake-utils, home-manager, sops-nix, disko }:
let
# Helper to build per-host pkgs for a given system string
mkPkgs = system: import nixpkgs {
inherit system;
config.allowUnfree = true;
@@ -41,23 +40,21 @@
config.allowUnfree = true;
};
# Utility to overlay unstable packages (takes system as arg)
mkOverlayUnstable = system:
final: prev: { unstable = mkPkgsUnstable system; };
# Helper that builds a full NixOS configuration for a given host + arch.
# Set enableHomeManager = false for servers or minimal installs that
# don't need user-level dotfile/package management.
mkNixosSystem = { system, hostModule, enableHomeManager ? true }:
let
pkgs-unstable = mkPkgsUnstable system;
hmModules = if enableHomeManager then [
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit sops-nix;
pkgs-unstable = mkPkgsUnstable system;
inherit sops-nix pkgs-unstable;
};
home-manager.users.youruser = import ./home/default.nix;
}
@@ -66,8 +63,7 @@
inherit system;
specialArgs = {
inherit sops-nix disko;
pkgs-unstable = mkPkgsUnstable system;
inherit sops-nix disko pkgs-unstable;
};
modules = [
@@ -80,7 +76,18 @@
] ++ hmModules;
};
# Default system for devShell and standalone home-manager
mkHomeConfig = system: home-manager.lib.homeManagerConfiguration {
pkgs = mkPkgs system;
extraSpecialArgs = {
pkgs-unstable = mkPkgsUnstable system;
inherit sops-nix;
};
modules = [
(mkOverlayUnstable system)
./home/default.nix
];
};
defaultSystem = "x86_64-linux";
pkgs = mkPkgs defaultSystem;
@@ -117,31 +124,8 @@
# ============================================
homeConfigurations = {
# x86_64 Linux
"eliaskohout@linux" = home-manager.lib.homeManagerConfiguration {
pkgs = mkPkgs "x86_64-linux";
extraSpecialArgs = {
pkgs-unstable = mkPkgsUnstable "x86_64-linux";
sops-nix = sops-nix;
};
modules = [
(mkOverlayUnstable "x86_64-linux")
./home/default.nix
];
};
# aarch64 Linux
"eliaskohout@linux-arm" = home-manager.lib.homeManagerConfiguration {
pkgs = mkPkgs "aarch64-linux";
extraSpecialArgs = {
pkgs-unstable = mkPkgsUnstable "aarch64-linux";
sops-nix = sops-nix;
};
modules = [
(mkOverlayUnstable "aarch64-linux")
./home/default.nix
];
};
"eliaskohout@linux" = mkHomeConfig "x86_64-linux";
"eliaskohout@linux-arm" = mkHomeConfig "aarch64-linux";
};
# ============================================