aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/sway
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-29 11:18:14 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-29 11:18:14 +0100
commit3be68c032c864fa98ed85e54ea5af19976c55ed7 (patch)
treecfb707a6b1f0a68d2554045470e41a4b90dcdb2c /dot_config/sway
parent0711f1b4a4045c583c63f494a61262ed1146a944 (diff)
downloaddotfiles-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/config6
-rw-r--r--dot_config/sway/executable_power-menu.sh7
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 ;;