Handy dot files with sensible bindings and settings
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

67 lines
1.3 KiB

#!/usr/bin/env bash
# Swayconfig
SWAYCONFIG="$HOME/.config/swaylock/config"
# CMDs
uptime="`uptime -p | sed -e 's/up //g'`"
host=`hostnamectl hostname`
# Options
shutdown=' Shutdown'
reboot=' Reboot'
lock=' Lock'
suspend=' Suspend'
logout=' Logout'
hibernate=' Hibernate'
# Rofi CMD
rofi_cmd() {
rofi -dmenu -p " $USER@$host" -mesg " Uptime: $uptime" -sep '|' -eh 2 -theme ~/.config/rofi/config-powermenu.rasi
}
# Pass variables to rofi dmenu
run_rofi() {
echo -e "$lock\0meta\x1fl|$suspend\0meta\x1fu|$logout\0meta\x1fe|$reboot\0meta\x1fr|$shutdown\0meta\x1fs|$hibernate\0meta\x1fh" | rofi_cmd
}
# Execute Command
run_cmd() {
if [[ $1 == '--shutdown' ]]; then
systemctl poweroff
elif [[ $1 == '--reboot' ]]; then
systemctl reboot
elif [[ $1 == '--suspend' ]]; then
systemctl suspend
elif [[ $1 == '--logout' ]]; then
hyprctl dispatch exit 0
elif [[ $1 == '--hibernate' ]]; then
systemctl hibernate
fi
}
# Actions
chosen="$(run_rofi)"
case ${chosen} in
$shutdown)
run_cmd --shutdown
;;
$reboot)
run_cmd --reboot
;;
$hibernate)
run_cmd --hibernate
;;
$lock)
sleep 0.5s; swaylock --config ${SWAYCONFIG} & disown
;;
$suspend)
run_cmd --suspend
;;
$logout)
run_cmd --logout
;;
$hibernate)
run_cmd --hibernate
;;
esac