Changing idle.screensaver / idle.lock in ~/.config/omarchy/shell.json while the shell is running hot-reloads the new values (confirmed via omarchy-shell idle status) but the IdleMonitor stops firing entirely — no blank, no lock, ever again. Only omarchy restart shell recovers it.
Steps to reproduce
- Have working idle timeouts (e.g. stock 150/300) — idle cycles fire normally
- Edit
shell.jsonto changeidle.screensaver/idle.lock(values hot-reload fine) - Wait well past the new timeout — nothing happens; journal shows zero
omarchy idleevents after the change omarchy restart shell— idle detection works again immediately
Evidence from journal (Oct 20)
18:13:33 idle-cycle-start: screensaver=150 lock=300 <- working with old values
18:16:03 lock-system: lock-timeout <- last successful lock
[shell.json saved at 18:19 with screensaver=900 lock=1800]
[no idle events for ~2 hours afterward]During the dead period, omarchy-shell idle status confirmed the new values were loaded and the service was enabled:
{"enabled":true,"stayAwake":false,"screensaver":900,"lock":1800,...}After omarchy restart shell, idle was detected within seconds and the screensaver launched correctly.
Suspect
The IdleMonitor (quickshell 0.3.2) may not re-register with the compositor when its timeout property changes. plugins/services/idle/Service.qml binds timeout to firstIdleTimeoutSeconds, which updates on hot-reload, but the compositor-side idle notification may not follow. Fresh shell startup (registering once with the final timeout) always works.
Workaround
Restart the shell after any idle-settings change: omarchy restart shell
System
- Omarchy 4.0.6-1
- Hyprland 0.56.2
- quickshell 0.3.2.r7.g2b4501a-1
- Kernel 7.2.8-9-omarchy, x86_64
- Lenovo ThinkPad T430s (Intel Core i5-3320M, Ivy Bridge)
Activity
0No activity yet.