119 lines
3.1 KiB
Bash
Executable File
119 lines
3.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
help_menu() {
|
|
echo "Script to interact with dunst. Use only one argument at a time."
|
|
echo " - Toggle On/Off: dunst.sh OR dunst.sh --toggle OR dunst.sh -t"
|
|
echo " - Turn On: dunst.sh --on"
|
|
echo " - Turn Off: dunst.sh --off"
|
|
echo " - Context Menu: dunst.sh --context"
|
|
echo " - Close Notification: dunst.sh --close"
|
|
echo " - Close All Notifications: dunst.sh --close-all"
|
|
echo " - History Pop: dunst.sh --history"
|
|
echo " - History Clear: dunst.sh --history-clear"
|
|
echo " - Toggle Do Not Disturb: dunst.sh --dnd"
|
|
echo " - Pause Notifications: dunst.sh --pause"
|
|
echo " - Unpause Notifications: dunst.sh --unpause"
|
|
echo " - Rofi Menu: dunst.sh --rofi"
|
|
echo " - Help: dunst.sh --help OR dunst.sh -h"
|
|
}
|
|
|
|
is_running() {
|
|
if pgrep -x dunst >/dev/null; then
|
|
echo 1
|
|
else
|
|
echo 0
|
|
fi
|
|
}
|
|
|
|
rofi_menu() {
|
|
declare -a options=(
|
|
"⏼ Toggle - toggle"
|
|
" Turn On - on"
|
|
" Turn Off - off"
|
|
" Open Actions - context"
|
|
" Close Notification - close"
|
|
" Close All Notifications - close-all"
|
|
" View History - history"
|
|
" Clear History - history-clear"
|
|
" Toggle Do Not Disturb - dnd"
|
|
" Pause Popup Notifications - pause"
|
|
" Unpause Popup Notifications - unpause"
|
|
" Back - back"
|
|
" Quit - quit"
|
|
)
|
|
|
|
choice=$(printf '%s\n' "${options[@]}" | rofi -dmenu -i)
|
|
option=$(printf '%s\n' "${choice}" | awk '{print $NF}')
|
|
|
|
if [[ "$option" == "quit" ]]; then
|
|
pkill rofi
|
|
elif [[ "$option" != "back" ]]; then
|
|
main "--$option" && main "--rofi"
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
if [ $# -eq 0 ]; then
|
|
# No arguments
|
|
help_menu
|
|
else
|
|
case $1 in
|
|
--help | -h)
|
|
help_menu
|
|
;;
|
|
--toggle)
|
|
if [ $(is_running) -eq '1' ]; then
|
|
main --off
|
|
else
|
|
main --on
|
|
fi
|
|
;;
|
|
--on)
|
|
if [ $(is_running) -eq '1' ]; then
|
|
pkill dunst
|
|
fi
|
|
|
|
# Start Dunst
|
|
/usr/bin/dunst -config ~/.config/dunst/dunstrc &
|
|
|
|
notify-send "Turning Dunst ON"
|
|
;;
|
|
--off)
|
|
notify-send "Turning Dunst OFF"
|
|
|
|
if [ $(is_running) -eq '1' ]; then
|
|
pkill dunst
|
|
fi
|
|
;;
|
|
--context)
|
|
dunstctl context
|
|
;;
|
|
--close)
|
|
dunstctl close
|
|
;;
|
|
--close-all)
|
|
dunstctl close-all
|
|
;;
|
|
--history)
|
|
dunstctl history-pop
|
|
;;
|
|
--history-clear)
|
|
dunstctl history-clear
|
|
;;
|
|
--dnd)
|
|
dunstctl set-paused toggle
|
|
;;
|
|
--pause)
|
|
dunstctl set-paused true
|
|
;;
|
|
--unpause)
|
|
dunstctl set-paused false
|
|
;;
|
|
--rofi)
|
|
rofi_menu
|
|
;;
|
|
esac
|
|
fi
|
|
}
|
|
|
|
main $@
|