tag 511248 patch
thanks
Hello,
Per Olofsson wrote:
> Vincent Fourmond wrote:
>> I'm tagging this bug as severity serious as it breaks xine-ui. Feel
>> free to downgrade if you think I'm excessive.
>
> Yes, I think it is excessive. It doesn't "break" anything in that way.
> Xine is not broken just because it doesn't turn off the screensaver -
> it still works, you can disable the screensaver manually or move your
> mouse or whatever.
>
> Downgrading.
Fine. As a bonus, here are several patches that people sent me and
that do the trick for me; please pick one up ;-) !
Regards,
Vincent
--
Vincent Fourmond, Debian Developer
http://vince-debian.blogspot.com/
Au royaume des aveugles, il y a des borgnes à ne pas dépasser.
-- Soeur Marie-Thérèse des Batignoles (Maëster)
Vincent, listening to Joyride (Single Edit) (Roxette)
Patch by Ben Hutchings <[email protected]>
--- xdg-utils-1.0.2.orig/scripts/xdg-screensaver
+++ xdg-utils-1.0.2/scripts/xdg-screensaver
@@ -334,6 +334,7 @@
if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
+ else DE='';
fi
}
@@ -424,8 +425,12 @@
xscreensaver)
screensaver_xscreensaver "$1"
;;
- esac
+ '')
+ screensaver_xserver "$1"
+ ;;
+ esac
+
if [ "$1" = "suspend" ] ; then
# Save DPMS state
if xset -q | grep 'DPMS is Enabled' > /dev/null 2> /dev/null; then
@@ -584,6 +589,49 @@
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()
{
lockfilePatch by Jan Echternach <[email protected]>
--- /usr/bin/xdg-screensaver.orig 2009-01-02 18:53:08.000000000 +0100
+++ /usr/bin/xdg-screensaver 2009-01-09 23:48:18.000000000 +0100
@@ -424,6 +424,10 @@
xscreensaver)
screensaver_xscreensaver "$1"
;;
+
+ xset)
+ screensaver_xset "$1"
+ ;;
esac
if [ "$1" = "suspend" ] ; then
@@ -710,6 +714,54 @@
esac
}
+screensaver_xset()
+{
+ case "$1" in
+ suspend)
+ # FIXME: The effect of "xset s reset" to delay screen saver
+ # activation is undocumented. According to xset(1), it simply
+ # deactivates a currently active screensaver.
+ screensaver_suspend_loop xset s reset
+ result=0
+ ;;
+
+ resume)
+ # Automatic resume when $screensaver_file disappears
+ result=0
+ ;;
+
+ activate)
+ xset s activate > /dev/null 2> /dev/null
+ result=$?
+ ;;
+
+ lock)
+ echo "ERROR: 'lock' not supported" >&2
+ result=1
+ ;;
+
+ reset)
+ # Turns the screensaver off right now
+ xset s reset > /dev/null 2> /dev/null
+ result=$?
+ ;;
+
+ status)
+ result=0
+ if [ -f "$screensaver_file" ] ; then
+ echo "disabled"
+ else
+ echo "enabled"
+ fi
+ ;;
+
+ *)
+ echo "ERROR: Unknown command '$1" >&2
+ return 1
+ ;;
+ esac
+}
+
[ x"$1" != x"" ] || exit_failure_syntax
action=
@@ -767,6 +819,10 @@
# Consider "xscreensaver" a separate DE
xscreensaver-command -version 2> /dev/null | grep XScreenSaver > /dev/null && DE="xscreensaver"
+# Use "xset s" as a fallback if there's no desktop environment and no
+# xscreensaver process running.
+test -z "$DE" && DE="xset"
+
if [ "$action" = "resume" ] ; then
do_resume
exit_success