Skip to content

Dev#8

Merged
ClementBobin merged 8 commits intomainfrom
DEV
Mar 25, 2026
Merged

Dev#8
ClementBobin merged 8 commits intomainfrom
DEV

Conversation

@ClementBobin
Copy link
Copy Markdown
Owner

@ClementBobin ClementBobin commented Mar 25, 2026

Description

Type of change

  • [x ] Bug fix (non-breaking change which fixes an issue)
  • [x ] New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Checklist

  • [x ] My commits follow conventional commit format
  • I have updated the documentation accordingly
  • [ x] My changes generate no new warnings

…repositories

- Introduced Gitleaks configuration in home-manager with options to enable and set up hooks.
- Added pre-commit hook script to run Gitleaks on staged changes.
- Copied Gitleaks configuration file and pre-commit hook to the appropriate directories.

fix(obsidian): remove mutable option for file configuration

fix(multimedia): remove unused hyprdisplays package from clientsToPackage

feat(multimedia): enhance player module with Spicetify support

- Added Spicetify configuration options including extensions and themes.
- Integrated Spicetify into the multimedia player clients.

feat(multimedia): add remote-viewer to remote desktop clients

feat(utilities): add Tock time tracking tool configuration

- Introduced Tock and Tock UI packages with configuration options for backend and file paths.
- Added shell aliases for Tock commands.

chore: clean up unused utilities (FileZilla, KDE Connect)

fix(app-launcher): refactor to support multiple application launcher clients

fix(hydenix): adjust startup commands and fix Git configuration

feat(hosts): add birch-seed host configuration

fix(cedar): update tools and remove unnecessary services

fix(oak): adjust game mode and print server configuration

fix(virtualisation): include winboat in additional packages

fix(wrapper): remove deprecated modules and update dependencies

chore: update hayase version and source URL

fix: general cleanup and refactoring across various modules
…spatcher

- Introduced a unified VPN dispatcher script to manage WireGuard and OpenFortiVPN connections.
- Added configuration options for WireGuard and OpenFortiVPN in the NixOS module.
- Created a new script for managing WireGuard VPN connections with TUI interface for actions like up, down, status, config, and edit.
- Updated the NixOS configuration to include new VPN options and scripts.
- Removed deprecated Deskflow and Matrix Synapse configurations.
- Adjusted garbage collection settings for Nix and enabled automatic store optimization.
- Changed default password manager from KeepassXC to Bitwarden.refactor: renommer et implémenter les repositories pour les styles et titres avec journalisation
Copilot AI review requested due to automatic review settings March 25, 2026 08:10
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 25, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: c66b413f-3b6d-4cd6-902f-cb4edb57cc5d

📥 Commits

Reviewing files that changed from the base of the PR and between 168888e and 9902f95.

