Deduplicate home config and optimize mkPkgsUnstable calls
This commit is contained in:
50
flake.nix
50
flake.nix
@@ -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";
|
||||
};
|
||||
|
||||
# ============================================
|
||||
|
||||
Reference in New Issue
Block a user