Under KDE4, instead of calling the DBUS method UnInhibit, the script xdg-screensaver calls the method SetActive. This starts the screensaver immediately, and this is absolutely not the expected behaviour.
The function screensaver_freedesktop() in the script is broken (and there are some FIXME's around). Here's a diff of what it should look like:
Hi,
Under KDE4, instead of calling the DBUS method UnInhibit, the script xdg-screensaver calls the method SetActive. This starts the screensaver immediately, and this is absolutely not the expected behaviour.
The function screensaver_ freedesktop( ) in the script is broken (and there are some FIXME's around). Here's a diff of what it should look like:
diff --git a/usr/bin/ xdg-screensaver b/xdg-screensaver xdg-screensaver freedesktop( ) .ScreenSaver /ScreenSaver org.freedesktop .ScreenSaver. Inhibit $window_id xdg-screensaver > /dev/null .ScreenSaver /ScreenSaver org.freedesktop .ScreenSaver. Inhibit $window_id xdg-screensaver >| "$screensaver_ file.cookie" 2> /dev/null
index 29e8e18..015cc2e 100755
--- a/usr/bin/
+++ b/xdg-screensaver
@@ -558,13 +558,13 @@ screensaver_
{
case "$1" in
suspend)
- #FIXME (get/store cookie)
- qdbus org.freedesktop
+ qdbus org.freedesktop
result=$?
;;
resume) .ScreenSaver /ScreenSaver org.freedesktop .ScreenSaver. SetActive true > /dev/null .ScreenSaver /ScreenSaver org.freedesktop .ScreenSaver. UnInhibit `cat "$screensaver_ file.cookie" ` > /dev/null file.cookie"
- qdbus org.freedesktop
+ qdbus org.freedesktop
+ rm -f "$screensaver_
result=$?
;;
@@ -578,8 +578,8 @@ screensaver_ freedesktop( )
;;
reset) .ScreenSaver /ScreenSaver org.freedesktop .ScreenSaver. UnInhibit $window_id > /dev/null .ScreenSaver /ScreenSaver org.freedesktop .ScreenSaver. UnInhibit `cat "$screensaver_ file.cookie" ` > /dev/null file.cookie"
- #FIXME (cookies?)
- qdbus org.freedesktop
+ qdbus org.freedesktop
+ rm -f "$screensaver_
result=$?
;;
Best regards,