Weird XDG User Dir Fehler beim Zurücksetzen


10

Ich habe ein seltsames Problem mit 12.04 LTS.

Unabhängig davon, was ich mit der ~/.config/user-dirs.dirsDatei mache , wird diese Datei bei jeder erneuten Anmeldung beim nächsten Mal nur auf $ HOME gesetzt. Während der Anmeldung mit lightdm passiert etwas, das den Inhalt dieser Datei überschreibt.

Wenn ich mich anmelde und a mache, xdg-user-dirs-update --forceist der Inhalt der Datei in Ordnung. Nach dem Abmelden ist die Datei noch in Ordnung. Wenn ich mich erneut mit lightdm anmelde, geht etwas schief.

Es ist ziemlich nervig.


Welche Desktop-Umgebung verwenden Sie? Vor

Ich verwende die Standardeinstellung Unity2D
Sybreon

Antworten:


2

Es gibt ein Autostart-Skript

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

Was das Programm aufruft xdg-user-dirs-gtk-update, das anscheinend keine manSeite oder --helpErklärung hat, aber ich vermute, könnte die Ursache sein.

Sie können dieses Skript entweder löschen (das zum Paket zu gehören scheint xdg-user-dirs-gtkund bei einer Aktualisierung möglicherweise neu erstellt wird) oder Hidden=trueder Autostart-Datei eine Zeile hinzufügen , die die Ausführung verhindern soll (und Sie sollten gefragt werden, ob Sie es behalten möchten Ihre geänderte Kopie bei zukünftigen Updates).


Ich habe etwas Ähnliches gemacht, aber in /etc/X11/Xsession.d/ ein Skript erstellt, um die XDG-Resets zu überschreiben.
Sybreon

Das CommentFeld in meiner .desktopDatei lautet " Allgemeine Ordnernamen aktualisieren", um sie an das aktuelle Gebietsschema anzupassen . Aber das macht keinen Sinn, warum ich meinen tatsächlichen Pfad je nach Gebietsschema ändern möchte. Ich konnte sehen, wie die Anzeigezeichenfolge für diese Ordner geändert wurde, aber nicht den Dateisystempfad selbst.
Palswim

0

Das Googeln Ihres Problems führte mich zu xdg-user-dirs, das möglicherweise vom Ubuntu Software Center installiert wird . Es beansprucht das folgende Merkmal:

Dieses Programm liest eine Konfigurationsdatei und eine Reihe von Standardverzeichnissen. Anschließend werden lokalisierte Versionen dieser Verzeichnisse im Basisverzeichnis des Benutzers erstellt und eine Konfigurationsdatei in $ (XDG_CONFIG_HOME) /user-dirs.dirs (XDG_CONFIG_HOME standardmäßig ~ / .config) eingerichtet, die Anwendungen lesen können, um diese Verzeichnisse zu finden.

Die vollständige Dokumentation finden Sie hier .


Dies ist nicht die Lösung, da das Problem darin besteht, dass diese Dateien nach jedem Login irgendwie zurückgesetzt werden.
Sybreon

0

Ich schlage vor, folgende Punkte zu überprüfen:

  • Versuchen Sie zu überprüfen, ob XDG_CONFIG_HOMEein anderer Speicherort als '~ / .config` festgelegt ist.
    • auf Shell-Ebene
    • über grep XDG_CONFIG_HOME /etc/*profile /etc/*rc ~/.*rc ~/.*profile /etc/X11/Xsession /etc/X11/Xsession.d/*

Verwenden Sie zur Umgehung dieses Problems symbolische Verknüpfungen zwischen dem Standard und Ihren benutzerdefinierten Verzeichnisnamen.

z.B

 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

Im Moment habe ich eine Problemumgehung, um die Verzeichnisse mit einem Skript /etc/X11/Xsession.d/ zu erzwingen.
Sybreon

0

Die Einträge werden zurückgesetzt, wenn die benutzerdefinierten Verzeichnisse beim Ausführen des Updates nicht vorhanden sind. Ist es möglich, dass Ihr Home-Verzeichnis erst spät im Anmeldevorgang bereitgestellt wird? Vielleicht können Sie die Standardeinstellungen /etc/xdg/user-dirs.defaultsso einstellen , dass sie trotzdem auf die gleichen Pfade umgeschrieben werden?


Das Benutzer-Home-Verzeichnis ist ein Glusterfs-Mount, der während des Startvorgangs bereitgestellt wird. Es ist also verfügbar, wenn sich der Benutzer anmeldet.
Sybreon

0

Nachdem Sie die Änderungen vorgenommen und die Datei gespeichert haben, aber bevor Sie sich wieder anmelden, führen Sie sie aus

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

Dadurch werden Benutzerverzeichnisse erstellt . conf das sollte ein weiteres Zurücksetzen verhindern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.