[Portland-bugs] [Bug 19011] xdg-desktop-icon (v1.0.2) does not use localized desktop folder name under GNOME

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Dec 20 08:39:50 PST 2008


http://bugs.freedesktop.org/show_bug.cgi?id=19011





--- Comment #6 from Florian Höch <florian.hoech at gmx.de>  2008-12-20 08:39:49 PST ---
(From update of attachment 21029)
I've updated the patch because there was still a problem on some systems (Error
"source: not found").
Also, I've added support for kde4 and spaces in desktop directory and file
names should now also work.
I can confirm this patch is working on atleast three distributions (tested by
another user on fedora 9 livecd with norwegian gnome and ubuntu 8.10 with
norwegian gnome, and tested by me on german opensuse 11 with kde4 and gnome and
desktop directory renamed to "Schreibtisch")

--- xdg-desktop-icon.bak        Sun Jun 24 20:57:56 2007
+++ xdg-desktop-icon    Sat Dec 20 02:07:42 2008
@@ -495,50 +495,71 @@
 esac

 my_umask=077
-desktop_dir="$HOME/Desktop"
+# Is xdg-user-dirs present and enabled ?
+if ( [ -e ${XDG_CONFIG_HOME:-~/.config}/user-dirs.conf ] && cat
${XDG_CONFIG_HOME:-~/.config}/user-dirs.conf || ( [ -e /etc/xdg/user-dirs.conf
] && cat /etc/xdg/user-dirs.conf ) ) | grep enabled=True > /dev/null; then
+    DESKTOP=Desktop
+    # Try to get global defaults
+    [ -f /etc/xdg/user-dirs.defaults ] && . /etc/xdg/user-dirs.defaults
+    # Try to get user-defined settings
+    [ -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs ] && .
${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs
+    desktop_dir=${XDG_DESKTOP_DIR:-$HOME/$DESKTOP}
+else
+    desktop_dir="$HOME/Desktop"
+fi
 desktop_dir_kde=`kde-config --userpath desktop 2> /dev/null`
+desktop_dir_kde4=`kde4-config --userpath desktop 2> /dev/null`
 if gconftool-2 -g /apps/nautilus/preferences/desktop_is_home_dir 2> /dev/null
| grep true > /dev/null; then
     desktop_dir_gnome="$HOME"
     # Don't create $HOME/Desktop if it doesn't exist
-    [ -w $desktop_dir ] || desktop_dir=
+    [ -w "$desktop_dir" ] || desktop_dir=
 fi
-if [ -n "$desktop_dir_kde" ]; then
-    if [ ! -d "$desktop_dir_kde" ]; then
-        save_umask=`umask`
-        umask $my_umask
-        mkdir -p $desktop_dir_kde
-        umask $save_umask
-    fi
-    # Is the KDE desktop dir != $HOME/Desktop ?
-    if [ x`readlink -f "$desktop_dir"` != x`readlink -f "$desktop_dir_kde"` ];
then
-        # If so, don't create $HOME/Desktop if it doesn't exist
-        [ -w $desktop_dir ] || desktop_dir=
-    else
-        desktop_dir_kde=
+for x in "$desktop_dir_kde" "$desktop_dir_kde4" ; do
+    if [ -n "$x" ]; then
+        if [ ! -d "$x" ]; then
+            save_umask=`umask`
+            umask $my_umask
+            mkdir -p "$x"
+            umask $save_umask
+        fi
+        # Is the KDE desktop dir != $desktop_dir ?
+        if [ x"`readlink -f "$desktop_dir"`" != x"`readlink -f "$x"`" ]; then
+            # If so, don't create $desktop_dir if it doesn't exist
+            [ -w "$desktop_dir" ] || desktop_dir=
+        else
+            if [ "$x" = "$desktop_dir_kde" ]; then
+                desktop_dir_kde=
+            fi
+            if [ "$x" = "$desktop_dir_kde4" ]; then
+                desktop_dir_kde4=
+            fi
+        fi
     fi
-fi
-desktop_dir="$desktop_dir $desktop_dir_kde $desktop_dir_gnome"
+done

-basefile=`basename $desktop_file`
+basefile=`basename "$desktop_file"`

-DEBUG 1 "$action $desktop_file in $desktop_dir"
+DEBUG 1 "$action $desktop_file in $desktop_dir $desktop_dir_kde
$desktop_dir_kde4 $desktop_dir_gnome"

 case $action in
     install)
         save_umask=`umask`
         umask $my_umask

-        for x in $desktop_dir ; do
-            mkdir -p $x
-            eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output
+        for x in "$desktop_dir" "$desktop_dir_kde" "$desktop_dir_kde4"
"$desktop_dir_gnome" ; do
+            if [ -n "$x" ]; then
+                mkdir -p "$x"
+                eval 'cp "$desktop_file" "$x/$basefile"'$xdg_redirect_output
+            fi
         done

         umask $save_umask
         ;;

     uninstall)
-        for x in $desktop_dir ; do
-            rm -f $x/$basefile
+        for x in "$desktop_dir" "$desktop_dir_kde" "$desktop_dir_kde4"
"$desktop_dir_gnome" ; do
+            if [ -n "$x" ]; then
+                rm -f "$x/$basefile"
+            fi
         done

         ;;


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Portland-bugs mailing list