Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#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

Haut de page ↑