Skip to content

feat(hm): add syncthing service and enhance nix config - #1259

Merged
shunkakinoki merged 6 commits into
mainfrom
feat/hm-syncthing-nix-config
Mar 23, 2026
Merged

feat(hm): add syncthing service and enhance nix config#1259
shunkakinoki merged 6 commits into
mainfrom
feat/hm-syncthing-nix-config

Conversation

@shunkakinoki

@shunkakinoki shunkakinoki commented Mar 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add syncthing as a home-manager service (Linux-only, services.syncthing.enable)
  • Enhance home-manager/nix: lix package, registry.nixpkgs pinned to flake input, full substituter + trusted-public-keys set, use-xdg-base-directories, gc.automatic
  • Flatten home-manager/misc/nix/home-manager/nix/ (remove the pointless misc wrapper)
  • Scope NixOS-only settings to matic: channel.enable = false, nix-path override, trusted-users, environment.etc."nix/inputs/nixpkgs"

Test plan

  • nixos-rebuild switch on matic builds without errors
  • home-manager switch on all hosts builds without errors
  • Syncthing web UI accessible at 127.0.0.1:8384 on matic
  • nix registry list shows nixpkgs pinned to flake input
  • Binary caches (garnix, cloudtide, nix-community, yazi) resolve correctly

🤖 Generated with Claude Code


Summary by cubic

Enhances home-manager Nix config for reproducible, faster builds and aligns idle/lock behavior across Linux (Hyprland) and macOS. syncthing was removed from this PR.

  • New Features

    • home-manager/nix: use lix, pin registry.nixpkgs to flake input, XDG dirs, auto GC, full substituters/keys.
    • Adaptive idle/lock: Hyprland locks at 5m on battery and 10m on AC with DPMS at 5.5m/10.5m; macOS idleTime set to 600s.
  • Refactors

    • Restructure home-manager/nix: move from misc, split index/config, let-bound nix import, alphabetize let bindings.
    • Scope NixOS-only Nix to matic: disable channels, force nix-path, set trusted-users (incl. @wheel), add /etc/nix/inputs/nixpkgs.

Written for commit 1953f99. Summary will update on new commits.

- Add syncthing as a home-manager service (Linux-only via services.syncthing)
- Upgrade nix config: lix package, registry pinning, full substituter set,
  trusted-public-keys, use-xdg-base-directories, and gc.automatic
- Flatten home-manager/misc/nix → home-manager/nix (remove misc wrapper)
- Move NixOS-only nix settings to matic (channel.enable, nix-path, trusted-users,
  environment.etc nix/inputs/nixpkgs)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 22, 2026 23:56
@mesa-dot-dev

mesa-dot-dev Bot commented Mar 22, 2026

Copy link
Copy Markdown

You do not have enough credits to review this pull request. Please purchase more credits to continue.

@coderabbitai

coderabbitai Bot commented Mar 22, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Replaced the old misc/nix module with a dedicated home-manager/nix module (Lix, caches, experimental features, GC), removed home-manager/misc exports, added a Linux-only Syncthing home-manager service, updated home-manager imports, and adjusted host, macOS screensaver, and Hyprland idle/DPMS configs. (50 words)

Changes

Cohort / File(s) Summary
Home Manager top-level imports
home-manager/default.nix, home-manager/misc/default.nix
Removed the misc aggregation and replaced it with an explicit nix import; deleted home-manager/misc/default.nix.
Nix module (new)
home-manager/nix/default.nix, home-manager/nix/nix.nix
Added home-manager/nix aggregation and a new nix.nix module that enables Nix, defaults package to Lix, sets registry nixpkgs to inputs, enables nix-command+flakes, configures XDG, substituters, trusted keys, and automatic GC.
Removed misc/nix module
home-manager/misc/nix/default.nix
Deleted the previous misc-provided Nix Home Manager module (which had enabled nix and set experimental features).
Services: Syncthing
home-manager/services/default.nix, home-manager/services/syncthing/default.nix
Added a syncthing service module and exported it; the module enables the service only on Linux (pkgs.stdenv.isLinux).
Host Nix configuration
named-hosts/matic/default.nix
Adjusted Nix system settings: disabled channels, forced nixpkgs nix-path to local inputs, added /etc/nix/inputs/nixpkgs source, and updated nix.settings.trusted-users.
Hyprland idle/DPMS config
config/hyprland/hypridle.conf
Made lock and DPMS listeners conditional on AC vs battery, added AC-only listeners and on-resume DPMS handling.
macOS screensaver prefs
nix-darwin/config/system.nix
Extended com.apple.screensaver defaults to set idleTime = 600 in addition to existing password settings.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • devenv #369: modifies Nix cache/substituter and trusted-public-keys settings (overlaps nix.settings and cache configuration).
  • nvim revamp #360: adjusts Home Manager module composition and nix-related imports (overlaps home-manager imports and nix module changes).

