diff options
Diffstat (limited to 'scripts/xdg-screensaver')
-rwxr-xr-x | scripts/xdg-screensaver | 48 |
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 |