# 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-.nix # Host-specific (imports features, monitor layouts) ``` ## Per-Host Config Pattern Each `m3-.nix`: 1. Imports `../common`, `./home.nix`, and needed `../features/*` 2. Enables specific features via `features...enable` 3. Overrides host-specific settings (monitors, default apps) Example: ```nix { 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: ```nix "#${config.colorScheme.palette.base00}" # Background "#${config.colorScheme.palette.base05}" # Foreground ``` ## Adding New User Config 1. Create `m3tam3re/m3-.nix` 2. Import needed features 3. Add to `flake.nix` homeConfigurations (standalone) or host's home-manager.users