---
name: "emptty"
section: "1"
platform: "linux"
package: "emptty"
version: "0.16.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/emptty"
---

# emptty(1)

Dead simple CLI Display Manager on TTY

## NAME

emptty - Dead simple CLI Display Manager on TTY

## SYNOPSIS

**emptty \[-v\] \[--version\] \[-d\] \[--daemon\] \[-c PATH\] \[--config PATH\] \[-i\] \[--ignore-config\] \[-t TTY\] \[--tty TTY\] \[-u defaultUser\] \[--default-user defaultUser\] \[-a \[session\]\] \[--autologin \[session\]\]**

## DESCRIPTION

**emptty** Simple CLI Display Manager, that allows one to select DE/WM after login, use predefined config or allows autologin, if selected user is part of *nopasswdlogin* group.

## OPTIONS

- \-v, --version

  Display the version of the program.

- \-d, --daemon

  Starts emptty as daemon, that does not require agetty.

- \-c, --config PATH

  Loads configuration from specified path.

- \-C, --print-config

  Only prints loaded configuration and exits.

- \-i, --ignore-config

  Skips loading of configuration from file, loads only argument configuration.

- \-t, --tty TTY

  Overrides loaded configuration by setting defined TTY. May be specified as a number (e.g. "7") or a TTY name (e.g. "tty7").

- \-u, --default-user defaultUser

  Overrides loaded configuration by setting defined defaultUser.

- \-a, --autologin \[session\]

  Overrides loaded configuration by enabling autologin. If session is defined, it overrides autologin session.

## CONFIG

/etc/emptty/conf

- TTY\_NUMBER

  TTY, where emptty will start.

- SWITCH\_TTY

  Enables switching to defined TTY number. Default is true.

- PRINT\_ISSUE

  Enables printing of /etc/issue in daemon mode.

- PRINT\_MOTD

  Enables printing of default motd, static motd or dynamic motd.

