refactor: split Home Manager configuration by user #118

Merged
nimmo merged 1 commit from feat/home-manager-users into main 2026-07-28 10:30:50 +01:00
Owner

Closes #111

Split the monolithic Home Manager configuration into a per-user layout under home/users/, with focused Nimmo modules for Git, shell, browser, desktop, downloads, and Plasma. Reserve home/common/ for genuinely shared modules, retain a compatibility entry point, and update documentation and Plasma capture wiring.

Validation:

  • nix fmt -- --ci
  • nix flake check
  • nix build .#nixosConfigurations.electra.config.system.build.toplevel --no-link
  • nix build .#nixosConfigurations.vega.config.system.build.toplevel --no-link
Closes #111 Split the monolithic Home Manager configuration into a per-user layout under home/users/, with focused Nimmo modules for Git, shell, browser, desktop, downloads, and Plasma. Reserve home/common/ for genuinely shared modules, retain a compatibility entry point, and update documentation and Plasma capture wiring. Validation: - nix fmt -- --ci - nix flake check - nix build .#nixosConfigurations.electra.config.system.build.toplevel --no-link - nix build .#nixosConfigurations.vega.config.system.build.toplevel --no-link
refactor: split home manager config by user
All checks were successful
Build and Push Attic Cache / test (pull_request) Successful in 42s
Build and Push Attic Cache / build (pull_request) Has been skipped
AI pull-request review / review (pull_request) Successful in 4m52s
ad0171ba73
Author
Owner

Automated code review

Reviewed commit: ad0171ba73bf3c080a4ce70fd3ef0b7be57df595

Verdict: Ready to merge

No blocking or important findings were retained, and deterministic checks passed. Suggestions remain advisory.

Overall assessment

Refactors the monolithic Home Manager configuration into a focused per-user layout under home/users/. Import paths in flake.nix, justfiles/hosts.just, and documentation are consistently updated. Relative asset paths are correctly adjusted for the new directory depth. All original functionality, including server/desktop conditionals, systemd timers, and shell helpers, is preserved.

Blocking findings

None.

Important findings

None.

Suggestions

  • Hardcoded repository path in shell helper functions (home/users/nimmo/shell.nix:3; high confidence)
    flakeRepo ? "/home/nimmo/nixos-config",
    Impact: The nj() and nixos-rebuild-auto() functions will fail if the configuration repository is cloned to a directory other than the hardcoded default.
    Suggested fix: Replace the hardcoded default with a dynamic resolution like $(git rev-parse --show-toplevel) or pass the path as an explicit flake argument during evaluation.

Tests and validation

  • No configured deterministic checks.

Questions

  • Are there plans to support multiple Home Manager users in the near term, which would determine whether home/nimmo.nix should be deprecated or if a generic user template is needed?
  • Should the download-organizer systemd timer and service be moved to a shared module under home/common/ given its potential reuse across other desktop environments or users?

Review limitations

  • Review is based solely on the provided diff and documentation. Local Nix evaluation (nix flake check) and runtime validation of split modules were not performed.
  • Shell function behavior depends on the host environment and git repository state; actual execution paths were not tested.

Diff coverage

  • README.md: reviewed — included in a context-limited batch
  • flake.nix: reviewed — included in a context-limited batch
  • home/common/README.md: reviewed — included in a context-limited batch
  • home/nimmo.nix: reviewed — included in a context-limited batch
  • home/users/nimmo/browser.nix: reviewed — included in a context-limited batch
  • home/users/nimmo/default.nix: reviewed — included in a context-limited batch
  • home/users/nimmo/desktop.nix: reviewed — included in a context-limited batch
  • home/users/nimmo/download-organizer.nix: reviewed — included in a context-limited batch
  • home/users/nimmo/git.nix: reviewed — included in a context-limited batch
  • home/users/nimmo/plasma.nix: reviewed — included in a context-limited batch
  • home/users/nimmo/shell.nix: reviewed — included in a context-limited batch
  • justfiles/hosts.just: reviewed — included in a context-limited batch
Review metadata
  • Reviewer: forgejo-ai-review v1
  • Model: qwen3.6:35b-a3b-q8_0
  • Guidance loaded: .forgejo/ai-review.md, .forgejo/ai-review.yml, AGENTS.md, README.md
  • Commits considered: 1
  • Previous automated review: none found
  • Findings: 1
<!-- forgejo-ai-review:v1 --> ## Automated code review Reviewed commit: `ad0171ba73bf3c080a4ce70fd3ef0b7be57df595` ## Verdict: Ready to merge No blocking or important findings were retained, and deterministic checks passed. Suggestions remain advisory. ### Overall assessment Refactors the monolithic Home Manager configuration into a focused per-user layout under home/users/. Import paths in flake.nix, justfiles/hosts.just, and documentation are consistently updated. Relative asset paths are correctly adjusted for the new directory depth. All original functionality, including server/desktop conditionals, systemd timers, and shell helpers, is preserved. ### Blocking findings None. ### Important findings None. ### Suggestions - **Hardcoded repository path in shell helper functions** (home/users/nimmo/shell.nix:3; high confidence) flakeRepo ? "/home/nimmo/nixos-config", Impact: The nj() and nixos-rebuild-auto() functions will fail if the configuration repository is cloned to a directory other than the hardcoded default. Suggested fix: Replace the hardcoded default with a dynamic resolution like $(git rev-parse --show-toplevel) or pass the path as an explicit flake argument during evaluation. ### Tests and validation - No configured deterministic checks. ### Questions - Are there plans to support multiple Home Manager users in the near term, which would determine whether home/nimmo.nix should be deprecated or if a generic user template is needed? - Should the download-organizer systemd timer and service be moved to a shared module under home/common/ given its potential reuse across other desktop environments or users? ### Review limitations - Review is based solely on the provided diff and documentation. Local Nix evaluation (nix flake check) and runtime validation of split modules were not performed. - Shell function behavior depends on the host environment and git repository state; actual execution paths were not tested. ### Diff coverage - `README.md`: **reviewed** — included in a context-limited batch - `flake.nix`: **reviewed** — included in a context-limited batch - `home/common/README.md`: **reviewed** — included in a context-limited batch - `home/nimmo.nix`: **reviewed** — included in a context-limited batch - `home/users/nimmo/browser.nix`: **reviewed** — included in a context-limited batch - `home/users/nimmo/default.nix`: **reviewed** — included in a context-limited batch - `home/users/nimmo/desktop.nix`: **reviewed** — included in a context-limited batch - `home/users/nimmo/download-organizer.nix`: **reviewed** — included in a context-limited batch - `home/users/nimmo/git.nix`: **reviewed** — included in a context-limited batch - `home/users/nimmo/plasma.nix`: **reviewed** — included in a context-limited batch - `home/users/nimmo/shell.nix`: **reviewed** — included in a context-limited batch - `justfiles/hosts.just`: **reviewed** — included in a context-limited batch <details><summary>Review metadata</summary> - Reviewer: forgejo-ai-review v1 - Model: qwen3.6:35b-a3b-q8_0 - Guidance loaded: .forgejo/ai-review.md, .forgejo/ai-review.yml, AGENTS.md, README.md - Commits considered: 1 - Previous automated review: none found - Findings: 1 </details>
nimmo merged commit 7163c8ad9d into main 2026-07-28 10:30:50 +01:00
nimmo deleted branch feat/home-manager-users 2026-07-28 10:30:51 +01:00
Sign in to join this conversation.
No reviewers
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!118
No description provided.