summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFathi Boudra <fabo@debian.org>2010-12-31 14:41:14 +0200
committerFathi Boudra <fabo@debian.org>2010-12-31 14:41:14 +0200
commitc9551d250722081cbf7d6611f417bc597765e5c9 (patch)
treefd17fd72ad8f011e0b9903af8b3d86d93001a0d3
parent1a0f10dee6d0414c8f43e19bcfbb29cca91712fb (diff)
xdg-screensaver: support X server blanking. Thanks to Ben Hutchings.
-rw-r--r--ChangeLog1
-rwxr-xr-xscripts/xdg-desktop-icon1
-rwxr-xr-xscripts/xdg-desktop-menu1
-rwxr-xr-xscripts/xdg-email1
-rwxr-xr-xscripts/xdg-icon-resource1
-rwxr-xr-xscripts/xdg-mime1
-rwxr-xr-xscripts/xdg-open1
-rwxr-xr-xscripts/xdg-screensaver48
-rw-r--r--scripts/xdg-screensaver.in47
-rwxr-xr-xscripts/xdg-settings1
-rw-r--r--scripts/xdg-utils-common.in1
11 files changed, 104 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6c8d34d..9001160 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
Thanks to Christopher Yeleighton. (BR31441)
* xdg-open: declare file variable as local. (BR32487)
* xdg-open: decode file:// urls. Thanks to Henning Garus.
+ * xdg-screensaver: support X server blanking. Thanks to Ben Hutchings.
2010-11-18 Rex Dieter <rdieter@fedoraproject.org>
* xdg-utils-common: fixup kfmclient_fix_exit_code() for newer kde-config
diff --git a/scripts/xdg-desktop-icon b/scripts/xdg-desktop-icon
index 2f9208f..5707e35 100755
--- a/scripts/xdg-desktop-icon
+++ b/scripts/xdg-desktop-icon
@@ -409,6 +409,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
}
diff --git a/scripts/xdg-desktop-menu b/scripts/xdg-desktop-menu
index 2d0487a..8762c4f 100755
--- a/scripts/xdg-desktop-menu
+++ b/scripts/xdg-desktop-menu
@@ -605,6 +605,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
}
diff --git a/scripts/xdg-email b/scripts/xdg-email
index 55dff2d..83090ab 100755
--- a/scripts/xdg-email
+++ b/scripts/xdg-email
@@ -361,6 +361,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
}
diff --git a/scripts/xdg-icon-resource b/scripts/xdg-icon-resource
index 5580e29..211d947 100755
--- a/scripts/xdg-icon-resource
+++ b/scripts/xdg-icon-resource
@@ -401,6 +401,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
}
diff --git a/scripts/xdg-mime b/scripts/xdg-mime
index 915cf0d..ce6c18e 100755
--- a/scripts/xdg-mime
+++ b/scripts/xdg-mime
@@ -431,6 +431,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
}
diff --git a/scripts/xdg-open b/scripts/xdg-open
index ac336e3..b8db0aa 100755
--- a/scripts/xdg-open
+++ b/scripts/xdg-open
@@ -308,6 +308,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
}
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
diff --git a/scripts/xdg-screensaver.in b/scripts/xdg-screensaver.in
index 5e5736c..8839187 100644
--- a/scripts/xdg-screensaver.in
+++ b/scripts/xdg-screensaver.in
@@ -100,6 +100,10 @@ perform_action()
xscreensaver)
screensaver_xscreensaver "$1"
;;
+
+ '')
+ screensaver_xserver "$1"
+ ;;
esac
if [ "$1" = "suspend" ] ; then
@@ -355,6 +359,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
diff --git a/scripts/xdg-settings b/scripts/xdg-settings
index 9d7d489..a8c5ba3 100755
--- a/scripts/xdg-settings
+++ b/scripts/xdg-settings
@@ -316,6 +316,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
}
diff --git a/scripts/xdg-utils-common.in b/scripts/xdg-utils-common.in
index 60d70c3..dd33f82 100644
--- a/scripts/xdg-utils-common.in
+++ b/scripts/xdg-utils-common.in
@@ -198,6 +198,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
}