Scroll to navigation

greetd(5) File Formats Manual greetd(5)


greetd - configuration file


greetd uses a simple TOML configuration file to define its behavior.


The configuration is divided into sections. Sections are delimited like so:

config_key = value

Configuration keys can be integer literals, or quote-delimited strings. The configuration sections are described below.


This section contains terminal configuration.

vt = num|"next"|"current"

The VT to run on. Can be the number of a specific VT, "next" to select the next available VT, or "current" to stay wherever greetd was started. The specific VT is evaluated at startup, and does not change during the execution of greetd.

If using the current or a specific VT, you must ensure that there are no other users of that VT. If using systemd with autovt and getty, conflict avoidance can be handled in the service unit with "Conflicts=getty@ttyN.service", where N is the VT number.

Use of a specific VT with appropriate conflict avoidance is recommended.

switch = true|false

Whether or not to switch to vt.

If set to false and vt is not currently active VT, greetd will wait for vt to become active, before doing anything including starting greeter.

If set to true, greetd will switch current VT to vt,

Default is true.


This section contains general configuration that does not fit in other sections nor deserved its own section.

source_profile = true|false

Whether or not to source ~/.profile and /etc/profile if present when running commands. Defaults to true.

runfile = path-to-runfile

Location of greetd's runfile that is created during the first run to prevent the initial session from being run again on session termination or on greetd restart.

This file should be in a location that is cleared during a reboot.


This section describes the default session, also referred to as the greeter.

command = command-line

The command-line to run to start the default session, e.g. "agreety -c sway". The default session is automatically started when no other session is running, such as when user session terminate, and when greetd is initially started with no initial session configured.

See greetd-ipc(7) for information on how a greeter can create sessions.

user = user

The user to use for running the greeter. Defaults to "greeter".


This optional section describes the initial session, commonly referred to as "auto-login".

The initial session will only be executed during the first run of greetd since boot in order to ensure signing out works properly and to prevent security issues whenever greetd or the greeter exit. This is checked through the presence of the runfile.

command = command-line

The command-line to run to start the initial session, e.g. "sway". The initial session will be run when exactly once when greetd is initially launched.

user = user

The user to use for running the initial session.


Regular setup with agreety and sway

vt = 1
command = "agreety -c sway"


vt = 1
command = "agreety -c sway"
command = "sway"
user = "john"


Maintained by Kenny Levinsen <>. For more information about greetd development, see


greetd(1) greetd-ipc(7)