Create base-linux and base-darwin modules to cleanly separate platform- specific role imports from shared roles. This prevents importing modules that require platform-specific home-manager modules (like plasma-manager on NixOS) in environments where they don't exist (like nix-darwin). - base-linux includes: plasma-manager, i3+sway - base-darwin includes: aerospace - roles/default.nix now only contains truly cross-platform roles This architecture makes it immediately clear which roles are shared versus platform-specific and makes it easy to add new platform-specific roles in the future.
37 lines
937 B
Nix
37 lines
937 B
Nix
{ pkgs, globalInputs, system, ... }:
|
|
|
|
{
|
|
# Home Manager configuration for media center setups
|
|
# Optimized for living room media consumption and gaming
|
|
|
|
home.username = "johno";
|
|
home.homeDirectory = "/home/johno";
|
|
home.stateVersion = "24.05";
|
|
|
|
# Enable media center focused roles
|
|
home.roles = {
|
|
base.enable = true;
|
|
desktop.enable = true;
|
|
media.enable = true;
|
|
communication.enable = true;
|
|
kdeconnect.enable = true;
|
|
development.enable = true;
|
|
tmux.enable = true;
|
|
plasma-manager.enable = true;
|
|
emacs.enable = true;
|
|
i3_sway.enable = true;
|
|
# office.enable = false; # Not needed for media center
|
|
# sync.enable = false; # Shared machine, no personal file sync
|
|
};
|
|
|
|
targets.genericLinux.enable = true;
|
|
home.sessionVariables = {};
|
|
home.sessionPath = [];
|
|
|
|
imports = [
|
|
./roles
|
|
./roles/base-linux
|
|
];
|
|
|
|
# Media center specific overrides can go here if needed
|
|
} |