--- a/scripts/xdg-desktop-icon +++ b/scripts/xdg-desktop-icon @@ -406,6 +406,7 @@ { if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; 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; --- a/scripts/xdg-desktop-menu +++ b/scripts/xdg-desktop-menu @@ -602,6 +602,7 @@ { if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; 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; --- a/scripts/xdg-email +++ b/scripts/xdg-email @@ -377,6 +377,7 @@ if [ x"$MAILER" != x"" ]; then DE=envvar; elif [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; 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; @@ -512,7 +513,7 @@ local client local desktop desktop=`xdg-mime query default "x-scheme-handler/mailto"` - client=`desktop_file_to_binary "$browser"` + client=`desktop_file_to_binary "$desktop"` echo $client | grep thunderbird > /dev/null 2>&1 if [ $? -eq 0 ] ; then run_thunderbird "$client" "$1" @@ -533,6 +534,31 @@ fi } +open_mate() +{ + local client + local desktop + desktop=`xdg-mime query default "x-scheme-handler/mailto"` + client=`desktop_file_to_binary "$desktop"` + echo $client | grep thunderbird > /dev/null 2>&1 + if [ $? -eq 0 ] ; then + run_thunderbird "$client" "$1" + fi + + if gvfs-open --help 2>/dev/null 1>&2; then + DEBUG 1 "Running gvfs-open \"$1\"" + gvfs-open "$1" + else + DEBUG 1 "Running gnome-open \"$1\"" + mate-open "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} open_xfce() { @@ -803,6 +829,10 @@ open_gnome "${mailto}" ;; + mate) + open_mate "${mailto}" + ;; + xfce) open_xfce "${mailto}" ;; --- a/scripts/xdg-icon-resource +++ b/scripts/xdg-icon-resource @@ -398,6 +398,7 @@ { if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; 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; --- a/scripts/xdg-mime +++ b/scripts/xdg-mime @@ -428,6 +428,7 @@ { if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; 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; @@ -517,6 +518,29 @@ fi } +info_mate() +{ + if gvfs-info --help 2>/dev/null 1>&2; then + DEBUG 1 "Running gvfs-info \"$1\"" + gvfs-info "$1" 2> /dev/null | grep standard::content-type | cut -d' ' -f4 + elif matevfs-info --help 2>/dev/null 1>&2; then + DEBUG 1 "Running gnomevfs-info \"$1\"" + matevfs-info --slow-mime "$1" 2> /dev/null | grep "^MIME" | cut -d ":" -f 2 | sed s/"^ "// + elif mimetype --version >/dev/null 2>&1; then + DEBUG 1 "Running mimetype -b \"$1\"" + mimetype -b "$1" + else + DEBUG 1 "Running file -i \"$1\"" + /usr/bin/file -i "$1" 2> /dev/null | cut -d ":" -f 2 | sed s/"^ "// + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + info_generic() { if mimetype --version >/dev/null 2>&1; then @@ -930,6 +954,10 @@ info_gnome "$filename" ;; + mate) + info_mate "$filename" + ;; + *) info_generic "$filename" ;; --- a/scripts/xdg-open +++ b/scripts/xdg-open @@ -305,6 +305,7 @@ { if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; 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; @@ -371,6 +372,21 @@ fi } +open_mate() +{ + if gvfs-open --help 2>/dev/null 1>&2; then + gvfs-open "$1" + else + mate-open "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + open_xfce() { exo-open "$1" @@ -545,6 +561,10 @@ open_gnome "$url" ;; + mate) + open_mate "$url" + ;; + xfce) open_xfce "$url" ;; --- a/scripts/xdg-screensaver +++ b/scripts/xdg-screensaver @@ -333,6 +333,7 @@ { if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; 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; @@ -428,6 +429,10 @@ screensaver_gnome_screensaver "$1" ;; + mate_screensaver) + screensaver_mate_screensaver "$1" + ;; + xscreensaver) screensaver_xscreensaver "$1" ;; @@ -882,6 +887,59 @@ esac } +screensaver_mate_screensaver() +{ +# DBUS interface for mate-screensaver +# Uses mate-screensaver-command + case "$1" in + suspend) + mate-screensaver-command -q 2>&1 | grep -q 'Screensaver is not running' && mate-screensaver + screensaver_suspend_loop mate-screensaver-command --deactivate 2> /dev/null + result=$? + ;; + + resume) + # Automatic resume when $screensaver_file disappears + mate-screensaver-command -q 2>&1 | grep -q 'Screensaver is not running' && mate-screensaver + mate-screensaver-command --activate 2> /dev/null + result=$? + ;; + + activate) + mate-screensaver-command -q 2>&1 | grep -q 'Screensaver is not running' && mate-screensaver + mate-screensaver-command --activate 2> /dev/null + result=$? + ;; + + lock) + mate-screensaver-command -q 2>&1 | grep -q 'Screensaver is not running' && mate-screensaver + mate-screensaver-command --lock > /dev/null 2> /dev/null + result=$? + ;; + + reset) + # Turns the screensaver off right now + mate-screensaver-command -q 2>&1 | grep -q 'Screensaver is not running' && mate-screensaver + mate-screensaver-command --poke > /dev/null 2> /dev/null + result=$? + ;; + + status) + status=`mate-screensaver-command -q 2>&1 | head -1 | sed 's/.* //'` + if [ x"$status" = "active" -o x"$status" = "inactive" ]; then + echo "enabled" + else + echo "disabled" + fi + ;; + + *) + echo "ERROR: Unknown command '$1" >&2 + return 1 + ;; + esac +} + screensaver_xscreensaver() { case "$1" in @@ -985,6 +1043,8 @@ 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" +# Look for mate-screensaver-command +mate-screensaver-command -q > /dev/null 2>&1 && DE="mate_screensaver" if [ "$action" = "resume" ] ; then do_resume --- a/scripts/xdg-settings +++ b/scripts/xdg-settings @@ -313,11 +313,16 @@ { if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; 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 + + if [ x"$DE" = x"mate" ]; then DE=gnome + fi + # mate pretends to be gnome -- gnome settings work for mate here } #----------------------------------------------------------------------------