foxygit / sxbar Log in
commits tags

/scripts/startmenu.sh · 1.6 KB

raw
#!/bin/sh
# startmenu module -- dispatched by subcommand:
#   startmenu.sh                   -> bar text
#   startmenu.sh menu              -> popup definition, read once at
#                                     startup (see README, "Module-declared
#                                     menus")
#   startmenu.sh screensaver_status -> "Screensaver: On"/"Off" popup_info
#                                      row, re-run fresh every time the
#                                      popup opens
#   startmenu.sh screensaver_on    -> re-enable blanking/DPMS (xset)
#   startmenu.sh screensaver_off   -> disable blanking/DPMS (xset)
#
# This *is* the start menu -- add, remove or reorder popup_item lines below
# to customize it, no sxbarc editing needed.
mode="${1:-text}"
self="$0"

# Timeout (seconds) restored by "Turn screensaver on" -- adjust to taste.
saver_timeout=600

case "$mode" in
menu)
	echo 'popup : hover : buttons'
	echo 'popup_item : "Terminal" : "xterm"'
	echo 'popup_item : "File manager" : "pcmanfm"'
	echo 'popup_item : "Web browser" : "firefox"'
	echo 'popup_item : "Lock screen" : "slock"'
	echo "popup_info : \"$self screensaver_status\""
	echo "popup_item : \"Turn screensaver on\" : \"$self screensaver_on\""
	echo "popup_item : \"Turn screensaver off\" : \"$self screensaver_off\""
	;;
screensaver_status)
	t=$(xset q 2>/dev/null | awk '/^  timeout:/{print $2}')
	if [ "${t:-0}" -gt 0 ] 2>/dev/null; then
		echo 'Screensaver: On'
	else
		echo 'Screensaver: Off'
	fi
	;;
screensaver_on)
	xset s "$saver_timeout" "$saver_timeout"
	xset +dpms
	;;
screensaver_off)
	xset s off
	xset -dpms
	;;
*)
	echo "Start"
	;;
esac