Strano bug di reimpostazione della Dir utente XDG


10

Ho un problema strano con 12.04 LTS.

Indipendentemente da ciò che faccio al ~/.config/user-dirs.dirsfile, ogni volta che accedo nuovamente la volta successiva, quel file viene impostato solo su $ HOME. Sta succedendo qualcosa durante l'accesso usando lightdm che sovrascrive il contenuto di quel file.

Se eseguo il login e faccio un, xdg-user-dirs-update --forceallora il contenuto del file è OK. Dopo il logout, il file è ancora OK. È quando accedo di nuovo usando lightdm che qualcosa va storto.

È abbastanza fastidioso.


Quale ambiente desktop stai usando? Si è verificato un errore qui di recente: bugs.launchpad.net/pcmanfm/+bug/1031463

sto usando il predefinito Unity2D
sybreon

Risposte:


2

Esiste uno script di avvio automatico

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

Che chiama il programma xdg-user-dirs-gtk-update, che sembra non avere alcuna manpagina o --helpspiegazione, ma immagino che potrebbe essere la causa.

Puoi eliminare questo script (che sembra appartenere al pacchetto xdg-user-dirs-gtke può essere ricreato se viene aggiornato), oppure aggiungere una riga Hidden=trueal file di avvio automatico, che dovrebbe impedirne l'esecuzione (e ti verrà chiesto se desideri conservare la tua copia modificata durante eventuali aggiornamenti futuri).


Ho fatto qualcosa di simile, ma ho creato uno script in /etc/X11/Xsession.d/ per sovrascrivere i ripristini XDG.
sybreon,

Il Commentcampo nel mio .desktopfile dice Aggiorna i nomi delle cartelle comuni in modo che corrispondano alle impostazioni internazionali correnti . Ma non ha senso il motivo per cui vorrei cambiare il mio percorso effettivo a seconda delle impostazioni locali; Ho potuto vedere la commutazione della stringa di visualizzazione per quelle cartelle, ma non il percorso del file system stesso.
Palswim

0

Googling il tuo problema mi ha portato a xdg-user-dirs, che può essere installato da Ubuntu Software Center . Afferma la seguente caratteristica:

Questo programma legge un file di configurazione e un set di directory predefinite. Crea quindi versioni localizzate di queste directory nella home directory degli utenti e imposta un file di configurazione in $ (XDG_CONFIG_HOME) /user-dirs.dirs (XDG_CONFIG_HOME predefinito su ~ / .config) che le applicazioni possono leggere per trovare queste directory.

La documentazione completa è disponibile qui .


questa non è la soluzione poiché il problema è che questi file vengono in qualche modo "ripristinati" dopo ogni accesso.
sybreon

0

Suggerisco di controllare i seguenti punti:

  • Prova a verificare se XDG_CONFIG_HOMEè impostato su una posizione diversa come '~ / .config`.
    • a livello di shell
    • attraverso grep XDG_CONFIG_HOME /etc/*profile /etc/*rc ~/.*rc ~/.*profile /etc/X11/Xsession /etc/X11/Xsession.d/*

Come soluzione alternativa utilizzare collegamenti simbolici tra i nomi di directory standard e personalizzati .

per esempio

 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

per il momento, ho una soluzione per forzare le directory usando uno script /etc/X11/Xsession.d/.
sybreon,

0

Le voci verrebbero ripristinate se le directory personalizzate non esistono quando viene eseguito l'aggiornamento. È possibile che la tua home directory non sia montata fino a tardi nella procedura di accesso? Forse puoi impostare i valori predefiniti in /etc/xdg/user-dirs.defaultsmodo che vengano riscritti sugli stessi percorsi comunque?


la directory home dell'utente è un mount glusterfs che viene montato durante l'avvio .. quindi, è disponibile quando l'utente effettua il login.
sybreon

0

Dopo aver apportato le modifiche e aver salvato il file ma prima di accedere nuovamente, eseguire

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

Questo crea directory utente . conf che dovrebbe impedire qualsiasi ulteriore ripristino.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.