1.5 KiB
1.5 KiB
home/ - Home Manager Configurations
User-level configurations managed by home-manager.
Structure
home/
├── common/ # Shared home-manager config
│ └── default.nix # Overlays, nix-colors, allowUnfree
├── features/ # Modular, toggle-able features
│ ├── cli/ # Shell tools (see features/AGENTS.md)
│ ├── coding/ # Dev tools
│ └── desktop/ # GUI, Hyprland, theming
└── m3tam3re/ # Per-host user configs
├── home.nix # Shared user config (git, ssh, packages)
└── m3-<host>.nix # Host-specific (imports features, monitor layouts)
Per-Host Config Pattern
Each m3-<host>.nix:
- Imports
../common,./home.nix, and needed../features/* - Enables specific features via
features.<category>.<name>.enable - Overrides host-specific settings (monitors, default apps)
Example:
{
imports = [../common ./home.nix ../features/cli ../features/desktop];
features.cli.nushell.enable = true;
features.desktop.hyprland.enable = true;
wayland.windowManager.hyprland.settings.monitor = ["DP-1,2560x1440,0x0,1"];
}
Theming
Uses nix-colors (Dracula scheme). Access colors:
"#${config.colorScheme.palette.base00}" # Background
"#${config.colorScheme.palette.base05}" # Foreground
Adding New User Config
- Create
m3tam3re/m3-<newhost>.nix - Import needed features
- Add to
flake.nixhomeConfigurations (standalone) or host's home-manager.users