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

# kmscon.conf(5)

Configuration file for KMS/DRM based System Console

## NAME

kmscon.conf - Configuration file for KMS/DRM based System Console

## DESCRIPTION

kmscon.conf is the configuration file to control the behavior of kmscon and adjust it to your system-setup. It allows to remap the bindings of keyboard-shortcuts, define the desired keyboard-layout, select font attributes for text-rendering, hardware-accelerationn, orientation of output and much more.

Below is a complete list of all recognized *Options*, their meaning and possible values. In section *Example* is a typical real-world sample of a configuration to guide you in creating your own.

## EXAMPLE

Here is a real-world example of a typical kmscon.conf file:

```
### General Options ###
verbose
### Seat Options ###
vt=1
switchvt
### Session Options ###
session-max=6
session-control
### Terminal Options ###
term=kmscon
### Input Options ###
xkb-model=pc102
xkb-layout=de
xkb-repeat-delay=200
xkb-repeat-rate=65
mouse
dpms-timeout=600
### Video Options ###
drm
hwaccel
gpus=all
multi-monitor=clone
rotate=normal
### Font Options ###
font-engine=freetype
font-size=18
font-name=Ubuntu Mono
```

In any line, every character are ignored after a # and considered to be a comment. whitespace are ignored at begining and ending of a line, and around the '=' when assigning a parameter

## OPTIONS

Below is a complete list of all recognized options, their meaning and possible values.

**verbose**

Make kmscon be very chatty about what it is doing. It prints to stdout unless redirected. Off if not present in kmsconf.conf or commented out. (default: off)

**debug**

Let kmscon be even more chatty. The text-output goes to stdout or any file it was redirected to. Off if not present in kmsconf.conf or commented out. (default: off)

**silent**

Suppress notices and warnings. (default: off)

**configdir**

Path to config directory. (default: /etc/kmscon)

**vt**

Select which VT to run on. (default: auto)

**switchvt**

Automatically switch to VT. (default: on)

**libseat**

Use libseat for seat management. (default: off)

**session-max**

Maximum number of sessions. (default: 50)

**session-control**

Allow keyboard session-control. (default: off)

**login**

Start the given login process instead of the default process; all arguments following '--' will be be parsed as argv to this process. No more options after '--' will be parsed so use it at the end of the argument string. (default: /bin/login -p)

**term**

Value of the TERM environment variable for the child process. (default: kmscon)

**reset-env**

Reset environment before running child process. (default: on)

**issue**

Display issue files before the login prompt. Use no-issue to let the login process handle it. (default: on)

**issue-path**

Colon-separated list of issue files and directories to read, ordered by precedence. It implements uapi masking, so if there are multiple files, with the same name, only the first will be parsed. (default: "/etc/issue:/etc/issue.d:/run/issue:/run/issue.d:/usr/lib/issue:/usr/lib/issue.d")

**asciicast**

Path to an asciicast animation to play after opening the terminal session. The animation is stopped on keyboard input. (default: unset)

**asciicast-loop**

Loop the asciicast animation. (default: off)

**backspace-delete**

Send delete character when backspace is pressed. (default: on)

**palette**

Select the used color palette. (default: default)

**sb-size**

Size of the scrollback-buffer in lines. (default: 1000)

**bell**

Enable bell forwarding to the VT. When enabled, the BEL character (0x07) from applications is forwarded to the underlying VT. (default: off)

**blink**

Enable cursor and text blink. When enabled, the cursor will blink on the screen, and text with blink attribute will blink too. (default: on)

**xkb-model**

Set XkbModel for input devices. (default: unset)

**xkb-layout**

Set XkbLayout for input devices. (default: unset)

**xkb-variant**

Set XkbVariant for input devices. (default: unset)

**xkb-options**

Set XkbOptions for input devices. (default: unset)

**xkb-keymap**

Use a predefined keymap for input devices. (default: unset)

**xkb-repeat-delay**

Initial delay for key-repeat in ms. (default: 250)

**xkb-repeat-rate**

Delay between two key-repeats in ms. (default: 50)

**mouse**

Enable mouse/touchpad/trackpoint in kmscon (default: on). It allows to select, and copy/paste text with a pointing device, and also to scroll with the mouse wheel. It's still experimental, and may not work with specific devices.

**natural-scrolling**

