Split Home Manager configuration into per-user modules #111

Closed
opened 2026-07-28 08:20:18 +01:00 by nimmo · 0 comments
Owner

Goal

Replace the monolithic home/nimmo.nix entry point with a scalable per-user Home Manager layout.

Proposed shape

home/
  common/
    cli.nix
    shell.nix
    desktop-tools.nix
  users/
    nimmo/
      default.nix
      git.nix
      browser.nix
      desktop.nix
      download-organizer.nix
      plasma.nix
    claire/
      default.nix

Scope

  • Move Nimmo-specific configuration from home/nimmo.nix into focused modules under home/users/nimmo/.
  • Create a clear shared-module location for configuration genuinely reusable by multiple users.
  • Update the flake/Home Manager wiring to import home/users/<primaryUser>/.
  • Preserve current host-specific behavior, including server versus desktop conditionals and Plasma configuration.
  • Keep the layout ready for additional users without requiring another monolithic file.

Design constraints

  • Do not move host-specific system configuration into user modules.
  • Do not label configuration as shared merely because it is currently used by one user on multiple hosts.
  • Avoid over-fragmenting tiny, tightly coupled settings; modules should represent coherent concerns.

Acceptance criteria

  • Existing Nimmo configurations evaluate with unchanged behavior.
  • home/nimmo.nix is removed or reduced to a deliberate compatibility entry point.
  • Shared versus user-specific ownership is documented by the directory structure.
  • Adding a second user requires adding a new user directory and Home Manager entry, not editing Nimmo's modules.
  • nix flake check and targeted host builds pass.
  • README structure documentation is updated.
## Goal Replace the monolithic `home/nimmo.nix` entry point with a scalable per-user Home Manager layout. ## Proposed shape ``` home/ common/ cli.nix shell.nix desktop-tools.nix users/ nimmo/ default.nix git.nix browser.nix desktop.nix download-organizer.nix plasma.nix claire/ default.nix ``` ## Scope - Move Nimmo-specific configuration from `home/nimmo.nix` into focused modules under `home/users/nimmo/`. - Create a clear shared-module location for configuration genuinely reusable by multiple users. - Update the flake/Home Manager wiring to import `home/users/<primaryUser>/`. - Preserve current host-specific behavior, including server versus desktop conditionals and Plasma configuration. - Keep the layout ready for additional users without requiring another monolithic file. ## Design constraints - Do not move host-specific system configuration into user modules. - Do not label configuration as shared merely because it is currently used by one user on multiple hosts. - Avoid over-fragmenting tiny, tightly coupled settings; modules should represent coherent concerns. ## Acceptance criteria - Existing Nimmo configurations evaluate with unchanged behavior. - `home/nimmo.nix` is removed or reduced to a deliberate compatibility entry point. - Shared versus user-specific ownership is documented by the directory structure. - Adding a second user requires adding a new user directory and Home Manager entry, not editing Nimmo's modules. - `nix flake check` and targeted host builds pass. - README structure documentation is updated.
nimmo closed this issue 2026-07-28 10:30:51 +01:00
Sign in to join this conversation.
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nimmo/nixos-config#111
No description provided.