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 clean
to cleanup already built binary.make install
to install binary and pam module.make install-config
to create default conf file in /etc/emptty/.make install-runit
to install runit servicemake install-openrc
to install openrc servicemake install-systemd
to install systemd service.make uninstall
to remove emptty from your system
Known issues
- Not working PulseAudio/Alsa, if user is not part of
audio
group.
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)