commit f9abb2381f36ed33bad8e0381e8df27678bca607
parent 6a0535f5b0bfbf3c37d3b7b87167726013f0fc42
Author: Szymon Mikulicz <szymon.mikulicz@posteo.net>
Date: Mon, 18 May 2026 19:19:22 +0200
Create a wrapper script for poweroff/suspend
Diffstat:
3 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/scripts/.local/bin/sys b/scripts/.local/bin/sys
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+which systemctl >/dev/null 2>&1 && ctlcmd=systemctl || ctlcmd=loginctl
+
+case $1 in
+ lock)
+ exec swaylock $(awww query --json | jq -r '."".[] | ("-i\n" + .name + ":" + .displaying.image)') -s fill
+ ;;
+ reboot)
+ exec $ctlcmd reboot
+ ;;
+ suspend)
+ exec $ctlcmd suspend
+ ;;
+ poweroff)
+ exec $ctlcmd poweroff
+ ;;
+ *)
+ echo "Unknown command: '$1'"
+ exit 1
+ ;;
+esac
diff --git a/sway/.config/sway/config b/sway/.config/sway/config
@@ -93,11 +93,11 @@ bindsym $mod+r mode "resize"
set $power_control "[l]ock log[o]ut [s]uspend [r]eboot [p]oweroff"
mode $power_control {
- bindsym l exec ~/.config/sway/lock.sh; mode "default"
+ bindsym l exec sys lock; mode "default"
bindsym o exec swaymsg exit; mode "default"
- bindsym s exec loginctl suspend; mode "default"
- bindsym r exec loginctl reboot; mode "default"
- bindsym p exec loginctl poweroff; mode "default"
+ bindsym s exec sys suspend; mode "default"
+ bindsym r exec sys reboot; mode "default"
+ bindsym p exec sys poweroff; mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
@@ -191,11 +191,11 @@ bar {
}
exec swayidle \
- timeout 300 '~/.config/sway/lock.sh' \
+ timeout 300 'sys lock' \
timeout 600 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \
- lock '~/.config/sway/lock.sh' \
- before-sleep '~/.config/sway/lock.sh'
+ lock 'sys lock' \
+ before-sleep 'sys lock'
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
diff --git a/sway/.config/sway/lock.sh b/sway/.config/sway/lock.sh
@@ -1,2 +0,0 @@
-#!/usr/bin/env bash
-exec swaylock $(awww query --json | jq -r '."".[] | ("-i\n" + .name + ":" + .displaying.image)') -s fill