Error extraño de reinicio de Dir de usuario XDG

10

Tengo un problema extraño con 12.04 LTS.

Independientemente de lo que le haga al ~/.config/user-dirs.dirsarchivo, cada vez que inicie sesión nuevamente la próxima vez, ese archivo se configurará solo en $ HOME. Algo está sucediendo durante el inicio de sesión con lightdm que anula el contenido de ese archivo.

Si inicio sesión y hago una, xdg-user-dirs-update --forceentonces el contenido del archivo está bien. Después de cerrar sesión, el archivo todavía está bien. Cuando vuelvo a iniciar sesión con lightdm, algo sale mal.

Es bastante molesto.

sybreon
fuente
¿Qué entorno de escritorio estás usando? Hubo un error aquí recientemente: bugs.launchpad.net/pcmanfm/+bug/1031463
Estoy usando el Unity2D predeterminado
sybreon

Respuestas:

2

Existe un script de inicio automático

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

Que llama al programa xdg-user-dirs-gtk-update, que parece no tener manpágina o --helpexplicación, pero supongo que podría ser la causa.

Puede eliminar este script (que parece pertenecer al paquete xdg-user-dirs-gtk, y puede volver a crearse si se actualiza), o agregar una línea Hidden=trueal archivo de inicio automático, lo que debería evitar que se ejecute (y se le debe preguntar si desea mantener su copia modificada durante cualquier actualización futura).

cronitis
fuente
Hice algo similar, pero creé un script en /etc/X11/Xsession.d/ para sobrescribir los reinicios de XDG.
sybreon el
El Commentcampo en mi .desktoparchivo dice Actualizar nombres de carpetas comunes para que coincidan con la configuración regional actual . Pero eso no tiene sentido por qué me gustaría cambiar mi ruta real dependiendo de la configuración regional; Pude ver cambiar la cadena de visualización para esas carpetas, pero no la ruta del sistema de archivos en sí.
palswim
0

Buscar en Google su problema me llevó a xdg-user-dirs, que puede instalarse desde el Centro de software de Ubuntu . Reclama la siguiente característica:

Este programa lee un archivo de configuración y un conjunto de directorios predeterminados. Luego crea versiones localizadas de estos directorios en el directorio de inicio de los usuarios y configura un archivo de configuración en $ (XDG_CONFIG_HOME) /user-dirs.dirs (XDG_CONFIG_HOME por defecto es ~ / .config) que las aplicaciones pueden leer para encontrar estos directorios.

La documentación completa se puede encontrar aquí .

Kyle Macey
fuente
esa no es la solución, ya que el problema es que estos archivos se 'restablecen' de alguna manera después de cada inicio de sesión.
sybreon el
0

Sugiero verificar los siguientes puntos:

  • Intente verificar si XDG_CONFIG_HOMEestá configurado en una ubicación diferente como '~ / .config`.
    • a nivel de la carcasa
    • vía grep XDG_CONFIG_HOME /etc/*profile /etc/*rc ~/.*rc ~/.*profile /etc/X11/Xsession /etc/X11/Xsession.d/*

Como solución alternativa, utilice enlaces simbólicos entre el estándar y sus nombres de directorio personalizados .

p.ej

 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
fuente
por el momento, tengo una solución alternativa para forzar los directorios usando un script /etc/X11/Xsession.d/.
sybreon
0

Las entradas se restablecerían si los directorios personalizados no existen cuando se ejecuta la actualización. ¿Es posible que su directorio de inicio no esté montado hasta tarde en el proceso de inicio de sesión? ¿Quizás pueda establecer los valores predeterminados /etc/xdg/user-dirs.defaultspara que se reescriba en los mismos caminos de todos modos?

Will Daniels
fuente
el directorio de inicio del usuario es un soporte de GlusterFS que se monta durante el arranque .. así, está disponible cuando el usuario inicia sesión.
sybreon
0

Después de realizar los cambios y guardar el archivo, pero antes de volver a iniciar sesión, ejecute

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

Esto crea directorios de usuario . conf que debería evitar cualquier reinicio adicional.

sinekonata
fuente