Sravan Balaji 6a050b96f3 Fix Wayland Startup Issues
- Make all notify-send commands non-blocking
  (i.e., run in background)
- Remove delay array from wayland startup
- Call startup script with `dwl -s`
2024-09-29 16:14:53 -04:00

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 $@