Make home-manager optional per-host via enableHomeManager flag
This commit is contained in:
62
flake.nix
62
flake.nix
@@ -45,8 +45,24 @@
|
|||||||
mkOverlayUnstable = system:
|
mkOverlayUnstable = system:
|
||||||
final: prev: { unstable = mkPkgsUnstable system; };
|
final: prev: { unstable = mkPkgsUnstable system; };
|
||||||
|
|
||||||
# Helper that builds a full NixOS configuration for a given host + arch
|
# Helper that builds a full NixOS configuration for a given host + arch.
|
||||||
mkNixosSystem = { system, hostModule }: nixpkgs.lib.nixosSystem {
|
# Set enableHomeManager = false for servers or minimal installs that
|
||||||
|
# don't need user-level dotfile/package management.
|
||||||
|
mkNixosSystem = { system, hostModule, enableHomeManager ? true }:
|
||||||
|
let
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
home-manager.users.youruser = import ./home/default.nix;
|
||||||
|
}
|
||||||
|
] else [];
|
||||||
|
in nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
@@ -61,18 +77,7 @@
|
|||||||
|
|
||||||
hostModule
|
hostModule
|
||||||
./nixos/default.nix
|
./nixos/default.nix
|
||||||
|
] ++ hmModules;
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.extraSpecialArgs = {
|
|
||||||
inherit sops-nix;
|
|
||||||
pkgs-unstable = mkPkgsUnstable system;
|
|
||||||
};
|
|
||||||
home-manager.users.youruser = import ./home/default.nix;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Default system for devShell and standalone home-manager
|
# Default system for devShell and standalone home-manager
|
||||||
@@ -93,10 +98,11 @@
|
|||||||
hostModule = ./hosts/laptop/default.nix;
|
hostModule = ./hosts/laptop/default.nix;
|
||||||
};
|
};
|
||||||
|
|
||||||
# x86_64 server
|
# x86_64 server (no home-manager — minimal system-only config)
|
||||||
server = mkNixosSystem {
|
server = mkNixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
hostModule = ./hosts/server/default.nix;
|
hostModule = ./hosts/server/default.nix;
|
||||||
|
enableHomeManager = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Example: ARM64 host (e.g. Raspberry Pi 4, Apple Silicon VM)
|
# Example: ARM64 host (e.g. Raspberry Pi 4, Apple Silicon VM)
|
||||||
@@ -112,7 +118,7 @@
|
|||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
# x86_64 Linux
|
# x86_64 Linux
|
||||||
"youruser@linux" = home-manager.lib.homeManagerConfiguration {
|
"eliaskohout@linux" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = mkPkgs "x86_64-linux";
|
pkgs = mkPkgs "x86_64-linux";
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
pkgs-unstable = mkPkgsUnstable "x86_64-linux";
|
pkgs-unstable = mkPkgsUnstable "x86_64-linux";
|
||||||
@@ -124,18 +130,18 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# aarch64 Linux (e.g. Raspberry Pi, ARM servers)
|
# aarch64 Linux
|
||||||
# "youruser@linux-arm" = home-manager.lib.homeManagerConfiguration {
|
"eliaskohout@linux-arm" = home-manager.lib.homeManagerConfiguration {
|
||||||
# pkgs = mkPkgs "aarch64-linux";
|
pkgs = mkPkgs "aarch64-linux";
|
||||||
# extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
# pkgs-unstable = mkPkgsUnstable "aarch64-linux";
|
pkgs-unstable = mkPkgsUnstable "aarch64-linux";
|
||||||
# sops-nix = sops-nix;
|
sops-nix = sops-nix;
|
||||||
# };
|
};
|
||||||
# modules = [
|
modules = [
|
||||||
# (mkOverlayUnstable "aarch64-linux")
|
(mkOverlayUnstable "aarch64-linux")
|
||||||
# ./home/default.nix
|
./home/default.nix
|
||||||
# ];
|
];
|
||||||
# };
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# ============================================
|
# ============================================
|
||||||
|
|||||||
Reference in New Issue
Block a user