Nothing is better than the console login screen, so try EMPTTY, a fantastic display manager by tty that you can quickly compile. Because GDM, LightDM and beautiful company are an exaggeration when you are the only user to use the PC. And Xorg or Wayland, it doesn’t matter.
A display manager, or a login manager, is typically a graphical user interface that is displayed at the end of the boot process in place of the default shell. Among the various implementations of display managers, you can remember LightDM for the Xfce desktop environment or GDM for GNOME or the beautiful SDDM for KDE.
What about stop using a graphical login manager? Why don’t try instead a console login screen?
EMPTTY. Dead simple Display Manager running in CLI as TTY login, that starts Xorg or Wayland.

Configuration
/etc/emptty/conf
Default startup configuration. On each change it requires to restart emptty.
TTY_NUMBER TTY, where emptty will start.
DEFAULT_USER Preselected user, if AUTOLOGIN is enabled, this user is logged in.
AUTOLOGIN Enables Autologin, if DEFAULT_USER is defined. Possible values are “true” or “false”. Default value is false. NOTE: to enable autologin DEFAULT_USER must be in group nopasswdlogin, otherwise user will NOT be authorized.
LANG defines locale for all users. Default value is “en_US.UTF-8”
DBUS_LAUNCH Prepends “dbus-launch” before desktop command. Default value is true.
${HOME}/.emptty
Optional configuration file, that could be also handled as shell script. If is not presented, emptty shows selection of installed desktops.
ENVIRONMENT Selects, which environment should be defined for following command. Possible values are “xorg” and “wayland”, “xorg” is default.
COMMAND Defines command to start Desktop Environment/Window Manager. This value does not need to be defined, if .emptty file is presented as shell script (with shebang at the start and execution permissions).
LANG Defines locale for logged user, has higher priority than LANG from global configuration
Build dependencies
- go
- gcc
- pam-devel
Dependencies
- pam
- xorg / xorg-server (optional)
- xauth / xorg-xauth (required for xorg)
- mcookie (required for xorg)
- wayland (optional)
Build & install
make cleanto cleanup already built binary.make installto install binary and pam module.make install-configto create default conf file in /etc/emptty/.make install-runitto install runit servicemake install-openrcto install openrc servicemake install-systemdto install systemd service.make uninstallto remove emptty from your system
Known issues
- Not working PulseAudio/Alsa, if user is not part of
audiogroup.
Resources and references
- emptty. Dead simple Display Manager running in CLI | GitHub – https://github.com/tvrzna/emptty
- Display manager or login manager | Arch Wiki – https://wiki.archlinux.org/index.php/display_manager
- SDDM | QML based X11 and Wayland display manager – https://github.com/sddm/sddm
- tty (unix) from Wikipedia, the free encyclopedia – https://en.wikipedia.org/wiki/Tty_(unix)