feat(home-manager): add core+extras profile and wire it into vps
Introduce myHomeProfile.extraPrograms (mirrors myPackages.extra) so each host's NixOS config declares which extra Home Manager modules it needs on top of a shared core (fish, starship, btop, git). miku-homelab's former home.nix becomes its extras list; vps gets home-manager for the first time using core alone. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e008288d52
commit
5a4b51112f
7 files changed
+49
-21
No files matched your search
@@ -54,7 +54,9 @@
|
||||
home-manager.sharedModules = [
|
||||
plasma-manager.homeModules.plasma-manager
|
||||
];
|
||||
home-manager.users.emmatherock = import ./home/emmatherock/home.nix;
|
||||
home-manager.users.emmatherock = { osConfig, ... }: {
|
||||
imports = [ ./home/emmatherock/core.nix ] ++ osConfig.myHomeProfile.extraPrograms;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
@@ -65,8 +67,17 @@
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/vps
|
||||
home-manager.nixosModules.home-manager
|
||||
vscode-server.nixosModules.default
|
||||
agenix.nixosModules.default
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
home-manager.users.emmatherock = { osConfig, ... }: {
|
||||
imports = [ ./home/emmatherock/core.nix ] ++ osConfig.myHomeProfile.extraPrograms;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
imports = [
|
||||
./git.nix
|
||||
./shell.nix
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
programs.btop.enable = true;
|
||||
|
||||
home.stateVersion = "25.11";
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
./agents.nix
|
||||
./audio.nix
|
||||
./desktop-apps.nix
|
||||
./deskflow.nix
|
||||
./gaming.nix
|
||||
./git.nix
|
||||
./media.nix
|
||||
./packages.nix
|
||||
./plasma.nix
|
||||
./shell.nix
|
||||
./vscode.nix
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
home.stateVersion = "25.11";
|
||||
}
|
||||
@@ -1,10 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.btop.package = pkgs.btop.override { cudaSupport = false; rocmSupport = true; };
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# --- Base y Terminal ---
|
||||
vim
|
||||
fastfetch
|
||||
(btop.override { cudaSupport = false; rocmSupport = true; })
|
||||
nvtopPackages.full
|
||||
];
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
../../modules/profiles/desktop.nix
|
||||
../../modules/profiles/server.nix
|
||||
../../modules/services/samba.nix
|
||||
../../modules/system/home-profile.nix
|
||||
../../modules/system/nix-ld.nix
|
||||
../../modules/system/packages.nix
|
||||
];
|
||||
@@ -19,6 +20,18 @@
|
||||
steam-run
|
||||
];
|
||||
|
||||
myHomeProfile.extraPrograms = [
|
||||
../../home/emmatherock/agents.nix
|
||||
../../home/emmatherock/audio.nix
|
||||
../../home/emmatherock/desktop-apps.nix
|
||||
../../home/emmatherock/deskflow.nix
|
||||
../../home/emmatherock/gaming.nix
|
||||
../../home/emmatherock/media.nix
|
||||
../../home/emmatherock/packages.nix
|
||||
../../home/emmatherock/plasma.nix
|
||||
../../home/emmatherock/vscode.nix
|
||||
];
|
||||
|
||||
myNetworking = {
|
||||
hostName = "miku-homelab";
|
||||
useNetworkManager = true;
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
{ config, ... }:
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../modules/profiles/server.nix
|
||||
../../modules/system/home-profile.nix
|
||||
../../modules/system/packages.nix
|
||||
];
|
||||
|
||||
@@ -39,6 +40,7 @@
|
||||
myUsers = {
|
||||
admins.emmatherock = {
|
||||
description = "EmmaTheRock";
|
||||
shell = pkgs.fish;
|
||||
extraGroups = [ "wheel" ];
|
||||
authorizedKeys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA8vfwM5g9RJXqHtqTgNqsYg9SxSm+UMvFqTjBoAsLJ6 emmatherock@MAIN-PC"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
options.myHomeProfile.extraPrograms = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.path;
|
||||
default = [ ];
|
||||
description = "Extra Home Manager modules to import for this user, on top of the core profile.";
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user