#!/bin/sh # A mew wrapper script for system functions. export WM="sway" case "$(readlink -f /sbin/init)" in *systemd*) ctl='systemctl' ;; *) ctl='loginctl' ;; esac wmpid() { # This function is needed if there are multiple instances of the window manager. tree="$(pstree -ps $$)" tree="${tree#*$WM(}" echo "${tree%%)*}" } lock() { mpc pause pauseallmpv wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle kill -44 $(pidof i3blocks) swaylock wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle kill -44 $(pidof i3blocks) } case "$(printf "lock\nleave $WM\nrenew $WM\nhibernate\nreboot\nshutdown\nsleep\ndisplay off" | mew -c -l 8 -i -p 'Action: ')" in 'lock') lock ;; "leave $WM") swaymsg exit ;; "renew $WM") swaymsg reload ;; 'hibernate') $ctl hibernate -i ;; 'sleep') $ctl suspend -i ;; 'reboot') $ctl reboot -i ;; 'shutdown') $ctl poweroff -i;; 'display off') xset dpms force off ;; *) exit 1 ;; esac