summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.local/bin/sysact26
-rwxr-xr-x.local/bin/system_action16
2 files changed, 26 insertions, 16 deletions
diff --git a/.local/bin/sysact b/.local/bin/sysact
new file mode 100755
index 0000000..abd0221
--- /dev/null
+++ b/.local/bin/sysact
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+export WM="dwm"
+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%%)*}"
+}
+
+
+case "$(printf " lock\n󰠚 leave $WM\n renew $WM\n󱣻 hibernate\n reboot\n shutdown\n sleep\n display off" | dmenu -i -l 15 -p 'Action: ')" in
+ ' lock') slock ;;
+ "󰠚 leave $WM") kill -TERM "$(wmpid)" ;;
+ " renew $WM") kill -HUP "$(wmpid)" ;;
+ '󱣻 hibernate') slock $ctl hibernate -i ;;
+ ' sleep') slock $ctl suspend -i ;;
+ ' reboot') $ctl reboot -i ;;
+ ' shutdown') $ctl poweroff -i ;;
+ ' display off') xset dpms force off ;;
+ *) exit 1 ;;
+esac
diff --git a/.local/bin/system_action b/.local/bin/system_action
deleted file mode 100755
index 16995c2..0000000
--- a/.local/bin/system_action
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-case "$(readlink -f /sbin/init)" in
- *systemd*) ctl='systemctl' ;;
- *) ctl='loginctl' ;;
-esac
-
-case "$(printf " lock\n display off\n logout\n sleep\n reboot\n shutdown" | dmenu -i -p '>_ ')" in
- ' lock') slock ;;
- ' display off') xset dpms force off ;;
- ' logout') kill -TERM "$(pgrep -u "$USER" "\bdwm$")" ;;
- ' sleep') slock $ctl suspend ;;
- ' reboot') $ctl reboot ;;
- ' shutdown') $ctl poweroff ;;
- *) exit 1 ;;
-esac