Dziwny błąd resetowania katalogu użytkownika XDG

10

Mam dziwny problem z 12,04 LTS.

Niezależnie od tego, co zrobię z ~/.config/user-dirs.dirsplikiem, za każdym razem, gdy loguję się następnym razem, plik ten ustawiany jest tylko na $ HOME. Podczas logowania za pomocą lightdm dzieje się coś, co przesłania zawartość tego pliku.

Jeśli się zaloguję i zrobię xdg-user-dirs-update --forcea, zawartość pliku będzie w porządku. Po wylogowaniu plik jest nadal OK. Kiedy loguję się ponownie przy użyciu lightdm, coś idzie nie tak.

To dość denerwujące.

sybreon
źródło
Z jakiego środowiska pulpitu korzystasz? Niedawno pojawił się
Używam domyślnego Unity2D
sybreon

Odpowiedzi:

2

Istnieje skrypt autostartu

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

Który wywołuje program xdg-user-dirs-gtk-update, który wydaje się nie mieć manstrony ani --helpwyjaśnienia, ale zgaduję, że może być przyczyną.

Możesz albo usunąć ten skrypt (który wydaje się należeć do pakietu xdg-user-dirs-gtki może zostać ponownie utworzony, jeśli zostanie zaktualizowany), lub dodać wiersz Hidden=truedo pliku autostartu, co powinno uniemożliwić jego uruchomienie (i powinieneś zostać zapytany, czy chcesz zachować zmodyfikowana kopia podczas przyszłych aktualizacji).

chronitis
źródło
Zrobiłem coś podobnego, ale utworzyłem skrypt w /etc/X11/Xsession.d/, aby zastąpić resety XDG.
sybreon
CommentPole w moim .desktoppliku mówi Aktualizuj foldery nazwy zwyczajowe dopasować bieżące locale . Ale to nie ma sensu, dlaczego chciałbym zmienić swoją rzeczywistą ścieżkę w zależności od lokalizacji; Widziałem przełączanie łańcucha wyświetlania dla tych folderów, ale nie samą ścieżkę systemu plików.
palswim
0

Googlowanie twojego problemu doprowadziło mnie do tego xdg-user-dirs, że może być zainstalowany z Centrum Oprogramowania Ubuntu . Twierdzi, że następująca funkcja:

Ten program odczytuje plik konfiguracyjny i zestaw domyślnych katalogów. Następnie tworzy zlokalizowane wersje tych katalogów w katalogu osobistym użytkowników i konfiguruje plik konfiguracyjny w $ (XDG_CONFIG_HOME) /user-dirs.dirs (XDG_CONFIG_HOME domyślnie to ~ / .config), które aplikacje mogą odczytać, aby znaleźć te katalogi.

Pełna dokumentacja znajduje się tutaj .

Kyle Macey
źródło
nie jest to rozwiązanie, ponieważ problemem jest to, że te pliki są w jakiś sposób „resetowane” po każdym logowaniu.
sybreon
0

Proponuję sprawdzić następujące punkty:

  • Spróbuj sprawdzić, czy XDG_CONFIG_HOMEustawiono inną lokalizację jako „~ / .config”.
    • na poziomie muszli
    • przez grep XDG_CONFIG_HOME /etc/*profile /etc/*rc ~/.*rc ~/.*profile /etc/X11/Xsession /etc/X11/Xsession.d/*

Jako obejście należy użyć dowiązań symbolicznych między standardową a niestandardową nazwą katalogu.

na przykład

 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
H.-Dirk Schmitt
źródło
na razie mam obejście, aby wymusić katalogi za pomocą skryptu /etc/X11/Xsession.d/.
sybreon,
0

Wpisy zostaną zresetowane, jeśli niestandardowe katalogi nie będą istnieć podczas aktualizacji. Czy to możliwe, że katalog domowy nie zostanie zamontowany do późnej fazy logowania? Może możesz ustawić wartości domyślne, /etc/xdg/user-dirs.defaultsaby i tak zostały przepisane na te same ścieżki?

Will Daniels
źródło
katalog domowy użytkownika jest montowaniem glusterfs, które jest montowane podczas rozruchu .. więc jest dostępne, gdy użytkownik się zaloguje.
sybreon
0

Po wprowadzeniu zmian i zapisaniu pliku, ale przed ponownym zalogowaniem, uruchom

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

To tworzy katalog użytkowników . conf, który powinien zapobiec dalszemu resetowaniu.

sinekonata
źródło