- DEFAULT\_ENV

  Defines default environment used for starting undefined sessions (e.g. from \`emptty\` file). Possible values are "xorg" and "wayland". Default of default is xorg.

- DEFAULT\_USER

  Preselected user, if AUTOLOGIN is enabled, this user is logged in.

- DEFAULT\_SESSION

  Preselected desktop session, if user does not use \`emptty\` file. Has lower priority than *AUTOLOGIN\_SESSION*

- DEFAULT\_SESSION\_ENV

  Optional environment of preselected desktop session, if user does not use \`emptty\` file. Possible values are "xorg" and "wayland".

- 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.

- AUTOLOGIN\_SESSION

  The default session used, if Autologin is enabled. If session is not found in list of session, it proceeds to manual selection.

- AUTOLOGIN\_SESSION\_ENV

  Optional environment of autologin desktop session. Possible values are "xorg" and "wayland".

- AUTOLOGIN\_MAX\_RETRY

  If session does not start correctly in specified period, the number of retries in short period is kept to eventually stop the infinite loop of restarts. -1 is for infinite retries, 0 is for no retry. Default value is 2.

- AUTOLOGIN\_RETRY\_PERIOD

  Time period in seconds, that is used for checking session login retries. Default value is 2.

- LANG

  defines locale for all users. Default value is "en\_US.UTF-8"

- DBUS\_LAUNCH

  Starts "dbus-launch" before desktop command. After end of session "dbus-daemon" is interrupted. Default value is true. If *user config* is handled as script (does not contain *Exec* option), this config is overridden to false.

- ALWAYS\_DBUS\_LAUNCH

  Starts "dbus-launch" before desktop command in any case, *DBUS\_LAUNCH* value is ignored. It also starts even if *XINITRC\_LAUNCH* is set to \`true\`. After end of session "dbus-daemon" is interrupted. Default value is false.

- XINITRC\_LAUNCH

  Starts Xorg desktop with calling *~/.xinitrc* script with session exec as argument, if is true, file exists and selected WM/DE is Xorg session, it overrides DBUS\_LAUNCH. If *user config* is handled as script (does not contain *Exec* option), this config is overridden to false.

- VERTICAL\_SELECTION

  Prints available WM/DE each on new line instead of printing on single line.

- INDENT\_SELECTION

  Horizontal offset for vertical selection, useful for centering the menu on screen.

- LOGGING

  Defines how logging is handled. Possible values are "rotate", "appending" or "disabled". Default value is "rotate".

- LOGGING\_FILE

  Overrides path of log file. Default value is */var/log/emptty/\[TTY\_NUMBER\].log*

  **NOTE:** It expects existence of directories to defined logging file.

- XORG\_ARGS

  Arguments passed to Xorg server.

- DYNAMIC\_MOTD

  Allows using dynamic motd script to generate custom MOTD. Possible values are "true" or "false". Default value is false.

  **NOTE:** Be sure, that dynamic motd has correct content and permissions (e.g. 744), the script is started as default user; in daemon mode it means *root*

- DYNAMIC\_MOTD\_PATH

  Allows overriding default path to dynamic motd. Default value is "/etc/emptty/motd-gen.sh".

- MOTD\_PATH

  Allows overriding default path to static motd. Default value is "/etc/emptty/motd".

- FG\_COLOR

  Foreground color, available only in daemon mode. List of colors is listed below.

- BG\_COLOR

  Background color, available only in daemon mode. List of colors is listed below.

- DISPLAY\_START\_SCRIPT

  Script started before Display (Xorg/Wayland) starts.

  **NOTE:** The script is started as default user; in daemon mode it means *root*

- DISPLAY\_STOP\_SCRIPT

  Script started after Display (Xorg/Wayland) stops.

  **NOTE:** The script is started as default user; in daemon mode it means *root*

- ENABLE\_NUMLOCK

  Enables numlock in daemon mode. Possible values are "true" or "false". Default value is false.

- SESSION\_ERROR\_LOGGING

  Defines how logging of session errors is handled. Possible values are "rotate", "appending" or "disabled". Default value is "disabled".

- SESSION\_ERROR\_LOGGING\_FILE

  Overrides path of session errors log file. Default value is */var/log/emptty/session-errors.\[TTY\_NUMBER\].log*

  **NOTE:** It expects existence of directories to defined logging file.

- NO\_XDG\_FALLBACK

  Disallows setting of fallback values for all XDG environmental variables and leaves it on Login Controls. Possible values are "true" or "false". Default value is false.

  **NOTE:** Be aware, that setting to "true" could lead to unexpected behaviour.

- DEFAULT\_XAUTHORITY

  If set true, it will not use .emptty-xauth file, but the standard ~/.Xauthority file. This allows handling xauth issues. Possible values are "true" or "false". Default value is false.

- ROOTLESS\_XORG

  If set true, Xorg will be started as rootless, if system allows and emptty is running in daemon mode. Possible values are "true" or "false". Default value is false.

- IDENTIFY\_ENVS

  If set true, environmental groups are printed to differ Xorg/Wayland/Custom/UserCustom desktops. Possible values are "true" or "false". Default value is false.

- HIDE\_ENTER\_LOGIN

  If set true, "hostname login:" is not displayed. Possible values are "true" or "false". Default value is false.

- HIDE\_ENTER\_PASSWORD

  If set true, "Password:" is not displayed. Possible values are "true" or "false". Default value is false.

- XORG\_SESSIONS\_PATH

  Path to directory, where Xorg sessions' desktop files are stored. Default value is "/usr/share/xsessions/".

- WAYLAND\_SESSIONS\_PATH

  Path to directory, where Wayland sessions' desktop files are stored. Default value is "/usr/share/wayland-sessions/".

- SELECT\_LAST\_USER

  Enables funtionality of saving last successfully logged in user for next login. Possible values are "false", "per-tty" or "global". Default value is false.

- AUTO\_SELECTION

  If set to "true" and only one desktop is available, it automatically select that desktop. Possible values are "true" or "false". Default value is false.

- ALLOW\_COMMANDS

  If set to "true" and no default user is selected, it allows to enter commands into login input. Possible values are "true" or "false", Default value is true.

- CMD\_POWEROFF

  Command to be used to perform poweroff. Default value is "poweroff".

- CMD\_REBOOT

  Command to be used to perform reboot. Default value is "reboot".

- CMD\_SUSPEND

  Command to be used to perform suspend. Default value is blank, but it tries to use "systemctl suspend", "loginctl suspend" or "zzz".

- WAIT\_EXIT\_TIMEOUT

  Timeout in seconds before emptty automatically exits. If value is 0 or lower, there is no timeout. Default value is -1.

## COMMANDS

If commands are allowed and default user is not defined, there could be used commands in login input. All of these commands need to start with colon ":". Escape characters are ignored to prevent issues with muscle memory from VI.\
  \- :help, :? - prints available commands\
  \- :poweroff, :shutdown - processess poweroff command\
  \- :reboot - processes reboot command\
  \- :suspend, :zzz - processes suspend command

## DYNAMIC MOTD

Optional file stored by default as /etc/emptty/motd-gen.sh. Could be overridden.

If *DYNAMIC\_MOTD* is set to true, this file exists and is executable for its owner, the result is printed as your own MOTD. Be very careful with this script!

## CUSTOM MOTD

Optional file stored by default as /etc/emptty/motd. Could be overridden.

Custom file, that prints your own MOTD. Reading this file supports colors (e.g. *\\m* or *\\ 33\[32m* )

## USER CONFIG

Optional file stored as ${HOME}/.config/emptty or ${HOME}/.emptty

Configuration file stored as ${HOME}/.config/emptty has higher priority on loading.

- Name

  Optional name to be used as Session Name.

- Exec

  Defines command to start Desktop Environment/Window Manager. This value does not need to be defined, if user config is presented as shell script (with shebang at the start and execution permissions).

- Environment

  Selects, which environment should be defined for following command. Possible values are "xorg" and "wayland", "xorg" is default.

- Lang

  Defines locale for logged user, has higher priority than LANG from global configuration

- Selection

  Requires selection of desktop, basically turns *emptty* file into *.xinitrc* for Xorg and Wayland. In this case *Exec* is skipped. Possible values are "false" for never using selection, "true" for always showing selection or "auto" for showing selection or first option autoselect, if there is no other desktop. Default value is false.

- LoginShell

  Defines custom shell to be used to start the session. This allows starting the session with non-interactive shell e.g. "/bin/bash --login"

- DesktopNames

  Value passed into *XDG\_CURRENT\_DESKTOP* variable.

## USER EXIT SCRIPT

Optional script file stored as ${HOME}/.config/emptty-exit, that is handled as shell script and is started, when session is going to end. Script is started even if emptty is being terminated. The default timeout to finish script is 3 seconds, but it is configurable from the script itself.

- Timeout

  Optional custom timeout for script to finish its run, number represents seconds. Default is 3.

## CUSTOM SESSIONS

Optional folders for custom sessions, that could be available system-wide (in case of /etc/emptty/custom-sessions/) or user-specific (in case of ${HOME}/.config/emptty-custom-sessions/), but do not have .desktop file stored on standard paths for Xorg or Wayland sessions. Expected suffix of each file is ".desktop".

- Name

  Defines name of Desktop Environment/Window Manager.

- Exec

  Defines command to start Desktop Environment/Window Manager. It could contain multiple arguments same as in \*.desktop files.

- Environment

  Selects, which environment should be defined for following command. Possible values are "xorg" and "wayland", "xorg" is default.

- DesktopNames

  Value passed into *XDG\_CURRENT\_DESKTOP* variable.

- NoDisplay/Hidden

  Boolean value, that controls visibility of desktop session.

## LAST SESSION

The last user selection of session is stored into ~/.cache/emptty/last-session

## LOGGING

As it is mentioned in configuration, there are three options to handle logging of emptty. The logs contains not just logs from emptty, but also from Xorg (if used) and user's WM/DE. Described log location could differ according configuration *LOGGING\_FILE* , that is stored in */etc/emptty/conf*

- default

  This option provides simple solution, when current instance of emptty logs into */var/log/emptty/\[TTY\_NUMBER\].log* and the previous version is stored as */var/log/emptty/\[TTY\_NUMBER\].log.old*

  **NOTE:** Current instance always move previous log into old file, if emptty crashes and is started again, previous log is in */var/log/emptty/\[TTY\_NUMBER\].log.old*

- appending

  This option provides functionality that logs everything into */var/log/emptty/\[TTY\_NUMBER\].log* and does not handle log rotation by itself. It leaves the option for user to handle it themselves (e.g. with logrotate).

  **NOTE:** Appending without roration could cause large log file, be sure that log file is rotated.

- disabled

  This option points all log into */dev/null* , so no log is available.

  **NOTE:** If any issue starts to appear and you want to report it, ensure you do not use this option.

## COLORS

Please, be aware that *LIGHT\_* colors could be unavailable as background color.

BLACK, RED, GREEN, YELLOW, BLUE, PURPLE, CYAN, WHITE

LIGHT\_BLACK, LIGHT\_RED, LIGHT\_GREEN, LIGHT\_YELLOW, LIGHT\_BLUE, LIGHT\_PURPLE, LIGHT\_CYAN, LIGHT\_WHITE
