diff options
| author | 2026-05-29 11:18:15 +0100 | |
|---|---|---|
| committer | 2026-05-29 11:18:15 +0100 | |
| commit | 3848d890979bd5fafae92054f85061edf10edff3 (patch) | |
| tree | c2bdac9348f2505246b9b4edc6ad32a88b5090a2 /dot_config/systemd/user/sway-session.target | |
| parent | 6e0c5c33438e5e898bd075c33a45b3abf9d1b26b (diff) | |
| download | dotfiles-3848d890979bd5fafae92054f85061edf10edff3.tar.gz dotfiles-3848d890979bd5fafae92054f85061edf10edff3.tar.bz2 dotfiles-3848d890979bd5fafae92054f85061edf10edff3.zip | |
fix(suspend): make zellij inhibit watcher resilient to local-only sessions
The previous watcher exited immediately whenever no SSH-spawned zellij
was present. That caused a start-rate-limit storm:
.path triggers service (zellij dir non-empty)
-> watcher exits because no SSH zellij
-> service stops
-> .path retriggers (zellij dir still non-empty)
-> ... 5 starts in 10s, systemd stops the path unit
-> no inhibitor ever again, even after you SSH in
Restructure so the watcher stays alive for the entire zellij socket
directory lifetime and acquires/releases its own systemd-inhibit lock
dynamically based on SSH-zellij presence:
* Watcher now polls and exits only when the zellij socket dir is empty,
matching the .path's trigger condition so it never re-fires while
zellij is alive.
* systemd-inhibit removed from ExecStart - watcher self-inhibits via a
child 'systemd-inhibit ... sleep infinity' it can terminate on demand.
* StartLimitIntervalSec=0 on the service as belt-and-braces against
any future regression of the cycle.
Recovery from the rate-limit hit:
systemctl --user reset-failed zellij-inhibit-suspend.service zellij-inhibit-suspend.path
systemctl --user daemon-reload
systemctl --user restart zellij-inhibit-suspend.path
Diffstat (limited to 'dot_config/systemd/user/sway-session.target')
0 files changed, 0 insertions, 0 deletions