⛔ Files ignored due to path filters (1)
  • flake.lock is excluded by !**/*.lock
📒 Files selected for processing (79)
  • README.md
  • flake.nix
  • hosts/birch-seed/default.nix
  • hosts/birch-seed/hardware-configuration.nix
  • hosts/cedar/default.nix
  • hosts/oak/default.nix
  • hosts/seed-birch/default.nix
  • modules/hm/common/browser/default.nix
  • modules/hm/common/communication/discord.nix
  • modules/hm/common/communication/mail.nix
  • modules/hm/common/communication/matrix.nix
  • modules/hm/common/default.nix
  • modules/hm/common/dev/environments/editor.nix
  • modules/hm/common/dev/languages/dotnet.nix
  • modules/hm/common/dev/languages/kotlin.nix
  • modules/hm/common/dev/languages/php.nix
  • modules/hm/common/dev/tools/cli.nix
  • modules/hm/common/dev/tools/git-action.nix
  • modules/hm/common/dev/tools/gitleaks.nix
  • modules/hm/common/dev/tools/gitleaks/.gitleaks.toml
  • modules/hm/common/dev/tools/gitleaks/default.nix
  • modules/hm/common/dev/tools/gitleaks/pre-commit-hook.sh
  • modules/hm/common/dev/tools/nix.nix
  • modules/hm/common/documentation/obsidian.nix
  • modules/hm/common/engine/default.nix
  • modules/hm/common/multimedia/editing/audio.nix
  • modules/hm/common/multimedia/management-utility.nix
  • modules/hm/common/multimedia/player.nix
  • modules/hm/common/multimedia/rambox.nix
  • modules/hm/common/multimedia/remote-desktop.nix
  • modules/hm/common/security/burp.nix
  • modules/hm/common/utilities/app-launcher.nix
  • modules/hm/common/utilities/filezilla.nix
  • modules/hm/common/utilities/kde-connect.nix
  • modules/hm/common/utilities/safety/config.json
  • modules/hm/common/utilities/safety/ianny.nix
  • modules/hm/common/utilities/stacer.nix
  • modules/hm/common/utilities/tracker.nix
  • modules/hm/desktops/configHydenix.nix
  • modules/hm/desktops/hydenix.nix
  • modules/hm/desktops/mirage-waybar.jsonc
  • modules/hm/desktops/powermode-toggle.sh
  • modules/hm/hosts/birch-seed/default.nix
  • modules/hm/hosts/cedar/default.nix
  • modules/hm/hosts/oak/default.nix
  • modules/system/common/default.nix
  • modules/system/common/dev/languages/android.nix
  • modules/system/common/dev/languages/php.nix
  • modules/system/common/dev/tools/flatpak.nix
  • modules/system/common/games.nix
  • modules/system/common/hardware/boot.nix
  • modules/system/common/hardware/powersave/default.nix
  • modules/system/common/hardware/powersave/power-toggle.sh
  • modules/system/common/hardware/powersave/power-tuning.sh
  • modules/system/common/networks/openfortivpn.sh
  • modules/system/common/networks/vpn.nix
  • modules/system/common/networks/wireguard-vpn.sh
  • modules/system/common/nix/nix-garbage.nix
  • modules/system/common/security/password-manager.nix
  • modules/system/common/server/communication/deskflow.nix
  • modules/system/common/server/communication/matrix.nix
  • modules/system/common/server/communication/ntfy-sh.nix
  • modules/system/common/server/print.nix
  • modules/system/common/virtualisation/default.nix
  • modules/system/common/virtualisation/ollama.nix
  • modules/system/hosts/birch-seed/default.nix
  • modules/system/hosts/cedar/default.nix
  • modules/system/hosts/oak/default.nix
  • modules/wrapper/default.nix
  • modules/wrapper/fluxer.nix
  • modules/wrapper/hayase.nix
  • modules/wrapper/hyprDisplays.nix
  • modules/wrapper/scalar.nix
  • modules/wrapper/tock-ui.nix
  • modules/wrapper/tock.nix
  • modules/wrapper/velo.nix
  • modules/wrapper/winboat.nix
  • modules/wrapper/wrkflw.nix
  • result

📝 Walkthrough

Summary by CodeRabbit

Release Notes

  • New Features

    • Added new host configuration with enhanced system support.
    • Introduced Zen as the primary browser option; replaced Chromium, Vivaldi, and Edge.
    • Added PHP development environment with extensions and debugging support.
    • Integrated Gitleaks secret scanning into Git pre-commit hooks.
    • Enhanced VPN support with WireGuard and OpenFortiVPN backends.
    • Added power management toggle functionality.
    • Introduced time-tracking tool integration.
  • Changes

    • Updated default password manager to Bitwarden.
    • Changed default .NET SDK version to 10.
    • Consolidated media player and communication client selections.
    • Updated printer driver defaults.
  • Removals

    • Removed several optional applications and modules (Matrix, Rambox, KDE Connect, Ianny, and others).
    • Simplified app launcher configuration.

Walkthrough

This PR performs a comprehensive system reorganization, introducing new flake inputs (sops-nix, spicetify-nix, zen-browser), renaming/creating the birch-seed host configuration, modernizing multimedia support (Zen browser, Spicetify), removing deprecated modules (Matrix, Kando, Ianny, Flatpak), adding new development tools (PHP, Gitleaks, Tock tracker), and refactoring VPN/power management infrastructure across Home Manager and NixOS system modules.

Changes

Cohort / File(s) Summary
Flake & Hosts
README.md, flake.nix, hosts/birch-seed/*, hosts/seed-birch/default.nix
Updated flake inputs/outputs, added birch-seed host configuration with custom variables, renamed/removed legacy host, updated mkHost helper signature to accept per-host variable overrides.
Home Manager - Browser & Multimedia
modules/hm/common/browser/default.nix, modules/hm/common/multimedia/player.nix, modules/hm/common/multimedia/remote-desktop.nix, modules/hm/common/multimedia/management-utility.nix
Replaced Chromium/Vivaldi with Zen browser, added Spicetify integration with extension/theme configuration, added remote-viewer support, removed hyprdisplays dependency.
Home Manager - Communication & Messaging
modules/hm/common/communication/{discord,mail}.nix, modules/hm/common/communication/matrix.nix
Narrowed Discord/mail client options, added Fluxer Discord and Velo mail clients, deleted Matrix module entirely.
Home Manager - Development Tools
modules/hm/common/dev/languages/{php,kotlin}.nix, modules/hm/common/dev/tools/{cli,gitleaks}.nix, modules/hm/common/dev/environments/editor.nix
Added comprehensive PHP module with Composer/Xdebug/MSSQL support, deleted Kotlin, removed CLI tools, added Gitleaks pre-commit hook integration, replaced Android Studio with Codium IDE.
Home Manager - Utilities & Documentation
modules/hm/common/utilities/{tracker,app-launcher,filezilla,kde-connect,stacer}.nix, modules/hm/common/utilities/safety/*, modules/hm/common/multimedia/{rambox,editing/audio}.nix, modules/hm/common/engine/default.nix, modules/hm/common/security/burp.nix, modules/hm/common/documentation/obsidian.nix
Added Tock time-tracking module, refactored app-launcher from Kando theme management to client selection, removed 7+ optional modules (filezilla, KDE Connect, Stacer, Ianny, Rambox, Audacity, Burp, engine), updated Obsidian mutability settings.
Home Manager - Desktop & Configuration
modules/hm/desktops/{hydenix,configHydenix}.nix, modules/hm/desktops/{mirage-waybar.jsonc,powermode-toggle.sh}, modules/hm/common/default.nix
Replaced Kando app launcher with Hyprshell/Zen browser keybinds, removed Waybar config, delegated power mode toggling to system scripts, refactored desktop module option structure (browser.enable), pruned home-manager module imports.
NixOS System - Hardware & Power Management
modules/system/common/hardware/{boot,powersave}/*
Commented out boot.enable override, added new power-toggle script for ASUS profiles, refactored power-tuning with new boost/freq/NVMe controls, simplified profile logic (max-performance, balanced, max-powersave).
NixOS System - Networking & VPN
modules/system/common/networks/{vpn,wireguard-vpn,openfortivpn}.nix
Major VPN refactor: extended support from Tailscale-only to include WireGuard and OpenFortiVPN, added dual TUI/CLI managers for WireGuard and OpenFortiVPN, moved Tailscale settings under subnamespace, added VPN dispatcher tool.
NixOS System - Development & Virtualization
modules/system/common/dev/{languages/php,tools/flatpak}.nix, modules/system/common/dev/languages/android.nix, modules/system/common/nix/nix-garbage.nix, modules/system/common/virtualisation/default.nix
Deleted system-level PHP/Flatpak modules, replaced ADB enablement with shell alias, changed nix-garbage defaults to enabled, updated Wine package mappings (stable→stable64), removed redundant system modules.
NixOS System - Services & Games
modules/system/common/{security/password-manager,server/{communication,print},games}.nix, modules/system/common/virtualisation/ollama.nix
Changed default password manager to Bitwarden, removed Matrix/Deskflow servers, added ntfy-sh client config toggle, updated print drivers (Canon→Epson), added Steamtinkerlauncher option with shell aliases, deleted Ollama module.
Wrapper Modules
modules/wrapper/{fluxer,tock,tock-ui,velo}.nix, modules/wrapper/{hayase,hyprDisplays,winboat,wrkflw}.nix, modules/wrapper/{default,scalar}.nix
Added 4 new AppImage/Nix wrappers (Fluxer Discord, Tock tracker CLI/UI, Velo mail), removed 4 obsolete wrappers (Hayase media player, HyprDisplays, Winboat Wine, Wrkflw CLI), updated wrapper imports, bumped Scalar checksum.
Host Configurations - Home Manager
modules/hm/hosts/{birch-seed,cedar,oak}/default.nix
Birch-seed: narrowed media clients (removed Miru), removed Ianny safety. Cedar: replaced Wrkflw with Act, removed Gitleaks. Oak: expanded multimedia (Jellyfin, Spicetify, Ani-cli), changed mail/Discord (Velo, Fluxer), added Rust dev, tracker/launcher, replaced tooling.
Host Configurations - NixOS
modules/system/hosts/{birch-seed,cedar,oak}/default.nix, hosts/{birch-seed,cedar,oak}/default.nix
Birch-seed: added print config (Epson), enabled force perf on AC, restricted disk power management. Cedar: removed media/paperless/photoprism/Matrix, disabled Portmaster. Oak: removed Safing, added print, switched to Wine/WireGuard/OpenFortiVPN, removed PHP/gamemode/nix-garbage. New host definitions with hardware config, GRUB boot, Plasma 6 desktop, French keymaps.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • Dev #7: Modifies the same flake.nix host infrastructure, host addition/removal patterns, and overlapping module files (birch-seed creation, mkHost changes).
  • Dev #5: Changes the identical modules/hm/common/browser/default.nix module signature and browser-to-package mappings.
  • Dev #2: Overlaps in Home Manager mail/communication modules and host configuration options (oak/cedar updates).

Suggested labels

enhancement, refactor, dependencies


🐰 A flakeHypr hops from old to new,
Zen browsers bloom and Spicetify too,
With Tock time-trackers and power to spare,
Birch-seed sprouts forth with desktop flair! 🌿✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch DEV

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.

@ClementBobin ClementBobin merged commit 4eb924c into main Mar 25, 2026
1 of 3 checks passed
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 1.5.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@coderabbitai coderabbitai bot added the enhancement New feature or request label Mar 25, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Nix flake + host/home-manager modules by reshaping the wrapper packages, adding new VPN/power-management tooling, and adjusting host configurations (printing, virtualization, browsers, apps).

Changes:

  • Add new wrapper packages (velo, tock, tock-ui, fluxer) and swap some HM/service selections to use them.
  • Introduce interactive VPN manager scripts (WireGuard/OpenFortiVPN) and enhance power profile tooling (tuning + toggle).
  • Remove several modules/packages (matrix/ollama/deskflow/wrkflw wrappers, etc.) and update multiple host defaults (printing, virtualization/wine, browsers).

Reviewed changes

Copilot reviewed 79 out of 80 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
result Updates recorded NixOS system store path output
modules/wrapper/wrkflw.nix Removes local wrkflw wrapper derivation
modules/wrapper/winboat.nix Removes local winboat AppImage wrapper
modules/wrapper/velo.nix Adds AppImage wrapper for Velo mail client
modules/wrapper/tock.nix Adds Go-based tock CLI package
modules/wrapper/tock-ui.nix Adds AppImage wrapper for Tock UI
modules/wrapper/scalar.nix Updates scalar .deb hash
modules/wrapper/hyprDisplays.nix Removes local HyprDisplays derivation
modules/wrapper/hayase.nix Removes local hayase AppImage wrapper
modules/wrapper/fluxer.nix Adds AppImage wrapper for Fluxer client
modules/wrapper/default.nix Updates wrapper imports list (adds/removes wrappers)
modules/system/hosts/seed-birch/default.nix Enables printing + adjusts powersave settings
modules/system/hosts/oak/default.nix Adjusts games/vpn/virtualisation + printing + removes portmaster
modules/system/hosts/cedar/default.nix Disables matrix-synapse and portmaster blocks
modules/system/common/virtualisation/ollama.nix Removes Ollama module
modules/system/common/virtualisation/default.nix Changes Wine package selection + adds winboat to extras
modules/system/common/server/print.nix Changes default printer driver + expands avahi config
modules/system/common/server/communication/ntfy-sh.nix Comments out HM client config generation
modules/system/common/server/communication/matrix.nix Removes matrix-synapse server module
modules/system/common/server/communication/deskflow.nix Removes deskflow server module
modules/system/common/security/password-manager.nix Switches default backend to bitwarden; removes keepassxc
modules/system/common/nix/nix-garbage.nix Changes enable option type/defaults; enables autoOptimiseStore by default
modules/system/common/networks/wireguard-vpn.sh Adds interactive WireGuard VPN manager script
modules/system/common/networks/vpn.nix Expands VPN support (tailscale/wireguard/openfortivpn) + adds dispatcher tool
modules/system/common/networks/openfortivpn.sh Adds interactive OpenFortiVPN manager script
modules/system/common/hardware/powersave/power-tuning.sh Refactors/expands power tuning profiles and sysfs controls
modules/system/common/hardware/powersave/power-toggle.sh Adds AC/battery-aware asusctl profile toggle script
modules/system/common/hardware/powersave/default.nix Adds power toggle integration into power-tools and /etc script exports
modules/system/common/hardware/boot.nix Comments out hydenix.boot.enable assignment
modules/system/common/games.nix Updates Steam compat path option type/default; adds steamtinkerlauncher integration + aliases
modules/system/common/dev/tools/flatpak.nix Removes flatpak dev tooling module
modules/system/common/dev/languages/php.nix Removes system-level PHP dev module
modules/system/common/dev/languages/flutter.nix Adds adb-restart alias; removes programs.adb.enable
modules/system/common/default.nix Updates common imports (adds android, removes several modules)
modules/hm/hosts/seed-birch/default.nix Simplifies multimedia player selection; removes ianny config
modules/hm/hosts/oak/default.nix Updates multimedia/dev/tools/communication selections (act/velo/fluxer/etc.)
modules/hm/hosts/cedar/default.nix Switches git-action tool to act; removes tunnel + gitleaks enable
modules/hm/desktops/powermode-toggle.sh Removes old powermode toggle script
modules/hm/desktops/mirage-waybar.jsonc Removes old waybar layout file
modules/hm/desktops/hydenix.nix Adds browser.enable option; adjusts bindings/spotify/spicetify behavior + aliases
modules/hm/desktops/configHydenix.nix Adjusts startup timing; adds zen binds; removes ianny/kando sections
modules/hm/common/utilities/tracker.nix Adds HM module for tock + optional UI + aliases
modules/hm/common/utilities/stacer.nix Removes stacer HM module
modules/hm/common/utilities/safety/ianny.nix Removes ianny HM module
modules/hm/common/utilities/safety/config.json Removes ianny preset JSON
modules/hm/common/utilities/kde-connect.nix Removes kde-connect HM module
modules/hm/common/utilities/filezilla.nix Removes filezilla HM module
modules/hm/common/utilities/app-launcher.nix Replaces kando/themes logic with client list (hyprshell)
modules/hm/common/security/burp.nix Removes burp HM module
modules/hm/common/multimedia/remote-desktop.nix Adds remote-viewer client mapping
modules/hm/common/multimedia/rambox.nix Removes rambox HM module
modules/hm/common/multimedia/player.nix Expands player clients; adds spicetify-nix integration + options
modules/hm/common/multimedia/management-utility.nix Removes hyprdisplays wrapper usage from HM
modules/hm/common/multimedia/editing/audio.nix Removes audio editor HM module
modules/hm/common/engine/default.nix Removes engine selection HM module
modules/hm/common/documentation/obsidian.nix Removes mutable flags for obsidian theme files
modules/hm/common/dev/tools/nix.nix Switches formatter from nixfmt-rfc-style to nixfmt
modules/hm/common/dev/tools/gitleaks/pre-commit-hook.sh Adds gitleaks pre-commit hook script
modules/hm/common/dev/tools/gitleaks/default.nix Adds HM gitleaks module configuring hooksPath + files
modules/hm/common/dev/tools/gitleaks/.gitleaks.toml Adds shared gitleaks rules/config
modules/hm/common/dev/tools/gitleaks.nix Removes old gitleaks module
modules/hm/common/dev/tools/git-action.nix Stops using local wrkflw wrapper; uses pkgs.wrkflw
modules/hm/common/dev/tools/cli.nix Removes generic CLI tools module
modules/hm/common/dev/languages/php.nix Adds new HM PHP module with version/extensions/xdebug options
modules/hm/common/dev/languages/kotlin.nix Removes kotlin HM module
modules/hm/common/dev/languages/dotnet.nix Changes default .NET SDK versions to 10
modules/hm/common/dev/environments/editor.nix Removes android-studio IDE entry; adds codium
modules/hm/common/default.nix Updates HM common imports; adds php + gitleaks dir + tracker module
modules/hm/common/communication/matrix.nix Removes matrix HM communication module
modules/hm/common/communication/mail.nix Switches mail services mapping to velo wrapper
modules/hm/common/communication/discord.nix Reworks discord clients mapping; adds fluxer wrapper
modules/hm/common/browser/default.nix Adjusts browser list; adds zen via flake input
hosts/seed-birch/default.nix Removes old host entry (replaced by birch-seed host)
hosts/oak/default.nix Removes insecure package allowlist; tweaks hydenix + firewall
hosts/cedar/hardware-configuration.nix Updates detected hardware config (UUIDs, modules, swap, microcode)
hosts/cedar/default.nix Updates LXC/proxmox settings and imports; changes nixpkgs import source
hosts/birch-seed/default.nix Adds new birch-seed host definition
flake.nix Adds inputs (sops-nix, spicetify-nix, zen-browser), pins hydenix, extends mkHost args
README.md Updates title line to indicate fork origin
Comments suppressed due to low confidence (9)

modules/system/common/virtualisation/default.nix:1

  • winboat is added to additionalPackages, but this PR removes the local modules/wrapper/winboat.nix wrapper and also removes it from modules/wrapper/default.nix. Unless pkgs provides winboat elsewhere, this will fail evaluation/build. Fix by either reintroducing the wrapper and ensuring it is in scope (e.g., via an overlay), or remove winboat from this list / gate it behind a dedicated option that also provides the package.
    modules/system/common/networks/vpn.nix:1
  • Nix options don't expand $HOME, so the default will be the literal string $HOME/vpn. Also, both added scripts hardcode CONFIG_DIR=\"$HOME/vpn\", so this option currently has no effect. Fix by (1) defaulting to a concrete path (e.g., using the configured user/home in NixOS/HM context), and (2) wiring cfg.configDir into the scripts via substitution or an environment variable consumed by the scripts.
    modules/system/common/networks/vpn.nix:1
  • lib.mkIf is intended for attrsets; when the condition is false it returns {}, which won't type-check where a list is expected (boot.kernelModules). Use lib.optionals cfg.wireguard.autoLoadKernelModule [ \"wireguard\" ] (or set boot.kernelModules in an enclosing mkIf) to ensure the value is always a list.
    modules/system/common/networks/openfortivpn.sh:1
  • This flow captures the sudo password into a shell variable and interpolates it into a command string, which can leak via process listings/logs and is generally unsafe. Additionally, passing the VPN password via --password=... puts secrets into process args, and the exec echo ... | sudo ... pipeline construction is fragile. Consider switching to a systemd unit (or sudo with an askpass helper) so you never handle sudo credentials manually, and avoid passing VPN credentials as CLI args (prefer config file / stdin / secure prompt). Also consider moving PID/log files from /tmp to a per-user runtime directory (e.g., $XDG_RUNTIME_DIR) to reduce symlink/permission risks.
    modules/hm/common/utilities/tracker.nix:1
  • mkIf returns an attrset when the condition is false, which will break home.packages (expects a list of packages). Use lib.optional cfg.ui.enable cfg.ui.package or lib.optionals cfg.ui.enable [ cfg.ui.package ] instead.
    modules/hm/common/utilities/tracker.nix:1
  • The option name alliasEnable looks like a typo and is harder to discover/search than aliasEnable. Also the description mentions enabling the 'tock' alias, but the module defines aliases like project-start, task-start, etc. Consider renaming the option to aliasEnable and updating the description (or actually adding a tock alias if that's the intent).
    modules/system/common/games.nix:1
  • Using ~ in a Nix-set environment variable/path is typically not expanded by consumers; STEAM_EXTRA_COMPAT_TOOLS_PATHS will likely end up with a literal ~ path. Prefer an absolute path (e.g., based on the configured user's home) or $HOME/... if the consuming process expands it (many do not).
    modules/system/common/games.nix:1
  • Two concrete issues here: (1) lib.optionalString will produce an empty string when disabled but still defines the alias key, which can create an invalid/empty alias; define these aliases conditionally (e.g., with lib.optionalAttrs). (2) \"~/games/...\" is quoted inside the shell test so ~ won't expand, making the directory check always fail; use $HOME/... or an unquoted tilde.
    result:1
  • The result symlink/recorded store path looks like a local build artifact and is likely to change frequently across machines/builds. Consider removing it from version control (and adding it to .gitignore) to avoid noisy diffs and accidental coupling to a specific local store path.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +19 to +31
programs.git.settings = {
core.hooksPath = "${config.xdg.configHome}/.git-config/.git-hooks";
};

# Copy gitleaks config file
home.file.".git-config/.gitleaks.toml".source =
"${moduleDir}/.gitleaks.toml";

# Copy pre-commit hook
home.file.".git-config/.git-hooks/pre-commit" = {
source = "${moduleDir}/pre-commit-hook.sh";
executable = true;
};
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

core.hooksPath points under ${config.xdg.configHome}/.git-config/... (typically ~/.config/.git-config/...), but the files are installed under ~/.git-config/.... As written, Git won't find the hook. Fix by either installing the hook/config under ${config.xdg.configHome} to match the hooksPath, or set core.hooksPath to ${config.home.homeDirectory}/.git-config/.git-hooks so it matches the installed location.

Copilot uses AI. Check for mistakes.
Comment on lines +15 to +22
CONFIG_FLAG=""
CONFIG_FILE="$HOME/.git-config/.gitleaks.toml"
if [ -f "$CONFIG_FILE" ]; then
CONFIG_FLAG="--config $CONFIG_FILE"
fi

# Run gitleaks on staged changes
if gitleaks detect --source . --verbose $CONFIG_FLAG; then
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment says this scans staged changes, but gitleaks detect --source . scans the entire working tree, which is slower and can fail commits due to unrelated files. Prefer running gitleaks in a staged-only mode (according to the gitleaks CLI you target), and quote/array the config flag to avoid word-splitting issues.

Suggested change
CONFIG_FLAG=""
CONFIG_FILE="$HOME/.git-config/.gitleaks.toml"
if [ -f "$CONFIG_FILE" ]; then
CONFIG_FLAG="--config $CONFIG_FILE"
fi
# Run gitleaks on staged changes
if gitleaks detect --source . --verbose $CONFIG_FLAG; then
CONFIG_ARGS=()
CONFIG_FILE="$HOME/.git-config/.gitleaks.toml"
if [ -f "$CONFIG_FILE" ]; then
CONFIG_ARGS+=(--config "$CONFIG_FILE")
fi
# Run gitleaks on staged changes
if gitleaks detect --staged --verbose "${CONFIG_ARGS[@]}"; then

Copilot uses AI. Check for mistakes.
Comment on lines +107 to +109
home.shellAliases = {
# shell alias for ani-cli to anime
anime = lib.mkIf (lib.elem "ani-cli" cfg.clients) ''ani-cli'';
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lib.mkIf is for conditionally including attrsets; using it as a string value will produce a type mismatch (string vs attrset) when the condition is false. Use lib.optionalAttrs around the alias attrset, or lib.optionalString for the value and only define the key when enabled.

Suggested change
home.shellAliases = {
# shell alias for ani-cli to anime
anime = lib.mkIf (lib.elem "ani-cli" cfg.clients) ''ani-cli'';
home.shellAliases = lib.optionalAttrs (lib.elem "ani-cli" cfg.clients) {
# shell alias for ani-cli to anime
anime = ''ani-cli'';

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants