Usuário estranho XDG Dir reset bug

9

Eu tenho um problema estranho com o 12.04 LTS.

Independentemente do que eu faça para o arquivo ~/.config/user-dirs.dirs , sempre que eu fizer o login novamente na próxima vez, esse arquivo será definido como $ HOME somente. Algo está acontecendo durante o login usando lightdm que substitui o conteúdo desse arquivo.

Se eu fizer login e fizer um xdg-user-dirs-update --force , o conteúdo do arquivo estará OK. Após o logout, o arquivo ainda está OK. É quando eu faço login novamente usando lightdm que algo dá errado.

É muito chato.

    
por sybreon 27.10.2012 / 09:47

5 respostas

2

Existe um script de início automático

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

Que chama o programa xdg-user-dirs-gtk-update , que parece não ter nenhuma explicação man page ou --help , mas acredito que seja a causa.

Você pode excluir esse script (que parece pertencer ao pacote xdg-user-dirs-gtk e pode ser recriado se ele for atualizado) ou adicionar uma linha Hidden=true ao arquivo de autostart, o que deve impedir sua execução (e você deve ser perguntado se deseja manter sua cópia modificada durante futuras atualizações).

    
por chronitis 05.11.2012 / 11:30
0

Pesquisando seu problema no Google, me levou a xdg-user-dirs , que pode ser instalado a partir do Ubuntu Centro de Software . Reivindica o seguinte recurso:

  

Este programa lê um arquivo de configuração e um conjunto de   diretórios. Em seguida, cria versões localizadas desses diretórios   no diretório inicial dos usuários e configura um arquivo de configuração   $ (XDG_CONFIG_HOME) /user-dirs.dirs (o padrão XDG_CONFIG_HOME é   ~ / .config) que os aplicativos podem ler para encontrar esses diretórios.

A documentação completa pode ser encontrada aqui .

    
por Kyle Macey 02.11.2012 / 00:39
0

Sugiro verificar os seguintes pontos:

  • Tente verificar se XDG_CONFIG_HOME está definido para um local diferente como '~ / .config'.
    • no nível do shell
    • via grep XDG_CONFIG_HOME /etc/*profile /etc/*rc ~/.*rc ~/.*profile /etc/X11/Xsession /etc/X11/Xsession.d/*

Como solução alternativa, use links simbólicos entre o padrão e seus nomes de diretório personalizados .

por exemplo,

 cd ${HOME}
 function link() {
 local dir=
 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
    
por H.-Dirk Schmitt 05.11.2012 / 11:51
0

As entradas serão redefinidas se os diretórios personalizados não existirem quando a atualização for executada. É possível que o seu diretório home não esteja montado até o final do processo de login? Talvez você possa definir os padrões em /etc/xdg/user-dirs.defaults para que seja reescrito para os mesmos caminhos de qualquer maneira?

    
por Will Daniels 07.11.2012 / 07:18
0

Depois de fazer as alterações e salvar o arquivo, mas antes de fazer login novamente, execute

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

Isso cria user-dirs . conf que deve impedir qualquer reinicialização adicional.

    
por sinekonata 11.05.2013 / 10:05