Display manager (Español)

From ArchWiki
Esta traducción de Display manager fue revisada el 2022-11-07. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Un gestor de pantalla, o gestor de inicio de sesión, es típicamente una interfaz gráfica de usuario que se muestra al final del proceso de arranque en lugar del shell por defecto. Hay varias implementaciones de gestores de pantalla, al igual que hay varios tipos de gestores de ventanas y entornos de escritorio. Normalmente hay una cierta cantidad de personalización y tematización disponible para cada uno.

Lista de gestores de pantalla

Consola

  • CDM — Gestor de inicio de sesión escrito en Bash.
https://github.com/evertiro/cdm || cdmAUR
  • Console TDM — Extensión para xinit escrito en puro Bash.
https://github.com/dopsi/console-tdm || console-tdmAUR
  • nodm — Gestor de pantalla para inicios de sesión automáticos, sin mantenimiento desde 2017.
https://github.com/spanezz/nodm || nodm
  • Ly — Gestor de pantalla TUI (tipo ncurses) para Linux y BSD. Soporta sesiones X y Wayland.
https://github.com/nullgemm/ly || ly
  • tbsm — Un lanzador de aplicaciones o de sesiones bash. Soporta X y Wayland.
https://loh-tar.github.io/tbsm/ || tbsmAUR
  • emptty — Un sencillo gestor de pantallas CLI en TTY con soporte para X y Wayland.
https://github.com/tvrzna/emptty/ || emptty-gitAUR
  • loginx — Una combinación de getty/login/xinit con una interfaz de usuario curses amigable.
https://sourceforge.net/projects/loginx/ || loginxAUR

Gráficos

https://github.com/Obsidian-StudiosInc/entrance || entrance-gitAUR
https://wiki.gnome.org/Projects/GDM || gdm
  • LightDM — Gestor de pantalla multiescritorio, puede usar varios front-ends escritos en cualquier toolkit.
https://github.com/canonical/lightdm/ || lightdm
  • LXDM — Gestor de pantalla de LXDE. Puede utilizarse independientemente del entorno de escritorio LXDE.
https://sourceforge.net/projects/lxdm/ || lxdm, lxdm-gtk3
  • SDDM — Gestor de pantalla basado en QML y sucesor de KDM; recomendado para Plasma y LXQt.
https://github.com/sddm/sddm || sddm
  • XDM — Gestor de pantalla X con soporte para XDMCP, selector de host.
xdm(8) || xorg-xdm

Daemons de inicio de sesión

  • greetd — Daemon de inicio de sesión que admite tanto la bienvenida por consola como de manera gráfica.
https://git.sr.ht/~kennylevinsen/greetd || greetd

Cargar el gestor de pantalla

Para habilitar el inicio de sesión gráfico, habilite el servicio systemd apropiado. Por ejemplo, para SDDM, active sddm.service.

Esto debería funcionar sin necesidad de configuración. Si no es así, puede que tenga que restablecer un enlace simbólico personalizado default.target para que apunte al graphical.target por defecto. Véase Systemd (Español)#Cambiar el target predeterminado para arrancar.

Después de habilitar SDDM, debe establecerse un enlace simbólico display-manager.service en /etc/systemd/system/. Es posible que tenga que utilizar --force para anular los enlaces simbólicos antiguos.

$ file /etc/systemd/system/display-manager.service
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service

Usar systemd-logind

Para comprobar el estado de su sesión de usuario, puede usar loginctl. Todas las acciones de polkit como suspender el sistema o montar discos externos funcionarán sin necesidad de configuración.

$ loginctl show-session $XDG_SESSION_ID

Configuración de la sesión

Muchos gestores de pantalla leen las sesiones disponibles del directorio /usr/share/xsessions/. Contiene archivos de entrada de escritorio estándares para cada uno de los entornos de escritorio o gestores de ventanas. Algunos gestores de pantalla utilizan un directorio separado /usr/share/wayland-sessions/ para listar las sesiones específicas de Wayland.

Para añadir/eliminar entradas a la lista de sesiones de su gestor de pantalla, cree/elimine los archivos .desktop en /usr/share/xsessions/ como desee. Un archivo .desktop típico tendrá un aspecto similar a:

[Desktop Entry]
Name=Openbox
Comment=Log in using the Openbox window manager (without a session manager)
Exec=/usr/bin/openbox-session
TryExec=/usr/bin/openbox-session
Icon=openbox.png
Type=Application

Ejecutar ~/.xinitrc como una sesión

La instalación de xinit-xsessionAUR proporciona una opción para ejecutar su xinitrc como una sesión. Simplemente establezca xinitrc como sesión en la configuración de su gestor de pantalla y asegúrese de que el archivo ~/.xinitrc es ejecutable.

Iniciar aplicaciones sin un gestor de ventanas

También es posible lanzar una aplicación sin ninguna decoración, escritorio o gestor de ventanas. Por ejemplo, para lanzar google-chromeAUR cree un archivo web-browser.desktop en /usr/share/xsessions/ tal que así:

[Desktop Entry]
Name=Web Browser
Comment=Use a web browser as your session
Exec=/usr/bin/google-chrome --auto-launch-at-startup
TryExec=/usr/bin/google-chrome --auto-launch-at-startup
Icon=google-chrome
Type=Application

En este caso, una vez que inicie sesión, la aplicación establecida con Exec será lanzada inmediatamente. Cuando cierre la aplicación, volverá al gestor de inicio de sesión (igual que al cerrar la sesión de un entorno de escritorio o gestor de ventanas normal).

Es importante recordar que la mayoría de las aplicaciones gráficas no están pensadas para ser lanzadas de esta manera y puede que tenga que hacer ajustes manuales o sufrir limitaciones (no hay un gestor de ventanas, así que no espere poder mover o redimensionar ninguna ventana, incluyendo los diálogos; sin embargo, puede ser capaz de establecer la geometría de la ventana en los archivos de configuración de la aplicación).

Véase también Xinit (Español)#Iniciar aplicaciones sin un gestor de ventanas.

Consejos y trucos

Inicio automático

La mayoría de los gestores de pantalla tienen como fuente /etc/xprofile, ~/.xprofile y /etc/X11/xinit/xinitrc.d/. Para más detalles, véase xprofile.

Establecer el idioma para la sesión de usuario

Para los gestores de pantalla que utilizan AccountsService, el locale para la sesión de usuario puede establecerse editando:

/var/lib/AccountsService/users/$USER
[User]
Language=su_locale

donde su_locale es un valor como, por ejemplo, es_ES.UTF-8.

De manera alternativa, puede conseguirlo usando D-Bus: busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User SetLanguage s su_locale

Cierre sesión y vuelva a entrar para que los cambios surtan efecto.