summaryrefslogtreecommitdiff
path: root/scripts/xdg-screensaver
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/xdg-screensaver')
-rwxr-xr-xscripts/xdg-screensaver48
1 files changed, 48 insertions, 0 deletions
diff --git a/scripts/xdg-screensaver b/scripts/xdg-screensaver
index 4b2e709..d377f35 100755
--- a/scripts/xdg-screensaver
+++ b/scripts/xdg-screensaver
@@ -336,6 +336,7 @@ detectDE()
elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;
+ else DE=""
fi
}
@@ -430,6 +431,10 @@ perform_action()
xscreensaver)
screensaver_xscreensaver "$1"
;;
+
+ '')
+ screensaver_xserver "$1"
+ ;;
esac
if [ "$1" = "suspend" ] ; then
@@ -685,6 +690,49 @@ screensaver_kde()
esac
}
+screensaver_xserver()
+{
+ case "$1" in
+ suspend)
+ xset s off > /dev/null
+ result=$?
+ ;;
+
+ resume)
+ xset s default > /dev/null
+ result=$?
+ ;;
+
+ activate)
+ xset s activate > /dev/null
+ result=$?
+ ;;
+
+ reset)
+ xset s reset > /dev/null
+ result=$?
+ ;;
+
+ status)
+ timeout=`xset q | sed '/^Screen Saver:/,/^[^ ]/ { s/.*timeout: *\([0-9]*\).*/\1/; t }; d'`
+ result=$?
+ if [ "$timeout" -gt 0 ]; then
+ echo "enabled"
+ elif [ "$timeout" -eq 0 ]; then
+ echo "disabled"
+ else
+ echo "ERROR: xset q did not report the screensaver timeout" >&2
+ return 1
+ fi
+ ;;
+
+ *)
+ echo "ERROR: Unknown command '$1'" >&2
+ return 1
+ ;;
+ esac
+}
+
screensaver_suspend_loop()
{
lockfile