Display manager
Related articles
A display manager, or login manager, is typically a graphical user interface that is displayed at the end of the boot process in place of the default shell. There are various implementations of display managers, just as there are various types of window managers and desktop environments. There is usually a certain amount of customization and themeability available with each one.
Contents
List of display managers
Console
- CDM — Ultra-minimalistic, yet full-featured login manager written in Bash.
- Console TDM — Extension for xinit written in pure Bash.
- nodm — Minimalistic display manager for automatic logins.
Graphical
- Entrance — An EFL based display manager, highly experimental.
- LightDM — Cross-desktop display manager, can use various front-ends written in any toolkit.
- MDM — MDM display manager, used in Linux Mint, a fork of GDM 2.
- Qingy — Ultralight and very configurable graphical login independent on X Windows (uses DirectFB).
- SDDM — QML-based display manager and successor to KDE4's kdm; useful with Plasma.
- SLiM — Lightweight and elegant graphical login solution.
- XDM — X display manager with support for XDMCP, host chooser.
Loading the display manager
To enable graphical login, enable the appropriate systemd service. For example, for KDM, enable kdm.service
.
This should work out of the box. If not, you might have a default.target set manually or from an older install:
$ ls -l /etc/systemd/system/default.target
[...] /etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target
Simply delete the symlink and systemd will use its stock default.target (i.e. graphical.target).
# rm /etc/systemd/system/default.target
After enabling KDM a symlink display-manager.service should be set in /etc/systemd/system/
$ ls -l /etc/systemd/system/display-manager.service
[...] /etc/systemd/system/display-manager.service -> /usr/lib/systemd/system/kdm.service
Using systemd-logind
In order to check the status of your user session, you can use loginctl
. All polkit actions like suspending the system or mounting external drives will work out of the box.
$ loginctl show-session $XDG_SESSION_ID
Tips and tricks
Session list
Many display managers read available sessions from /usr/share/xsessions/
directory. It contains standard desktop entry files for each DM/WM.
To add/remove entries to your display manager's session list; create/remove the .desktop files in /usr/share/xsessions/
as desired. A typical .desktop file will look something like:
[Desktop Entry] Encoding=UTF-8 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=XSession
Starting applications without a window manager
You can also launch an application without any decoration, desktop, or window management. For example to launch google-chromeAUR create a web-browser.desktop
file in /usr/share/xsessions/
like this:
[Desktop Entry] Encoding=UTF-8 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
In this case, once you login, the application set with Exec
will be launched immediately. When you close the application, you will be taken back to the login manager (same as logging out of a normal DE/WM).
It is important to remember that most graphical applications are not intended to be launched this way and you might have manual tweaking to do or limitations to live with (there is no window manager, so do not expect to be able to move or resize any windows, including dialogs; nonetheless, you might be able to set the window geometry in the application's configuration files).
See also xinitrc#Starting applications without a window manager.
Autostarting
Most of display managers sources /etc/xprofile
, ~/.xprofile
and /etc/X11/xinit/xinitrc.d/
. For more details, see xprofile.
Set the language
For display manager's that use AccountsService the display manager locale can be set by editing /var/lib/AccountsService/users/$USER
:
[User] Language=your_locale
where your_locale is a value such as en_GB.UTF-8
.
Restart your display manager for the changes to take effect.
Known issues
Incompatibility with systemd
Affected DMs: Entrance, MDM
Some display managers are not fully compatible with systemd, because they reuse the PAM session process. It causes various problems on second login, e.g.:
- NetworkManager applet does not work,
- PulseAudio volume cannot be adjusted,
- login failed into GNOME with another user.