Suggested labels

enhancement

Poem

🐇 I hopped through flakes and Lix with glee,

Syncthing waits on Linux, quiet as can be.
Modules moved and caches set right,
DPMS and locks now heed day and night.
A tiny rabbit cheers this tidy spree 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly reflects the main changes: adding syncthing service and enhancing nix configuration in home-manager.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description clearly relates to and accurately summarizes the changeset, covering all major modifications across home-manager configuration, NixOS settings, and service additions.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 feat/hm-syncthing-nix-config

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.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a new Syncthing service for Home Manager on Linux and significantly refines the Nix configuration across Home Manager and NixOS. The changes aim to improve the development environment by leveraging lix, ensuring consistent nixpkgs pinning, optimizing binary caching, and streamlining the Nix module structure. These updates enhance system stability, performance, and maintainability for Nix-based setups.

Highlights

  • Syncthing Service: Added a new Home Manager service for Syncthing, which is enabled specifically for Linux systems.
  • Nix Configuration Enhancement: The Home Manager Nix configuration has been significantly enhanced to use the lix package, pin nixpkgs to the flake input, enable use-xdg-base-directories, configure multiple substituters and trusted public keys, and activate automatic garbage collection.
  • Nix Module Restructuring: The home-manager/misc/nix/ directory structure was flattened, moving the Nix configuration directly to home-manager/nix/ for better organization.
  • NixOS-Specific Settings for 'matic': NixOS-level settings for the 'matic' host were refined, including disabling channels, explicitly setting the nix-path, adjusting trusted-users, and pinning the nixpkgs input.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@mesa-dot-dev

mesa-dot-dev Bot commented Mar 22, 2026

Copy link
Copy Markdown

Mesa Description

TL;DR

Adds syncthing as a Linux-only home-manager service and significantly enhances the Nix configuration across home-manager and NixOS for improved reproducibility and build performance. It also introduces adaptive idle/lock timeouts for Linux (Hyprland) and macOS for better power management.

What changed?

  • home-manager/default.nix: Refactored to replace the misc module with a new nix module and reordered packages import.
  • home-manager/misc/default.nix: Emptied by removing the inclusion of ./nix.
  • home-manager/misc/nix/default.nix: Completely removed.
  • home-manager/nix/default.nix: Created to solely import the ./nix.nix module.
  • home-manager/services/default.nix: Integrates the Syncthing service into Home Manager.
  • home-manager/services/syncthing/default.nix: New Home Manager module introduced to enable and configure the Syncthing service, active only on Linux.
  • named-hosts/matic/default.nix: Updated NixOS configuration for 'matic' to disable Nix channels, remove explicit experimental features, enforce a specific nix-path, add @wheel group to trusted-users, and streamline Nix package sourcing.
  • config/hyprland/hypridle.conf: Updated to implement power source-dependent idle behaviors (5 min lock/DPMS on battery, 10 min on AC) with on-resume actions.
  • nix-darwin/config/system.nix: Configured screen saver idle time to 600 seconds.
  • home-manager/nix/nix.nix: New home-manager configuration file setting up Nix to use lix, enabling nix-command and flakes, configuring nixpkgs registry, utilizing XDG base directories, adding multiple cachix substituters, and enabling automatic garbage collection.

