From: Amin Bandali Date: Mon, 17 Sep 2018 15:37:44 +0000 (-0400) Subject: [rc/sway] bind XF86PowerOff to prompt for system exit action X-Git-Url: https://git.shemshak.org/~bandali/configs/commitdiff_plain/11a97c6847ba346367987bae67c28ea3613c595a [rc/sway] bind XF86PowerOff to prompt for system exit action - (l)ock - (e)xit sway - (s)uspend - (h)ibernate - (r)eboot - (S)hutdown need to inhibit systemd's handling of the power button using systemd-inhibit (or alternatively and less elegantly by modifying /etc/systemd/logind.conf, which i didn't want to do) --- diff --git a/rc.org b/rc.org index c857af3..654bd8e 100644 --- a/rc.org +++ b/rc.org @@ -3771,6 +3771,10 @@ insert_pass="Alt+n" #+begin_src conf exec xrdb .Xresources exec dunst +exec pgrep -x "systemd-inhibit" || \ + systemd-inhibit --what=handle-power-key --who=aminb \ + --why="Handle power button in sway" sleep infinity + ### Variables # super set $mod Mod4 @@ -3990,6 +3994,27 @@ mode "resize" { } bindsym $mod+Shift+r mode "resize" +# +# Power button +# +set $locker swaylock && sleep 1 + +set $mode_system System (l)ock, (e)xit sway, (s)uspend, (h)ibernate, (r)eboot, (S)hutdown +mode "$mode_system" { + bindsym l exec $locker, mode "default" + bindsym e exec swaymsg exit, mode "default" + bindsym s exec $locker && systemctl suspend, mode "default" + bindsym h exec $locker && systemctl hibernate, mode "default" + bindsym r exec systemctl reboot, mode "default" + bindsym Shift+s exec systemctl poweroff -i, mode "default" + + # back to normal: Enter, Escape, or q + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym q mode "default" +} +bindsym XF86PowerOff mode "$mode_system" + # # Status Bar: #