sábado, 12 de mayo de 2012

Cómo cambiar la imagen de fondo de LightDM en Ubuntu 12.04

Con Simple LightDM Manager, en Ubuntu Oneiric, podíamos personalizar el logo y la imagen de fondo de LightDM. Sin embargo, la configuración del gestor de sesiones ha cambiado y ya no se realiza a través de un fichero (el archivo /etc/lightdm/unity-greeter.conf ha desaparecido), sino a través de dconf. De todas formas, en el fichero /etc/lightdm/lightdm.conf se siguen modificando algunos parámetros del programa (como la sesión gráfica por defecto o si se muestra la lista de usuarios, por ejemplo).

Para empezar, vamos a escoger una imagen adecuada a la resolución de nuestro monitor. Un buen sitio para elegir es Gnome-Look. En la sección de wallpapers hay una amplia selección donde, en cada imagen, viene documentada la resolución y la licencia de uso. En mi caso, me he decantado por Ovalized Wallpaper. Tras descargarla, la he copiado en el directorio /usr/share/backgrounds/ con el nombre lightdm-wallpaper.jpg (con el usuario root).

La posición de la caja para la elección de usuario de la máquina no se puede modificar, por lo que es mejor que no haya nada significativo en la imagen que escojamos para el fondo en dicha área. Como tampoco se puede cambiar la posición del logotipo que aparece abajo a la izquierda. Así que, si también queremos modificarlo, será mejor hacer uno de unas dimensiones parecidas al original (/usr/share/unity-greeter/logo.png).

Vamos a cambiar 2 propiedades de la configuración gráfica de LightDM: la imagen de fondo y quitar la malla (grid) que se dibuja por defecto. Estas propiedades se cambian en el esquema com.canonical.unity-greeter de dconf. Se podrían cambiar a través de la utilidad dconf-editor (que habría que instalar porque no viene por defecto), pero teniendo en cuenta que deberíamos hacerlo con el usuario lightdm. No serviría modificarlas con nuestro propio usuario, ya que LightDM se ejecuta con su propio usuario y hace sólo caso a los valores de su configuración.

Voy a explicar entonces un método alternativo y en el que sólo es necesario un intérprete de comandos y un editor de texto. La receta consiste en modificar globalmente las propiedades (a nivel de sistema) para que aplique a todos los usuarios de la máquina. Además, las voy a bloquear para que ningún usuario pueda sobreescribir estos valores. La explicación teórica del proceso se puede encontrar en la página dconf System Administrator Guide.

Debo decir que el nuevo sistema de configuración de Gnome 3 es bastante más sencillo de modificar para los administradores que el anterior (basado en GConf en Gnome 2). La mala noticia es que todavía hay bastantes aplicaciones de Gnome que siguen con GConf, en lugar de utilizar el nuevo sistema.

En primer lugar, vamos a crear la estructura de directorios necesaria. Como vamos a necesitar escribir en /etc, deberemos hacerlo como root:


$ sudo su
# mkdir -p /etc/dconf/db/local.d /etc/dconf/db/local.d/locks /etc/dconf/profile

Después, vamos a crear los ficheros de configuración.

En el archivo /etc/dconf/db/local.d/light.conf establecemos los nuevos valores de las propiedades:


[com/canonical/unity-greeter]
background='/usr/share/backgrounds/lightdm-wallpaper.jpg'
draw-grid=false

En el fichero /etc/dconf/db/local.d/locks/lightdm, le decimos al sistema dconf qué propiedades están bloqueadas para que no puedan modificarlas los usuarios:


/com/canonical/unity-greeter/background
/com/canonical/unity-greeter/draw-grid

Por último, crearemos el fichero /etc/dconf/profile/user para especificar la prioridad de las bases de datos de dconf.


user-db:user
system-db:local

Sólo falta ejecutar el comando dconf update (como root) para que el sistema dconf rehaga las bases de datos y se apliquen los cambios.

Y eso es todo. Este mismo método de cambio de propiedades sirve para el resto de esquemas disponibles en dconf.

2 comentarios:

Gustavo Fiorentini dijo...

Hola. Muy interesante tu artículo.
He seguido tus instrucciones, pero debo haber hecho algo mal, porque al terminar el proceso, reinicié mi portátil para ver el resultado y ya no cargó la interfaz gráfica. El único modo que se me ocurrió fue entrar a una consola y desinstalar dconf y borrar los archivos que había creado en los directorios que se indican.
Por suerte eso funcionó, sólo que me indica muchos mensajes de error y programas que fallan (zenity, unity-greeter y algún otro).
Qué puede haber pasado?
Si puedes aportarme algo, te estaría muy agradecido.
Felicidades en estas fiestas y feliz 2013.

jact dijo...

Gracias, Gustavo, por tu comentario.

No sé qué pudo ocurrirte, ya que no señalas los errores por los que no volvió a cargar la interfaz gráfica tras hacer los cambios del artículo.

Desinstalar completamente dconf no creo que haya sido una buena idea ya que muchas aplicaciones basadas en Gnome hacen uso de él para guardar y leer propiedades de configuración. Te recomiendo que lo instales de nuevo y que sólo borres los archivos de configuración que menciono en el artículo. De esta forma también podrás averiguar si tus errores se han producido por estos últimos cambios o tienen que ver con otras cosas.

Feliz año para ti también.