diff options
| author | 2026-05-29 11:18:14 +0100 | |
|---|---|---|
| committer | 2026-05-29 11:18:14 +0100 | |
| commit | 3be68c032c864fa98ed85e54ea5af19976c55ed7 (patch) | |
| tree | cfb707a6b1f0a68d2554045470e41a4b90dcdb2c /dot_config/sway | |
| parent | 0711f1b4a4045c583c63f494a61262ed1146a944 (diff) | |
| download | dotfiles-3be68c032c864fa98ed85e54ea5af19976c55ed7.tar.gz dotfiles-3be68c032c864fa98ed85e54ea5af19976c55ed7.tar.bz2 dotfiles-3be68c032c864fa98ed85e54ea5af19976c55ed7.zip | |
feat(suspend): disable system suspend until hardened kernel resume issue is fixed
linux-hardened wedges on resume from S3 (NVMe/i915/iwlwifi driver UAF
exposed by INIT_ON_FREE + slab hardening). Until root-caused, take
suspend off the table while keeping lock + DPMS intact.
- etc/systemd/logind.conf.d/20-no-suspend.conf: lid close, suspend
key, hibernate key all map to 'lock'; IdleAction=ignore (swayidle
drives DPMS+swaylock independently).
- run_onchange_after_deploy-etc.sh.tmpl: mask sleep.target,
suspend.target, hibernate.target, hybrid-sleep.target,
suspend-then-hibernate.target via /etc/systemd/system -> /dev/null
symlinks. Catches 'systemctl suspend' from any source.
- dot_config/sway/config: XF86Sleep and system-mode 's' now run
loginctl lock-session instead of systemctl suspend.
- dot_config/sway/executable_power-menu.sh: drop Suspend entry.
- KEYBINDS.md: reflect new behaviour.
To re-enable later: remove the logind drop-in + symlink loop, then
sudo systemctl daemon-reload.
Diffstat (limited to 'dot_config/sway')
| -rw-r--r-- | dot_config/sway/config | 6 | ||||
| -rw-r--r-- | dot_config/sway/executable_power-menu.sh | 7 |
2 files changed, 5 insertions, 8 deletions
diff --git a/dot_config/sway/config b/dot_config/sway/config index 48e5993..817e7c4 100644 --- a/dot_config/sway/config +++ b/dot_config/sway/config @@ -173,7 +173,7 @@ bindsym $mod+Ctrl+bracketleft exec ~/.config/sway/brightness-osd.sh down bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle bindsym XF86Bluetooth exec ~/.config/sway/bt-toggle.sh bindsym XF86ScreenSaver exec "playerctl -a pause; swaylock -f -e -c 000000" -bindsym XF86Sleep exec systemctl suspend +bindsym XF86Sleep exec loginctl lock-session bindsym XF86WLAN exec ~/.config/waybar/wifi-toggle.sh bindsym XF86RFKill exec rfkill toggle all @@ -225,13 +225,13 @@ bindsym $mod+z mode "qr" # System / hardware submode — non-XF86 alternatives for the rarely used # hardware toggles and TUI launchers above. Enter with Super+x; mnemonic -# letters (b=bluetooth, w=wifi, r=rfkill, s=sleep, d=display, +# letters (b=bluetooth, w=wifi, r=rfkill, s=lock-session, d=display, # v=volume-mixer, k=keybinds, m=notification-picker). mode "system" { bindsym b exec ~/.config/sway/bt-toggle.sh, mode "default" bindsym w exec ~/.config/waybar/wifi-toggle.sh, mode "default" bindsym r exec rfkill toggle all, mode "default" - bindsym s exec systemctl suspend, mode "default" + bindsym s exec loginctl lock-session, mode "default" bindsym d exec ~/.config/sway/display-toggle.sh, mode "default" bindsym v exec $term --class=floating -e pulsemixer, mode "default" bindsym k exec $term --class=floating -e glow -p ~/dotfiles/KEYBINDS.md, mode "default" diff --git a/dot_config/sway/executable_power-menu.sh b/dot_config/sway/executable_power-menu.sh index 999259c..0a7de91 100644 --- a/dot_config/sway/executable_power-menu.sh +++ b/dot_config/sway/executable_power-menu.sh @@ -2,9 +2,10 @@ # Keyboard-driven power menu via wofi --dmenu (j/k navigation). set -eu +# Suspend entry intentionally omitted while suspend is disabled +# system-wide. See etc/systemd/logind.conf.d/20-no-suspend.conf. choice=$(printf '%s\n' \ " Lock" \ - " Suspend" \ " Logout" \ " Reboot" \ " Poweroff" | @@ -17,10 +18,6 @@ case "$choice" in playerctl -a pause exec swaylock -f -e -c 000000 ;; - *Suspend) - playerctl -a pause - exec systemctl suspend - ;; *Logout) exec swaymsg exit ;; *Reboot) exec systemctl reboot ;; *Poweroff) exec systemctl poweroff ;; |