Invert the mouse wheel direction (natural scrolling). When enabled, scrolling up with the wheel scrolls down and vice versa. (default: off)

**soft-cursor**

Force software cursor, if hardware cursor is not working properly. (default: off)

**dpms-timeout**

Set screen timeout in seconds (default: 600 = 10 minutes). When enabled, the screen will automatically turn off (DPMS OFF) after the specified period of keyboard and mouse inactivity. Any keyboard or mouse input will turn the screen back on and reset the timer. This feature is useful for power saving on systems where the screen is not always needed. Set to 0 to disable.

**grab-scroll-up**

Shortcut to scroll up. (default: \<Shift\>Up)

**grab-scroll-down**

Shortcut to scroll down. (default: \<Shift\>Down)

**grab-page-up**

Shortcut to scroll page up. (default: \<Shift\>Prior)

**grab-page-down**

Shortcut to scroll page down. (default: \<Shift\>Next)

**grab-zoom-in**

Shortcut to increase font size. (default: \<Ctrl\>Plus)

**grab-zoom-out**

Shortcut to decrease font size. (default: \<Ctrl\>Minus)

**grab-session-next**

Switch to next session. (default: \<Ctrl\>\<Logo\>Right)

**grab-session-prev**

Switch to previous session. (default: \<Ctrl\>\<Logo\>Left)

**grab-session-close**

Close current session. (default: \<Ctrl\>\<Logo\>BackSpace)

**grab-terminal-new**

Create new terminal session. (default: \<Ctrl\>\<Logo\>Return)

**grab-rotate-cw**

Rotate output clock-wise. (default: \<Logo\>Plus)

**grab-rotate-ccw**

Rotate output counter-clock-wise. (default: \<Logo\>Minus)

**grab-reboot**

Reboot the system when this keyboard shortcut is pressed. This option is disabled by default. The reboot behavior follows the system-wide setting in /proc/sys/kernel/ctrl-alt-del: when set to 0 (default), a graceful reboot is performed by sending SIGINT to init (PID 1); when set to a value greater than 0, an immediate hard reboot is performed after syncing disk buffers. Example: grab-reboot=\<Ctrl\>\<Alt\>Delete (default: disabled)

**drm**

Use DRM if available. (default: on)

**hwaccel**

Use 3D hardware-acceleration if available. (default: off)

**gpus**

GPU selection mode. (default: all)

**use-original-mode**

Use the original KMS video mode. (default: off)

**mode**

Set the desired output mode. The given width, rate and height must match a supported mode exactly for this option to have any effect; if there is no supported mode that matches exactly, or if there is an error when using the desired mode, then the default mode (first valid mode found) will be used. Gpu, connector, and rate are optional, but if gpu is specified the connector must also be specified. You can find the name of the gpu and connector looking at kmscon logs. journalctl -u kmsconvt@\* \| grep display This parameter can be specified multiple times to set different modes for different gpus/connectors.

Modesetting is only supported in DRM mode, so this option does nothing with fbdev. However, fbset can still be used to externally set the mode when fbdev is in use.

**multi-monitor {clone,largest,scaled}**

When there are multiple monitors, this option controls how the monitors are used.

\`clone': All monitors will have the same size. The smallest monitor will be used to determine the size.

\`largest': The largest monitor will be used to determine the size. The other monitors will be disabled. If multiple monitors have the largest size, they will all be used.

\`scaled': All monitors will display the same number of columns and rows based on the smallest monitor, with larger monitors scaling up their font size to fill the screen.

default: scaled

**screen {gpu}\[{connector}\]{config}**

Select the desired screen configuration. gpu and connector are optional. config is one of 'normal', 'upside-down', 'left', 'right' and 'disabled'. If config is 'disabled' kmscon won't use this display, unless it is the only available display. If gpu/connector are not specified, this will apply to all available displays. You can specify multiple screen configurations, to setup different configurations for different displays.

**font-engine**

Font engine to use. (default: freetype)

**font-size**

Font height in pixels. 0 will auto-detect (default: 0)

**font-name**

Font name to use. (default: monospace)

## FILES

**Main configuration file**

/etc/kmscon/kmscon.conf

**Seat specific configuration file**

/etc/kmscon/{seat\_name}.kmscon.conf

## SEE ALSO

[**kmscon**(1)](/kmscon/1.md)
