87 lines
1.3 KiB
Bash
Executable file
87 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
## Author : Aditya Shakya (adi1090x)
|
|
## Github : @adi1090x
|
|
|
|
# CMDs
|
|
uptime="`uptime -p | sed -e 's/up //g'`"
|
|
|
|
# Options
|
|
shutdown=''
|
|
reboot=''
|
|
lock=''
|
|
suspend=''
|
|
logout=''
|
|
|
|
# Rofi CMD
|
|
rofi_cmd() {
|
|
rofi -dmenu \
|
|
-p "" \
|
|
-mesg "Uptime: $uptime" \
|
|
-theme "$HOME/.config/rofi/themes/powermenu.rasi"
|
|
}
|
|
|
|
# Pass variables to rofi dmenu
|
|
run_rofi() {
|
|
echo -e "$lock\n$suspend\n$logout\n$reboot\n$shutdown" | rofi_cmd
|
|
}
|
|
|
|
# Execute Command
|
|
run_cmd() {
|
|
case $1 in
|
|
--shutdown)
|
|
systemctl poweroff
|
|
;;
|
|
--reboot)
|
|
systemctl reboot
|
|
;;
|
|
--suspend)
|
|
mpc -q pause
|
|
amixer set Master mute
|
|
systemctl suspend
|
|
;;
|
|
--logout)
|
|
case "$DESKTOP_SESSION" in
|
|
openbox)
|
|
openbox --exit
|
|
;;
|
|
bspwm)
|
|
bspc quit
|
|
;;
|
|
dwm)
|
|
pkill dwm
|
|
;;
|
|
i3)
|
|
i3-msg exit
|
|
;;
|
|
plasma)
|
|
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Actions
|
|
chosen="$(run_rofi)"
|
|
case "${chosen}" in
|
|
"${shutdown}")
|
|
run_cmd --shutdown
|
|
;;
|
|
"${reboot}")
|
|
run_cmd --reboot
|
|
;;
|
|
"${lock}")
|
|
if [[ -x '/usr/bin/betterlockscreen' ]]; then
|
|
betterlockscreen -l
|
|
elif [[ -x '/usr/bin/i3lock' ]]; then
|
|
i3lock
|
|
fi
|
|
;;
|
|
"${suspend}")
|
|
run_cmd --suspend
|
|
;;
|
|
"${logout}")
|
|
run_cmd --logout
|
|
;;
|
|
esac
|