Description generated by Mesa. Update settings

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces the syncthing service for Linux hosts and significantly enhances the Nix configuration within home-manager. The changes include switching to the lix package, pinning the nixpkgs registry to the flake input, and adding a comprehensive set of binary caches, which are all great improvements for consistency and performance. The configuration is also nicely refactored by removing an unnecessary misc directory.

My review includes a suggestion to refine the syncthing service activation to be more targeted, enabling it only on desktop environments to avoid unintentionally running it on headless servers.

Comment thread home-manager/services/default.nix Outdated
sshAgent = import ./ssh-agent {
inherit config lib pkgs;
};
syncthing = import ./syncthing { inherit lib pkgs; };

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

To allow the syncthing module to be conditionally enabled based on host properties, please pass the config attribute here. This change is related to the suggestion on home-manager/services/syncthing/default.nix.

  syncthing = import ./syncthing { inherit config lib pkgs; };

Comment on lines +1 to +6
{ pkgs, lib, ... }:
{
services.syncthing = lib.mkIf pkgs.stdenv.isLinux {
enable = true;
};
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Enabling syncthing for all Linux hosts might be too broad, as it could be unintentionally enabled on headless servers. It would be more robust to enable it only on desktop systems by checking config.isDesktop.

To implement this, you'll also need to pass config to this module from home-manager/services/default.nix.

{ pkgs, lib, config, ... }:
{
  services.syncthing = lib.mkIf (pkgs.stdenv.isLinux && config.isDesktop) {
    enable = true;
  };
}

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 7 files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@home-manager/nix/default.nix`:
- Line 9: The nix expression sets package = lib.mkDefault
pkgs.lixPackageSets.latest.lix but lixPackageSets isn't provided; either add the
lix-module input and apply its overlay in flake.nix so pkgs.lixPackageSets
exists, or change the reference to use a standard package (e.g., replace
pkgs.lixPackageSets.latest.lix with pkgs.nix) so package resolves; update the
flake inputs and overlays if choosing the lix-module approach and ensure the
overlay exposes lixPackageSets, or simply point package at pkgs.nix via
lib.mkDefault to fix the attribute error.

In `@named-hosts/matic/default.nix`:
- Line 339: Update the stale inline comment that currently reads "NixOS-level
nix settings (complements home-manager misc/nix)" to reference the new module
path "home-manager/nix/" (e.g., change "home-manager misc/nix" to
"home-manager/nix/") so the comment correctly reflects the relocated module;
ensure the updated comment remains concise and in the same comment block near
the NixOS-level nix settings declaration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 44c9a073-6483-4966-b695-48a51e580e7d

📥 Commits

Reviewing files that changed from the base of the PR and between 4b8399f and 1eca583.

📒 Files selected for processing (7)
  • home-manager/default.nix
  • home-manager/misc/default.nix
  • home-manager/misc/nix/default.nix
  • home-manager/nix/default.nix
  • home-manager/services/default.nix
  • home-manager/services/syncthing/default.nix
  • named-hosts/matic/default.nix
💤 Files with no reviewable changes (2)
  • home-manager/misc/default.nix
  • home-manager/misc/nix/default.nix

Comment thread home-manager/nix/default.nix Outdated
}:
{
nix = {
package = lib.mkDefault pkgs.lixPackageSets.latest.lix;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify lix-related inputs in flake.nix
echo "=== Checking for lix input in flake.nix ==="
rg -n "lix" flake.nix || echo "No lix references found in flake.nix"

echo ""
echo "=== Checking for lixPackageSets usage in codebase ==="
rg -n "lixPackageSets" --type nix

Repository: shunkakinoki/dotfiles

Length of output: 291


🏁 Script executed:

#!/bin/bash
# Examine home-manager/nix/default.nix to understand pkgs instantiation
echo "=== Content of home-manager/nix/default.nix ==="
cat home-manager/nix/default.nix

echo ""
echo "=== Checking flake.nix for any overlays ==="
head -100 flake.nix

echo ""
echo "=== Searching for any overlay or lixPackageSets definition ==="
rg -n "overlay|lixPackageSets" --type nix | head -20

Repository: shunkakinoki/dotfiles

Length of output: 4979


🏁 Script executed:

#!/bin/bash
# Examine overlays/default.nix to see if lixPackageSets is provided
echo "=== Content of overlays/default.nix ==="
cat overlays/default.nix

echo ""
echo "=== Search for lixPackageSets definition or provision anywhere ==="
rg -n "lixPackageSets" . --type nix

Repository: shunkakinoki/dotfiles

Length of output: 2606


Add lix input to flake.nix or use standard pkgs.nix.

Line 9 references pkgs.lixPackageSets.latest.lix, but lixPackageSets is not available. The flake.nix inputs do not include any lix-related input, and the overlays do not provide this package set. This will fail evaluation with an attribute error.

To fix:

  1. Add the lix-module input to flake.nix and apply its overlay, OR
  2. Use pkgs.nix instead:
-    package = lib.mkDefault pkgs.lixPackageSets.latest.lix;
+    package = lib.mkDefault pkgs.nix;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@home-manager/nix/default.nix` at line 9, The nix expression sets package =
lib.mkDefault pkgs.lixPackageSets.latest.lix but lixPackageSets isn't provided;
either add the lix-module input and apply its overlay in flake.nix so
pkgs.lixPackageSets exists, or change the reference to use a standard package
(e.g., replace pkgs.lixPackageSets.latest.lix with pkgs.nix) so package
resolves; update the flake inputs and overlays if choosing the lix-module
approach and ensure the overlay exposes lixPackageSets, or simply point package
at pkgs.nix via lib.mkDefault to fix the attribute error.

Comment thread named-hosts/matic/default.nix Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a Home Manager Syncthing module and refactors/extends Nix configuration, including moving Nix-related Home Manager config from home-manager/misc/nix to a new top-level home-manager/nix module and pinning nixpkgs via the registry.

Changes:

  • Introduce a Home Manager Syncthing service module and wire it into home-manager/services.
  • Add a new home-manager/nix module (Lix package, pinned registry.nixpkgs, substituters/keys, XDG paths, automatic GC) and remove the old home-manager/misc/nix.
  • Update named-hosts/matic with additional NixOS-level Nix settings and an /etc/nix/inputs/nixpkgs pin.

Reviewed changes

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

Show a summary per file
File Description
named-hosts/matic/default.nix Adjusts host-level NixOS Nix settings and pins nixpkgs under /etc/nix/inputs.
home-manager/services/syncthing/default.nix Adds a Home Manager module enabling Syncthing on Linux.
home-manager/services/default.nix Registers the new Syncthing module in the services import list.
home-manager/nix/default.nix New consolidated Home Manager Nix configuration (registry pin, caches, GC, XDG).
home-manager/misc/nix/default.nix Removes the previous Home Manager Nix configuration module.
home-manager/misc/default.nix Removes the misc wrapper module list.
home-manager/default.nix Switches imports from misc to the new ./nix module.

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

"nix-command"
"flakes"
];
nix-path = lib.mkForce "nixpkgs=/etc/nix/inputs/nixpkgs";

