From d7fac4bbf607a894219065dc9b87f6d495d9ebab Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Wed, 13 May 2026 13:43:36 +0100 Subject: feat(sway): browser-aware idle inhibits + post-resume lock grace Two related session-idle improvements: 1. ScreenSaver inhibit bridge. Browsers (LibreWolf/Chromium flatpaks) ask the session not to idle via the legacy org.freedesktop.ScreenSaver D-Bus API during video calls and fullscreen video; swayidle only honors logind's BlockInhibited property. Add inhibridge as a user unit to translate the former into the latter, so e.g. a Google Meet tab now keeps the screen from locking, dimming and (downstream) suspending. 2. Post-resume grace period. Locking on before-sleep meant every wake demanded the password even for a quick check. Replace with: before-sleep -> only pause media after-resume -> resume-lock-grace.sh 30 The grace script runs a one-shot swayidle that locks iff the user stays idle for 30s after the wake, with a watchdog that exits as soon as swaylock comes up (or after a hard cap) so it never lingers alongside the main swayidle. The 5-min main idle-lock and explicit loginctl lock-session paths are unchanged. --- dot_config/systemd/user/inhibridge.service | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 dot_config/systemd/user/inhibridge.service (limited to 'dot_config/systemd/user/inhibridge.service') diff --git a/dot_config/systemd/user/inhibridge.service b/dot_config/systemd/user/inhibridge.service new file mode 100644 index 0000000..a4435bf --- /dev/null +++ b/dot_config/systemd/user/inhibridge.service @@ -0,0 +1,15 @@ +[Unit] +Description=Bridge org.freedesktop.ScreenSaver inhibits to systemd-inhibit +Documentation=https://codeberg.org/Scrumplex/inhibridge +PartOf=graphical-session.target +After=graphical-session.target +ConditionEnvironment=DBUS_SESSION_BUS_ADDRESS + +[Service] +Type=simple +ExecStart=/usr/bin/inhibridge +Restart=on-failure +RestartSec=2s + +[Install] +WantedBy=sway-session.target -- cgit v1.3.1