>From 83358a12ccb60177b6698db33fb85176c5400fde Mon Sep 17 00:00:00 2001
From: Mansour Behabadi <mans...@oxplot.com>
Date: Sun, 6 Oct 2013 01:07:38 +1000
Subject: [PATCH] xdg-screensaver: Support MATE desktop

Signed-off-by: Mansour Behabadi <mans...@oxplot.com>
---
 scripts/xdg-screensaver | 57 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/scripts/xdg-screensaver b/scripts/xdg-screensaver
index 2757c5b..801ef85 100755
--- a/scripts/xdg-screensaver
+++ b/scripts/xdg-screensaver
@@ -429,6 +429,10 @@ perform_action()
       screensaver_gnome_screensaver "$1"
       ;;

+    mate_screensaver)
+      screensaver_mate_screensaver "$1"
+      ;;
+
     xscreensaver)
       screensaver_xscreensaver "$1"
       ;;
@@ -815,6 +819,57 @@ screensaver_gnome_screensaver()
     esac
 }

+screensaver_mate_screensaver()
+{
+# mate-screensaver is almost identical to gnome's counterpart for now
+# but due to possibility of it diverging, we have a separate function
+# for it.
+    case "$1" in
+        suspend)
+        screensaver_suspend_loop mate-screensaver-command --poke
+        result=0
+        ;;
+
+        resume)
+        # Automatic resume when $screensaver_file disappears
+        result=0
+        ;;
+
+        activate)
+        mate-screensaver-command --activate > /dev/null 2> /dev/null
+        result=$?
+        ;;
+
+        lock)
+        mate-screensaver-command --lock > /dev/null 2> /dev/null
+        result=$?
+        ;;
+
+        reset)
+        # Turns the screensaver off right now
+        mate-screensaver-command --deactivate > /dev/null 2> /dev/null
+        result=$?
+        ;;
+
+        status)
+        result=0
+        if [ -f "$screensaver_file" ] ; then
+            echo "disabled"
+        elif mate-screensaver-command --query > /dev/null 2> /dev/null; then
+            echo "enabled"
+        else
+            # Something is wrong
+            echo "disabled"
+        fi
+        ;;
+
+        *)
+        echo "ERROR: Unknown command '$1" >&2
+        return 1
+        ;;
+    esac
+}
+
 screensaver_xscreensaver()
 {
     case "$1" in
@@ -918,6 +973,8 @@ detectDE
 xscreensaver-command -version 2> /dev/null | grep XScreenSaver >
/dev/null && DE="xscreensaver"
 # Consider "gnome-screensaver" a separate DE
 gnome-screensaver-command -q > /dev/null 2>&1 && DE="gnome_screensaver"
+# Consider "mate-screensaver" a separate DE
+mate-screensaver-command -q > /dev/null 2>&1 && DE="mate_screensaver"

 if [ "$action" = "resume" ] ; then
     do_resume
-- 
1.8.3.1
_______________________________________________
xdg mailing list
xdg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xdg

Reply via email to