sysact (1014B)
1 #!/bin/sh 2 3 # A wmenu wrapper script for system functions. 4 export WM="sway" 5 case "$(readlink -f /sbin/init)" in 6 *systemd*) ctl='systemctl' ;; 7 *) ctl='loginctl' ;; 8 esac 9 10 wmpid(){ # This function is needed if there are multiple instances of the window manager. 11 tree="$(pstree -ps $$)" 12 tree="${tree#*$WM(}" 13 echo "${tree%%)*}" 14 } 15 16 lock(){ 17 mpc pause 18 pauseallmpv 19 wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle 20 kill -44 $(pidof i3blocks) 21 swaylock 22 wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle 23 kill -44 $(pidof i3blocks) 24 } 25 26 case "$(printf "🔒 lock\n🚪 leave $WM\n♻️ renew $WM\n🐻 hibernate\n🔃 reboot\n🖥️shutdown\n💤 sleep\n📺 display off" | wmenu -i -p 'Action: ')" in 27 '🔒 lock') lock ;; 28 "🚪 leave $WM") swaymsg exit ;; 29 "♻️ renew $WM") swaymsg reload ;; 30 '🐻 hibernate') $ctl hibernate -i ;; 31 '💤 sleep') $ctl suspend -i ;; 32 '🔃 reboot') $ctl reboot -i ;; 33 '🖥️shutdown') $ctl poweroff -i ;; 34 '📺 display off') xset dpms force off ;; 35 *) exit 1 ;; 36 esac