Copilot AI Mar 23, 2026

Copy link

Choose a reason for hiding this comment

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

experimental-features (flakes + nix-command) was removed from this host’s NixOS nix.settings. Other NixOS configs in this repo still explicitly set these (e.g. hosts/nixos/default.nix), and without them nixos-rebuild --flake / flake-based nix commands can fail depending on the Nix version. Consider restoring nix.settings.experimental-features = [ "nix-command" "flakes" ]; here (or explicitly switching the system nix.package to one where flakes are enabled by default).

Suggested change
nix-path = lib.mkForce "nixpkgs=/etc/nix/inputs/nixpkgs";
nix-path = lib.mkForce "nixpkgs=/etc/nix/inputs/nixpkgs";
experimental-features = [ "nix-command" "flakes" ];

Copilot uses AI. Check for mistakes.
];

# Nix settings
# NixOS-level nix settings (complements home-manager nix/)

Copilot AI Mar 23, 2026

Copy link

Choose a reason for hiding this comment

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

Comment still refers to home-manager misc/nix, but this PR flattens that to home-manager/nix. Updating the comment will avoid confusion when tracking where nix.conf settings come from.

Suggested change
# NixOS-level nix settings (complements home-manager nix/)
# NixOS-level nix settings (complements home-manager/nix)

