Add Personal Module #64

Merged
Ghost merged 3 commits from refs/pull/64/head into master 2025-10-06 13:38:24 +10:00
Ghost commented 2025-10-06 13:38:08 +10:00 (Migrated from codeberg.org)
  • With hyprland config settings grouped within

Summary by CodeRabbit

  • New Features
    • Introduced a personal module that unifies system and Home Manager configuration, including Hyprland setup (with UWSM), Wayland environment variables, and per-user integration via a username setting.
  • Refactor
    • Consolidated Hyprland configuration into dedicated modules; hosts and program configs now rely on the personal module.
    • System configuration now accepts a username parameter and imports the personal module by default.
  • Chores
    • Removed legacy Hyprland modules and backup files.
  • Documentation
    • Added README detailing the personal module’s usage and scope.
- With hyprland config settings grouped within <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - Introduced a personal module that unifies system and Home Manager configuration, including Hyprland setup (with UWSM), Wayland environment variables, and per-user integration via a username setting. - Refactor - Consolidated Hyprland configuration into dedicated modules; hosts and program configs now rely on the personal module. - System configuration now accepts a username parameter and imports the personal module by default. - Chores - Removed legacy Hyprland modules and backup files. - Documentation - Added README detailing the personal module’s usage and scope. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Ghost commented 2025-10-06 13:38:35 +10:00 (Migrated from codeberg.org)

Caution

Review failed

The pull request is closed.

Walkthrough

Hyprland-specific NixOS and Home Manager modules were removed and replaced with a new consolidated personalModule that encapsulates Hyprland system and user configuration. Hosts and home imports dropped explicit Hyprland references. System wiring now passes a username into personalModule to drive Home Manager configuration, and Hyprland-related system settings were moved into dedicated modules.

Changes

Cohort / File(s) Summary of changes
Hosts import cleanup
hosts/aridhol/default.nix, hosts/striking_distance/default.nix
Removed self.nixosModules.hyprland from host imports; no other functional edits.
Home programs import tweak
home/programs/default.nix
Simplified imports to rely solely on paths.scanPaths ./.; removed self.homeManagerModules.hyprland.
Module index updates
modules/default.nix
Removed nixosModules.hyprland and homeManagerModules.hyprland; added nixosModules.personalModule.
Remove Hyprland modules (NixOS + HM)
modules/nixosModules/hyprland.nix, modules/homeManagerModules/hyprland/*
Deleted NixOS Hyprland module and Hyprland Home Manager module (including ags.nix.bak and default.nix).
Introduce personal module (docs + core)
modules/personalModule/README.md, modules/personalModule/default.nix
Added a new personalModule with options.personalModule.username; imports internal Hyprland config. Added documentation.
Personal Hyprland config (system + HM)
modules/personalModule/hyprlandConfig/default.nix, modules/personalModule/hyprlandConfig/home/default.nix
Added Hyprland configuration module: defines options (monitors, workspaces), system env/portal/cachix, and wires Home Manager user config (imports local HM Hyprland setup, env vars, files, services).
System wiring
system/default.nix
Function now takes self and username; imports self.nixosModules.personalModule; sets personalModule.username = username.
System programs refactor
system/programs/default.nix, system/programs/hyprland.nix
Moved Hyprland/Qt/env specifics into new system/programs/hyprland.nix. Trimmed system/programs/default.nix signature and removed Hyprland, Qt, and hyprqt6engine wiring there.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Host as Host config
  participant System as system/default.nix
  participant PM as nixosModules.personalModule
  participant HLP as personalModule.hyprlandConfig
  participant HM as Home Manager (user)
  
  Note over Host,System: Hosts no longer import hyprland directly
  Host->>System: Pass { self, username, paths, ... }
  System->>PM: imports personalModule<br/>sets personalModule.username = username
  PM->>HLP: import hyprlandConfig (internal)
  alt programs.hyprland.enable
    HLP->>System: Set system env, portals, cachix
    HLP->>HM: home-manager.users.<username> imports HM Hyprland config
    HM->>HM: Configure Wayland session, files, services
  else disabled
    HLP-->>System: No Hyprland-related config
  end
  Note over PM,HLP: Hyprland logic consolidated under personalModule

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

I hop through flakes and nixy land,
Tidying paths with careful hand;
Old Hypr burrows closed, anew I weave,
A personal warren I now conceive.
Username whispered, configs align—
Wayland winds hum, all is fine.
Thump-thump: ship it, right on time! 🐇

Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch personalModule

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e63caa91f6 and 667987d4b8.

📒 Files selected for processing (14)
  • home/programs/default.nix (1 hunks)
  • hosts/aridhol/default.nix (0 hunks)
  • hosts/striking_distance/default.nix (0 hunks)
  • modules/default.nix (1 hunks)
  • modules/homeManagerModules/hyprland/ags.nix.bak (0 hunks)
  • modules/homeManagerModules/hyprland/default.nix (0 hunks)
  • modules/nixosModules/hyprland.nix (0 hunks)
  • modules/personalModule/README.md (1 hunks)
  • modules/personalModule/default.nix (1 hunks)
  • modules/personalModule/hyprlandConfig/default.nix (1 hunks)
  • modules/personalModule/hyprlandConfig/home/default.nix (1 hunks)
  • system/default.nix (1 hunks)
  • system/programs/default.nix (0 hunks)
  • system/programs/hyprland.nix (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

<!-- This is an auto-generated comment: summarize by coderabbit.ai --> <!-- This is an auto-generated comment: failure by coderabbit.ai --> > [!CAUTION] > ## Review failed > > The pull request is closed. <!-- end of auto-generated comment: failure by coderabbit.ai --> <!-- walkthrough_start --> ## Walkthrough Hyprland-specific NixOS and Home Manager modules were removed and replaced with a new consolidated personalModule that encapsulates Hyprland system and user configuration. Hosts and home imports dropped explicit Hyprland references. System wiring now passes a username into personalModule to drive Home Manager configuration, and Hyprland-related system settings were moved into dedicated modules. ## Changes | Cohort / File(s) | Summary of changes | | --- | --- | | **Hosts import cleanup**<br>`hosts/aridhol/default.nix`, `hosts/striking_distance/default.nix` | Removed `self.nixosModules.hyprland` from host imports; no other functional edits. | | **Home programs import tweak**<br>`home/programs/default.nix` | Simplified imports to rely solely on `paths.scanPaths ./.`; removed `self.homeManagerModules.hyprland`. | | **Module index updates**<br>`modules/default.nix` | Removed `nixosModules.hyprland` and `homeManagerModules.hyprland`; added `nixosModules.personalModule`. | | **Remove Hyprland modules (NixOS + HM)**<br>`modules/nixosModules/hyprland.nix`, `modules/homeManagerModules/hyprland/*` | Deleted NixOS Hyprland module and Hyprland Home Manager module (including `ags.nix.bak` and `default.nix`). | | **Introduce personal module (docs + core)**<br>`modules/personalModule/README.md`, `modules/personalModule/default.nix` | Added a new personalModule with `options.personalModule.username`; imports internal Hyprland config. Added documentation. | | **Personal Hyprland config (system + HM)**<br>`modules/personalModule/hyprlandConfig/default.nix`, `modules/personalModule/hyprlandConfig/home/default.nix` | Added Hyprland configuration module: defines options (`monitors`, `workspaces`), system env/portal/cachix, and wires Home Manager user config (imports local HM Hyprland setup, env vars, files, services). | | **System wiring**<br>`system/default.nix` | Function now takes `self` and `username`; imports `self.nixosModules.personalModule`; sets `personalModule.username = username`. | | **System programs refactor**<br>`system/programs/default.nix`, `system/programs/hyprland.nix` | Moved Hyprland/Qt/env specifics into new `system/programs/hyprland.nix`. Trimmed `system/programs/default.nix` signature and removed Hyprland, Qt, and `hyprqt6engine` wiring there. | ## Sequence Diagram(s) ```mermaid sequenceDiagram autonumber participant Host as Host config participant System as system/default.nix participant PM as nixosModules.personalModule participant HLP as personalModule.hyprlandConfig participant HM as Home Manager (user) Note over Host,System: Hosts no longer import hyprland directly Host->>System: Pass { self, username, paths, ... } System->>PM: imports personalModule<br/>sets personalModule.username = username PM->>HLP: import hyprlandConfig (internal) alt programs.hyprland.enable HLP->>System: Set system env, portals, cachix HLP->>HM: home-manager.users.<username> imports HM Hyprland config HM->>HM: Configure Wayland session, files, services else disabled HLP-->>System: No Hyprland-related config end Note over PM,HLP: Hyprland logic consolidated under personalModule ``` ## Estimated code review effort 🎯 3 (Moderate) | ⏱️ ~25 minutes ## Poem > I hop through flakes and nixy land, > Tidying paths with careful hand; > Old Hypr burrows closed, anew I weave, > A personal warren I now conceive. > Username whispered, configs align— > Wayland winds hum, all is fine. > Thump-thump: ship it, right on time! 🐇✨ <!-- walkthrough_end --> <!-- finishing_touch_checkbox_start --> <details> <summary>✨ Finishing touches</summary> <details> <summary>🧪 Generate unit tests (beta)</summary> - [ ] <!-- {"checkboxId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Create PR with unit tests - [ ] <!-- {"checkboxId": "07f1e7d6-8a8e-4e23-9900-8731c2c87f58", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Post copyable unit tests in a comment - [ ] <!-- {"checkboxId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Commit unit tests in branch `personalModule` </details> </details> <!-- finishing_touch_checkbox_end --> --- <details> <summary>📜 Recent review details</summary> **Configuration used**: CodeRabbit UI **Review profile**: CHILL **Plan**: Pro <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between e63caa91f6a4222e789328de0dbb7b0953c22358 and 667987d4b81492927e5060e6ac22411c71c059db. </details> <details> <summary>📒 Files selected for processing (14)</summary> * `home/programs/default.nix` (1 hunks) * `hosts/aridhol/default.nix` (0 hunks) * `hosts/striking_distance/default.nix` (0 hunks) * `modules/default.nix` (1 hunks) * `modules/homeManagerModules/hyprland/ags.nix.bak` (0 hunks) * `modules/homeManagerModules/hyprland/default.nix` (0 hunks) * `modules/nixosModules/hyprland.nix` (0 hunks) * `modules/personalModule/README.md` (1 hunks) * `modules/personalModule/default.nix` (1 hunks) * `modules/personalModule/hyprlandConfig/default.nix` (1 hunks) * `modules/personalModule/hyprlandConfig/home/default.nix` (1 hunks) * `system/default.nix` (1 hunks) * `system/programs/default.nix` (0 hunks) * `system/programs/hyprland.nix` (1 hunks) </details> </details> <!-- tips_start --> --- Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. <details> <summary>❤️ Share</summary> - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code) </details> <sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub> <!-- tips_end --> <!-- internal state start --> <!-- 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 --> <!-- internal state end -->
Sign in to join this conversation.
No reviewers
No milestone
No project
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
kruziikrel13/NixOS!64
No description provided.