Weston obtains configuration from its command line parameters and the configuration file described here.


Weston uses a configuration file called weston.ini for its setup. The weston.ini configuration file is searched for in one of the following places when the server is started:

$XDG_CONFIG_HOME/weston.ini   (if $XDG_CONFIG_HOME is set)
$HOME/.config/weston.ini      (if $HOME is set)
weston/weston.ini in each
    $XDG_CONFIG_DIR           (if $XDG_CONFIG_DIRS is set)
/etc/xdg/weston/weston.ini    (if $XDG_CONFIG_DIRS is not set)
<current dir>/weston.ini      (if no variables were set)

where environment variable $HOME is the user's home directory, and $XDG_CONFIG_HOME is the user specific configuration directory, and $XDG_CONFIG_DIRS is a colon ':' delimited listed of configuration base directories, such as /etc/xdg-foo:/etc/xdg.

The weston.ini file is composed of a number of sections which may be present in any order, or omitted to use default configuration values. Each section has the form:


The spaces are significant. Comment lines are ignored:


The section headers are:

core           The core modules
libinput       Input device configuration
shell          Desktop customization
launcher       Add launcher to the panel
screensaver    Screensaver selection
output         Output configuration
input-method   Onscreen keyboard input
keyboard       Keyboard layouts
terminal       Terminal application options
xwayland       XWayland options
screen-share   Screen sharing options

Possible value types are string, signed and unsigned 32-bit integer, and boolean. Strings must not be quoted, do not support any escape sequences, and run till the end of the line. Integers can be given in decimal (e.g. 123), octal (e.g. 0173), and hexadecimal (e.g. 0x7b) form. Boolean values can be only 'true' or 'false'.


The core section is used to select the startup compositor modules.

specifies a shell to load (string). This can be used to load your own implemented shell or one with Weston as default. Available shells in the /usr/lib/i386-linux-gnu/weston directory are:,

specifies the modules to load (string). Available modules in the /usr/lib/i386-linux-gnu/weston directory are:

overrides defaults backend. Available backend modules in the /usr/lib/i386-linux-gnu/weston directory are:

gbm-format=format sets the GBM format used for the framebuffer for the GBM backend. Can be xrgb8888, xrgb2101010, rgb565. By default, xrgb8888 is used.


The libinput section is used to configure input devices when using the libinput input device backend.

Available configuration are:


enables tap to click on touchpad devices


The shell section is used to customize the compositor. Some keys may not be handled by different shell plugins.

The entries that can appear in this section are:


sets the path for the shell client to run. If not specified weston-desktop-shell is launched (string).


sets the path for the background image file (string).


determines how the background image is drawn (string). Can be scale, scale-crop or tile (default). Scale means scaled to fit the output precisely, not preserving aspect ratio. Scale-crop preserves aspect ratio, scales the background image just big enough to cover the output, and centers it. The image ends up cropped from left and right, or top and bottom, if the aspect ratio does not match the output. Tile repeats the background image to fill the output.


sets the color of the background (unsigned integer). The hexadecimal digit pairs are in order alpha, red, green, and blue.


sets the color of the panel (unsigned integer). The hexadecimal digit pairs are in order transparency, red, green, and blue. Examples:

0xffff0000    Red
0xff00ff00    Green
0xff0000ff    Blue
0x00ffffff    Fully transparent


sets the location of the panel (string). Can be top, none.


enables screen locking (boolean).


sets the effect used for opening new windows (string). Can be zoom, fade, none. By default, no animation is used.


sets the effect used when closing windows (string). Can be fade, none. By default, the fade animation is used.


sets the effect used for opening new windows (string). Can be fade, none. By default, the fade animation is used.


sets the effect used with the focused and unfocused windows. Can be dim-layer, none. By default, no animation is used.


sets the modifier key used for common bindings (string), such as moving surfaces, resizing, rotating, switching, closing and setting the transparency for windows, controlling the backlight and zooming the desktop. Possible values: ctrl, alt, super (default)


defines the number of workspaces (unsigned integer). The user can switch workspaces by using the binding+F1, F2 keys. If this key is not set, fall back to one workspace.


