sway: update sway_exit script with icons, adapt sway_suspend, update config accordingly

This commit is contained in:
Konstantin Koslowski 2022-04-21 01:42:42 +02:00
parent 0271bfb5d9
commit ac387d4c1b
3 changed files with 28 additions and 9 deletions

View file

@ -1,4 +1,20 @@
#!/bin/bash
export PATH=$PATH:$HOME/.config/sway/bin
bash -c "$(echo -e 'sway_lock lock\nsystemctl suspend\nswaymsg reload\nswaymsg exit' | \
wofi --dmenu --prompt 'exit menu')"
IMG_BASE=$HOME/.local/share/icons/Tela-circle-dark
IMG_LOCK=$IMG_BASE/scalable/apps/system-log-out.svg
CMD_LOCK="sway_lock lock"
IMG_SUSPEND=$IMG_BASE/scalable/apps/system-suspend.svg
CMD_SUSPEND="sway_suspend suspend"
IMG_RELOAD=$IMG_BASE/scalable/apps/system-software-update.svg
CMD_RELOAD="swaymsg reload"
IMG_EXIT=$IMG_BASE/scalable/apps/system-restart.svg
CMD_EXIT="swaymsg exit"
echo -e "img:$IMG_LOCK:text:$CMD_LOCK
img:$IMG_SUSPEND:text:$CMD_SUSPEND
img:$IMG_RELOAD:text:$CMD_RELOAD
img:$IMG_EXIT:text:$CMD_EXIT" | \
wofi --dmenu --prompt "exit menu" | while read line; do
bash -c "$line"
done

View file

@ -3,13 +3,15 @@ source $HOME/.config/sway/bin/sway_helpers
BAT_PATH=/sys/class/power_supply
BAT=BAT0
MODE=suspend-then-hibernate
MEDIA_APP=playerctl
INHIBIT_FILE=$HOME/.inhibit_suspend
## helpers
# 0: charging
# 1: discharging/unknown
# 1: discharging
# 0: charging/full
function _state() {
f=$BAT_PATH/$BAT/status
# default to discharging when status file not found
s=1
if [ -e $f ]; then
s=$(grep -c Discharging $f)
@ -22,6 +24,7 @@ function _suspend() {
state=$(_state)
force=${1:-0}
if [ $state -eq 1 -o $force -eq 1 ]; then
$MEDIA_APP stop
systemctl $MODE
else
_log SUSPEND INFO aborting. state: $state, force: $force
@ -35,14 +38,14 @@ case $1 in
i*)
_set_inhibit $INHIBIT_FILE $2
;;
suspend)
suspend-battery)
_suspend 0
;;
force)
suspend)
_suspend 1
;;
*)
echo "invalid argument: \"$1\""
echo "arguments: [inhibit [on|off]|suspend|force]"
echo "arguments: [inhibit [on|off]|suspend-battery|suspend]"
;;
esac

4
config
View file

@ -70,8 +70,8 @@ exec swayidle -w \
timeout 1800 '$lock_cmd off' \
resume '$lock_cmd on' \
timeout 2700 '$lock_cmd lockonly' \
timeout 3600 '$suspend_cmd suspend' \
timeout 7200 '$suspend_cmd force' \
timeout 3600 '$suspend_cmd suspend-battery' \
timeout 7200 '$suspend_cmd suspend' \
before-sleep '$lock_cmd lock'
bindsym $mod+Ctrl+Escape exec '$lock_cmd lock'