En este nuevo artículo presentaré otros aspectos sobre la configuración del Gnome Display Manager que no fueron tratados en el artículo sobre el cambio del fondo de pantalla.
Configuración usando el dconf
Antes que nada explicaré un poco el sistema dconf. Si no estás interesado en saber que es dconf y sólo quieres ver como cambiar la configuración del GDM, te puedes saltar esta sección e ir directamente a la Configuración del GDM. ¿Qué es dconf?
Dconf es un sistema de configuración de bajo nivel y una herramienta de administración de configuraciones. Cuyo principal propósito es proporcionar un back-end para GSettings en plataformas que aún no tienen sistemas de almacenamiento de configuración. Forma parte de GNOME 3.
Una base de datos de dconf consiste en un único fichero en formato binario. El formato en el que se almacenan los datos se llama gvdb (archivo de base de datos GVariant). Es un formato altamente optimizado para realizar lecturas, ya que una secuencia de entrada en el sistema (login) en GNOME 3 consta, literalmente, de miles de lecturas y 0 escrituras. Por tanto, el formato gvdb es un formato simple que almacena un mapeo de cadenas a valores GVariant de una manera que es extremadamente eficiente para búsquedas.
GVariant, por otro lado, es un tipo de datos fuertemente tipado. En programación, un lenguaje fuertemente tipado es aquel que no permite violación de los tipos de datos, es decir, que si se ha definido una variable con un tipo específico, por ejemplo, un número entero, no se puede utilizar para almacenar otro tipo de valor que no sea el definido a menos que se haga una conversión de ese valor en el momento de la asignación.
GVariant es un tipo de datos variable que pueden contener uno o más valores junto con información sobre el tipo al que pertenecen esos valores. Por ejemplo, una GVariant puede contener tipos simples, como números enteros o valores booleanos; o tipos complejos, como una matriz de dos cadenas o un diccionario de pares clave-valor.
GVariant también es inmutable: una vez que se ha creado, ni su tipo ni su contenido se pueden modificar más.
GVariant es útil siempre que sea necesario serializar datos, por ejemplo, cuando se envían parámetros de métodos en DBus o cuando se guardan configuraciones mediante GSettings.
GSettings es una clase que proporciona una API de alto nivel para que una aplicación almacene y recupere su propia configuración.
Configuración del GDM
¿A qué vino todo el rollo teórico anterior? Pues a que algunos aspectos de la configuración de GDM están almacenados en la base de datos de dconf.
La configuración de dconf se puede hacer de dos maneras. Una sería añadiendo ficheros con claves de configuración en el directorio /etc/dconf/db/gdm.d y luego recompilando la base de datos de GDM usando dconf-update como superusuario.
La segunda sería entrando en el sistema con el usuario GDM y actualizando la configuración usando el comando gsettings. Para poder hacer esto último, hay que crear un perfil de GDM. El fichero con el perfil se ha de crear manualmente en el directorio /etc/dconf/profile. Su nombre debe ser gdm. Por ejemplo:
user-db:user
system-db:gdm
Para entrar en el shell con el usuario gdm debemos ejecutar, con privilegios de superusuario, la siguiente orden en la terminal.
# machinectl shell gdm@ /bin/bash
Las configuraciones que se pueden hacer pueden consultarse en el archivo /etc/gdm3/greeter-dconf-defaults. Este archivo está dividido en secciones y cada sección contiene pares de clave = valor. El archivo será más o menos así:
# These are the options for the greeter session that can be set
# through GSettings. Any GSettings setting that is used by the
# greeter session can be set here.
# Note that you must configure the path used by dconf to store the
# configuration, not the GSettings path.
# Theming options
# ===============
# - Change the GTK+ theme
[org/gnome/desktop/interface]
# gtk-theme='Adwaita'
# - Use another background
[org/gnome/desktop/background]
# picture-uri='file:///usr/share/themes/Adwaita/backgrounds/stripes.jpg'
# picture-options='zoom'
# - Or no background at all
[org/gnome/desktop/background]
# picture-options='none'
# primary-color='#000000'
# Login manager options
# =====================
[org/gnome/login-screen]
#logo='/usr/share/images/vendor-logos/logo-text-version-128.png'
# - Disable user list
# disable-user-list=true
# - Disable restart buttons
# disable-restart-buttons=true
# - Show a login welcome message
# banner-message-enable=true
# banner-message-text='Welcome'
# Automatic suspend
# =================
[org/gnome/settings-daemon/plugins/power]
# - Time inactive in seconds before suspending with AC power
# 1200=20 minutes, 0=never
# sleep-inactive-ac-timeout=1200
# - What to do after sleep-inactive-ac-timeout
# 'blank', 'suspend', 'shutdown', 'hibernate', 'interactive' or 'nothing'
# sleep-inactive-ac-type='suspend'
# - As above but when on battery
# sleep-inactive-battery-timeout=1200
# sleep-inactive-battery-type='suspend'
La primera sección del archivo, la llamada Theming options, en las pruebas que yo he hecho no he podido configurar nada. Todos los cambios en el GDM acerca del tema hay que manejarlos como expliqué en el artículo Cambiar fondo de pantalla de Gnome Display Manager. Sin embargo, sí que podemos hacer otras cosas.
Poner un logo en la pantalla de entrada
Para pone un logo en la pantalla de entrada podemos, como dijimos, hacerlo de dos maneras:
- Compilando dconf:
En primer lugar crearemos un archivo en /etc/dconf/db/gdm.d llamado 02-logo con el siguiente contenido:
[org/gnome/login-screen]
logo='/ruta/a/logo_128x128.png'
Como explicamos anteriormente, lo que ahora hay que hacer es compilar la base de datos de dconf, para eso ejecutamos como superusuario el comando:
- Usando gsettings:
Por otro lado, podemos hacer lo mismo utilizando la herramienta de línea de comandos gsettings. Entraremos primero al shell del usuario gdm, tal y como se comentó antes, y luego ejecutaremos el comando:
gsettings set org.gnome.login-screen logo /ruta/a/logo_128x128.png
Para especificar la ruta puedes observar que en el caso del fichero de configuración se hace la separación mediante barras diagonales. Sin embargo, en el caso del comando gsettings la ruta se especifica separando las partes con un punto (.).
Una última aclaración, hay que usar un método u otro. En el caso del primero, puedes ver la configuración que has especificado consultando los ficheros en /etc/dconf/db/gdm.d. Si decides utilizar el comando gsettings, no conseguí averiguar dónde se guarda la configuración actual. Además, en las pruebas que he hecho parece que el comando gsettings tiene prioridad sobre lo especificado en el fichero de configuración.
Mostrar un mensaje de bienvenida
Siguiendo la misma tónica que para mostrar el logo, también se puede poner un mensaje de bienvenida en la pantalla de entrada. Podemos hacerlo de las dos maneras que ya conocemos:
- Compilando dconf:
Crearemos un archivo en /etc/dconf/db/gdm.d llamado , por ejemplo, 10-wellcome con el siguiente contenido:
[org/gnome/login-screen]
banner-message-enable=true
banner-message-text='Bienvenidos a BitUbuntu'
Luego volvemos a compilar la base de datos de dconf:
- Usando gsettings:
En este caso ejecutaremos dos comandos:
gsettings set org.gnome.login-screen banner-message-enable true
gsettings set org.gnome.login-screen banner-message-text 'Bienvenidos a BitUbuntu'
Siguiendo este modo de configurar podemos hacerlo con el resto de directivas que podemos ver en el fichero /etc/gdm3/greeter-dconf-defaults. Podemos también combinar todas las directivas referentes a una sección (login-screen, por ejemplo) en un solo fichero. Eso a gusto de cada uno.
Activación del inicio de sesión automática (Autologin)
Se puede configurar el inicio de sesión automática para un solo usuario de los creados en el sistema. Por supuesto, no se debe hacer para el usuario root (superusuario). En este caso no es necesario recurrir a la configuración usando dconf. Para habilitar el inicio automático, hay que descomentar y modificar las líneas siguientes en el fichero /etc/gdm3/custom.conf:
# Enabling automatic login
AutomaticLoginEnable = true
AutomaticLogin = user1
Cambiando user1 por el nombre de usuario con el que se desea entrar.
Existe también la posibilidad de activarlo usando el entorno gráfico. Abrimos la ventana de Configuración tras realizar una búsqueda en el cuadro de Actividades y seleccionamos Usuarios, tal como se muestra en la imagen.
Lo primero que debemos hacer es darle al botón Desbloquear para poder interactuar con la interfaz de usuario. Nos harán falta las credenciales de superusuario.
Una vez desbloqueada la interfaz, sólo tenemos que seleccionar el usuario con el que queremos iniciar automáticamente la sesión. En el ejemplo de las imágenes sólo hay un usuario y por eso sale su ficha directamente. Si hubiera varios usuarios definidos en el sistema, habría que seleccionar uno y en su ficha, habilitar la opción Iniciar sesión automáticamente:
Evitar que un usuario salga en la lista
Por defecto, el GDM muestra todos los usuarios que tienen un UID (identificador de usuario) mayor de 999. Estos UID corresponden a usuarios normales, que no son de sistema, como el superusuario. Si tienes varios usuarios creados en el ordenador y quieres que uno de ellos no aparezca tenemos que decirle al GDM que se trata de una cuenta de sistema.
Para hacer esto podemos seguir estos pasos:
Y con esto es suficiente para que el usuario no aparezca.
Conclusiones
Podemos observar por los dos artículos que la configuración del GDM no es cosa fácil. Yo espero haber ayudado en lo posible para que entiendan como ha de hacerse y en qué sitios buscar cada cosa. Seguro que algo se me ha quedado atrás, pero dejo para ustedes ulteriores investigaciones.
Comentarios
Publicar un comentario