sets the cursor theme (string).


sets the cursor size (unsigned integer).


sets the path to lock screen icon image (string). (tablet shell only)


sets the path to lock screen background image (string). (tablet shell only)


sets the path to home screen background image (string). (tablet shell only)


There can be multiple launcher sections, one for each launcher.


sets the path to icon image (string). Svg images are not currently supported.


sets the path to the program that is run by clicking on this launcher (string). It is possible to pass arguments and environment variables to the program. For example:

path=GDK_BACKEND=wayland gnome-terminal --full-screen


The screensaver section is used to select and schedule a screensaver. The screensaver section is optional, as are all of the entries that may be specified in it.


This instructs the compositor to use the selected screensaver client on a given path (string). If this line is missing or commented out, the screensaver in weston(1) is disabled.


The idle time in seconds until the screensaver disappears in order to save power (unsigned integer).


There can be multiple output sections, each corresponding to one output. It is currently only recognized by the drm and x11 backends.


sets a name for the output (string). The backend uses the name to identify the output. All X11 output names start with a letter X. All Wayland output names start with the letters WL. The available output names for DRM backend are listed in the weston-launch(1) output. Examples of usage:

LVDS1    DRM backend, Laptop internal panel no.1
VGA1     DRM backend, VGA connector no.1
X1       X11 backend, X window no.1
WL1      Wayland backend, Wayland window no.1

See weston-drm(7) for more details.


sets the output mode (string). The mode parameter is handled differently depending on the backend. On the X11 backend, it just sets the WIDTHxHEIGHT of the weston window. The DRM backend accepts different modes:

WIDTHxHEIGHT    Resolution size width and height in pixels
preferred       Uses the preferred mode
current         Uses the current crt controller mode
off             Disables the output

Optionally, an user may specify a modeline, such as:

173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

It consists of the refresh rate in Hz, horizontal and vertical resolution, options for horizontal and vertical synchronisation. The program cvt(1) can provide suitable modeline string.


The transformation applied to screen output (string). The transform key can be one of the following 8 strings:

normal        Normal output.
90            90 degrees clockwise.
180           Upside down.
270           90 degrees counter clockwise.
flipped       Horizontally flipped
flipped-90    Flipped and 90 degrees clockwise
flipped-180   Flipped upside down
flipped-270   Flipped and 90 degrees counter clockwise


An integer, 1 by default, typically configured as 2 when needed, denoting the scale factor of the output. Applications that support it render at the appropriate scale. For other applications, weston will scale their output by this factor.

Use a value of 2 for outputs with high resolution. Such displays are often called "HiDPI" or "retina" displays.


The logical seat name that that this output should be associated with. If this is set then the seat's input will be confined to the output that has the seat set on it. The expectation is that this functionality will be used in a multiheaded environment with a single compositor for multiple output and input configurations. The default seat is called "default" and will always be present. This seat can be constrained like any other.



sets the path of the on screen keyboard input method (string).


This section contains the following keys:


sets the keymap rules file (string). Used to map layout and model to input device.


sets the keymap model (string). See the Models section in xkeyboard-config(7).


sets the comma separated list of keyboard layout codes (string). See the Layouts section in xkeyboard-config(7).


sets the comma separated list of keyboard layout variants (string). The number of variants must be the same as the number of layouts above. See the Layouts section in xkeyboard-config(7).


sets the keymap options (string). See the Options section in xkeyboard-config(7).


sets the rate of repeating keys in characters per second (unsigned integer)


sets the delay in milliseconds since key down until repeating starts (unsigned integer)


sets the default state of the numlock on weston startup for the backends which support it.


Contains settings for the weston terminal application (weston-terminal). It allows to customize the font and shell of the command line interface.

font=DejaVu Sans Mono

sets the font of the terminal (string). For a good experience it is recommended to use monospace fonts. In case the font is not found, the default one is used.


sets the size of the terminal font (unsigned integer).


The terminal shell (string). Sets the $TERM variable.



sets the path to the xserver to run (string).


command=/usr/bin/weston --no-clients-resize

sets the command to start a fullscreen-shell server for screen sharing (string).

RELATED TO weston.ini…