Contenu | Rechercher | Menus

Annonce

Le forum a une nouvelle maison !
Le forum a été migré sur un nouvel hébergement. Si jamais vous trouvez le moindre problème, n'hésitez pas à nous en faire part !
L'équipe de modération vous présente ses meilleurs vœux pour l'année 2016.
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".

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

PauseKawa
Membre

[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, à 10: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, à 14:22

Wapush_HL
Invité

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, à 19:56

PauseKawa
Membre

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, à 10:56

PauseKawa
Membre

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