foxygit / sxbar Log in
commit fb79b899a7d109fc827e0da742d34c61f47df0ad
Author:     MrJensK <jens.se@icloud.com>
AuthorDate: Tue Aug 11 20:05:10 2026 +0200
Commit:     MrJensK <jens.se@icloud.com>
CommitDate: Tue Aug 11 20:05:10 2026 +0200

    update to startmenu.sh to add new features ugs
---
 scripts/startmenu.sh | 35 ++++++++++++++++++++++++++++++++---
 1 file changed, 32 insertions(+), 3 deletions(-)

diff --git a/scripts/startmenu.sh b/scripts/startmenu.sh
index f2148ed..bd0b44b 100755
--- a/scripts/startmenu.sh
+++ b/scripts/startmenu.sh
@@ -1,12 +1,22 @@
 #!/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                   -> 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)
@@ -15,6 +25,25 @@ menu)
 	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"