web-dev-qa-db-fra.com

Weird XDG User Dir réinitialisant le bogue

J'ai un problème étrange avec 12.04 LTS.

Indépendamment de ce que je fais dans le fichier ~/.config/user-dirs.dirs, chaque fois que je me connecte à nouveau la prochaine fois, ce fichier est uniquement défini sur $ HOME. Quelque chose se passe lors de la connexion en utilisant lightdm qui remplace le contenu de ce fichier.

Si je me connecte et fais un xdg-user-dirs-update --force alors le contenu du fichier est OK. Après ma déconnexion, le fichier est toujours OK. C'est lorsque je me connecte à nouveau avec lightdm que quelque chose ne va pas.

C'est assez énervant.

10
sybreon

Il existe un script de démarrage automatique

/etc/xdg/autostart/user-dirs-update-gtk.desktop

Ce qui appelle le programme xdg-user-dirs-gtk-update, qui ne semble pas avoir d'explication man ou --help, mais je suppose que la cause pourrait en être la cause.

Vous pouvez soit supprimer ce script (qui semble appartenir au package xdg-user-dirs-gtk, et peut être recréé s’il est mis à jour), soit ajouter une ligne Hidden=true au fichier de démarrage automatique, ce qui devrait l’empêcher de s'exécuter ( et on vous demandera si vous souhaitez conserver votre copie modifiée lors de futures mises à jour).

2
chronitis

Googler votre problème m'a conduit à xdg-user-dirs, qui peut être installé à partir de Centre de logiciel Ubunt. Il revendique la fonctionnalité suivante:

Ce programme lit un fichier de configuration et un ensemble de répertoires par défaut. Il crée ensuite des versions localisées de ces répertoires dans le répertoire de base des utilisateurs et configure un fichier de configuration sous $ (XDG_CONFIG_HOME) /user-dirs.dirs (XDG_CONFIG_HOME par défaut à ~/.config) que les applications peuvent lire pour rechercher ces répertoires.

La documentation complète peut être trouvée ici .

0
Kyle Macey

Je suggère de vérifier les points suivants:

  • Essayez de vérifier si XDG_CONFIG_HOME est réglé sur un autre emplacement, sous le nom '~/.config`.
    • au niveau de la coquille
    • via grep XDG_CONFIG_HOME /etc/*profile /etc/*rc ~/.*rc ~/.*profile /etc/X11/Xsession /etc/X11/Xsession.d/*

Pour contourner le problème, utilisez des liens symboliques entre les noms de répertoires standard et vos custom.

par exemple.

 cd ${HOME}
 function link() {
 local dir=$1
 shift 1
 [ -e ${dir} ] || mkdir -p ${dir}
 for name in $*
 do
 if [ -L ${name} ]
 then
 if [ "$(readlink ${name})" = "${dir}" ]
 then
 [ -e  "${dir}" ] || mkdir -p "${dir}"
 echo "${name} allready converted to ${dir}"
 else
 echo "${name} (link) converted to ${dir}"
 [ -e  "${dir}" ] || mkdir -p "${dir}"
 mv -av ${name}/* ${dir}/ 2>/dev/null    || true # can be emtpy
 mv -av ${name}/.??* ${dir}/ 2>/dev/null || true # can be emtpy
 rm -f ${name}
 ln -svf ${dir} ${name}
 fi
 else
 if [ -d ${name} ]
 then
 mv -av ${name}/* ${dir}/ 2>/dev/null    || true # can be emtpy
 mv -av ${name}/.??* ${dir}/ 2>/dev/null || true # can be emtpy
 rmdir ${name}
 ln -sv ${dir} ${name};
 echo "${name} (dir) converted to ${dir}"
 else
 ln -sv ${dir} ${name};
 echo "${name} linked to ${dir}"
 fi
 fi
 done

 }


 #     real                DE          EN
 link  ~/data/templates    Vorlagen    Templates
 link  ~/data/public       Öffentlich  Public
 link  ~/data/documents    Dokumente   Documents
 link  ~/data/music        Musik       Music
 link  ~/data/photo        Bilder      Pictures
 link  ~/data/video        Videos
 link  ~/data/privat       Privat
0
H.-Dirk Schmitt

Les entrées seraient réinitialisées si les répertoires personnalisés n'existent pas lors de l'exécution de la mise à jour. Est-il possible que votre répertoire personnel ne soit pas monté avant la fin du processus de connexion? Peut-être que vous pouvez définir les valeurs par défaut dans /etc/xdg/user-dirs.defaults pour qu'il soit réécrit dans les mêmes chemins?

0
Will Daniels

Après avoir apporté les modifications et enregistré le fichier mais avant de vous reconnecter, exécutez

echo "enabled=false" > ~/.config/user-dirs.conf

Ceci crée répertoires utilisateur . conf cela devrait empêcher toute nouvelle réinitialisation.

0
sinekonata