Copilot uses AI. Check for mistakes.
Comment on lines +3 to +5
services.syncthing = lib.mkIf pkgs.stdenv.isLinux {
enable = true;
};

Copilot AI Mar 23, 2026

Copy link

Choose a reason for hiding this comment

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

This module enables Syncthing for every Linux Home Manager config by default. That doesn’t match the PR description/test plan which are scoped to matic, and it can have unintended operational/security impact on other Linux hosts (background service, ports, state/config dirs). Consider gating it behind a host flag (e.g. inputs.host.isDesktop / inputs.host.isMatic) or making it opt-in (leave default services.syncthing.enable = false and enable it in the specific host config).

Copilot uses AI. Check for mistakes.
Match macOS screensaver idleTime (600s) for consistency across devices.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

1 issue found across 2 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="config/hyprland/hypridle.conf">

<violation number="1" location="config/hyprland/hypridle.conf:25">
P2: Battery detection checks for “any offline AC input” instead of “no AC input online,” which can trigger battery-only lock behavior while plugged in on multi-input systems.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

listener {
timeout = 300
on-timeout = loginctl lock-session
on-timeout = bash -c 'cat /sys/class/power_supply/AC*/online | grep -q 0 && loginctl lock-session'

@cubic-dev-ai cubic-dev-ai Bot Mar 23, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2: Battery detection checks for “any offline AC input” instead of “no AC input online,” which can trigger battery-only lock behavior while plugged in on multi-input systems.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At config/hyprland/hypridle.conf, line 25:

<comment>Battery detection checks for “any offline AC input” instead of “no AC input online,” which can trigger battery-only lock behavior while plugged in on multi-input systems.</comment>

<file context>
@@ -19,16 +19,29 @@ listener {
 listener {
     timeout = 300
-    on-timeout = loginctl lock-session
+    on-timeout = bash -c 'cat /sys/class/power_supply/AC*/online | grep -q 0 && loginctl lock-session'
 }
 
</file context>
Suggested change
on-timeout = bash -c 'cat /sys/class/power_supply/AC*/online | grep -q 0 && loginctl lock-session'
on-timeout = bash -c '! grep -q 1 /sys/class/power_supply/AC*/online && loginctl lock-session'
Fix with Cubic

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
config/hyprland/hypridle.conf (1)

15-20: Minor: AC dim timeout (30 min) occurs after AC lock timeout (10 min).

On AC power, the screen locks at 10 minutes but dims at 30 minutes. This means users won't get the visual dimming cue before the lock. If this is intentional (e.g., dimming is only for the lock screen itself), feel free to disregard. Otherwise, consider swapping the timeouts so dimming acts as a warning before locking.

Also applies to: 28-32

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/hyprland/hypridle.conf` around lines 15 - 20, The AC dim listener
currently uses timeout = 1800 (30m) which fires after the 10-minute lock; change
the listener timeout so dimming happens before locking (e.g., set timeout to a
value less than the lock timeout such as 540 seconds) in the same listener block
(identify by "listener", "timeout", "on-timeout", "on-resume") so on-timeout
provides a visual warning prior to the lock while keeping the AC-only check and
the on-resume behavior intact.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@config/hyprland/hypridle.conf`:
- Around line 15-20: The AC dim listener currently uses timeout = 1800 (30m)
which fires after the 10-minute lock; change the listener timeout so dimming
happens before locking (e.g., set timeout to a value less than the lock timeout
such as 540 seconds) in the same listener block (identify by "listener",
"timeout", "on-timeout", "on-resume") so on-timeout provides a visual warning
prior to the lock while keeping the AC-only check and the on-resume behavior
intact.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 85dc0579-c238-430a-8f52-902244bb4924

📥 Commits

Reviewing files that changed from the base of the PR and between d4c10b1 and 369f483.

📒 Files selected for processing (2)
  • config/hyprland/hypridle.conf
  • nix-darwin/config/system.nix

shunkakinoki and others added 3 commits March 23, 2026 10:38
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants