Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/06/2008, à 15:03

PauseKawa

[Résolu] XDG_DESKTOP_DIR sous Xubuntu

Bonjour,

La modification de XDG_DESKTOP_DIR ne semble pas prise en compte sous Xubuntu.

Avez vous des information sur le sujet ?

Merci d'avance.

Dernière modification par PauseKawa (Le 06/07/2008, à 11:56)


L'informatique c'est écologique. Un exemple : Je commande sur internet le dernier calendrier Pirelli. Résultat ? J'ai économisé mes pneus, mon essence, et je n'ai pas émis de gaz si néfaste pour notre planète. Et de toute manière, le facteur serait quand même passé pour m'amener mes factures.

Hors ligne

#2 Le 09/06/2008, à 15:22

Wapush_HL

Re : [Résolu] XDG_DESKTOP_DIR sous Xubuntu

Salut

http://bugzilla.xfce.org/show_bug.cgi?id=4062

Donc non, XDG_DESKTOP_DIR n'est pas pris en compte pour l'instant.

#3 Le 09/06/2008, à 20:56

PauseKawa

Re : [Résolu] XDG_DESKTOP_DIR sous Xubuntu

Problématique pour la suite de la mise en 100% fr de Xubuntu...
J'avais bien noter la non prise en compte au niveau du live et de l'installation mais la c'est l'impasse.

Une idée ?

Par contre je (re)prend note > Rechercher a la source avant de poster roll


L'informatique c'est écologique. Un exemple : Je commande sur internet le dernier calendrier Pirelli. Résultat ? J'ai économisé mes pneus, mon essence, et je n'ai pas émis de gaz si néfaste pour notre planète. Et de toute manière, le facteur serait quand même passé pour m'amener mes factures.

Hors ligne

#4 Le 06/07/2008, à 11:56

PauseKawa

Re : [Résolu] XDG_DESKTOP_DIR sous Xubuntu

Résolu :

Soit patcher les sources avec

diff -Naur xfdesktop-4.4.2/src/xfce-desktop.c xfdesktop-4.4.2.tpg/src/xfce-desktop.c
--- xfdesktop-4.4.2/src/xfce-desktop.c    2007-11-17 19:31:41.000000000 +0000
+++ xfdesktop-4.4.2.tpg/src/xfce-desktop.c    2008-05-05 12:07:03.000000000 +0000
@@ -150,6 +150,93 @@
     return desktop->priv->system_font_size;
 }
 
+/* Use XDG_DESKTOP_DIR */
+static char *
+lookup_desktop_dir (void)
+{
+  FILE *file;
+  char *config_file;
+  char buffer[512];
+  char *user_dir;
+  char *p, *d;
+  int len;
+  int relative;
+  
+  config_file = g_build_filename (g_get_user_config_dir (), "user-dirs.dirs", NULL);
+  file = fopen (config_file, "r");
+  free (config_file);
+  if (file == NULL)
+    goto error;
+  
+  user_dir = NULL;
+  while (fgets (buffer, sizeof (buffer), file))
+    {
+      /* Remove newline at end */
+      len = strlen (buffer);
+      if (len > 0 && buffer[len-1] == '\n')
+    buffer[len-1] = 0;
+      
+      p = buffer;
+      while (*p == ' ' || *p == '\t')
+    p++;
+      
+      if (!g_str_has_prefix (p, "XDG_DESKTOP_DIR"))
+    continue;
+      p += strlen ("XDG_DESKTOP_DIR");
+      
+      while (*p == ' ' || *p == '\t')
+    p++;
+      
+      if (*p != '=')
+    continue;
+      p++;
+      
+      while (*p == ' ' || *p == '\t')
+    p++;
+      
+      if (*p != '"')
+    continue;
+      p++;
+      
+      relative = 0;
+      if (strncmp (p, "$HOME/", 6) == 0)
+    {
+      p += 6;
+      relative = 1;
+    }
+      else if (*p != '/')
+    continue;
+      
+      if (relative)
+    {
+      user_dir = g_malloc (strlen (g_get_home_dir()) + 1 + strlen (p) + 1);
+      strcpy (user_dir, g_get_home_dir ());
+      strcat (user_dir, "/");
+    }
+      else
+    {
+      user_dir = g_malloc (strlen (p) + 1);
+      *user_dir = 0;
+    }
+      
+      d = user_dir + strlen (user_dir);
+      while (*p && *p != '"')
+    {
+      if ((*p == '\\') && (*(p+1) != 0))
+        p++;
+      *d++ = *p++;
+    }
+      *d = 0;
+    }  
+  fclose (file);
+ 
+  if (user_dir)
+    return user_dir;
+  
+ error:
+  return g_build_filename (g_get_home_dir (), "Desktop", NULL);
+}
+
 static void
 xfce_desktop_setup_icon_view(XfceDesktop *desktop)
 {
@@ -168,8 +255,7 @@
         case XFCE_DESKTOP_ICON_STYLE_FILES:
             {
                 ThunarVfsPath *path;
-                gchar *desktop_path = xfce_get_homefile("Desktop",
-                                                        NULL);
+                gchar *desktop_path = lookup_desktop_dir ();
                 
                 path = thunar_vfs_path_new(desktop_path, NULL);
                 if(path) {

Soit attendre la 4.6


L'informatique c'est écologique. Un exemple : Je commande sur internet le dernier calendrier Pirelli. Résultat ? J'ai économisé mes pneus, mon essence, et je n'ai pas émis de gaz si néfaste pour notre planète. Et de toute manière, le facteur serait quand même passé pour m'amener mes factures.

Hors ligne