Provided by: weston_14.0.2-1build1_amd64 bug

NAME

       weston.ini - configuration file for Weston - the reference Wayland compositor

INTRODUCTION

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

DESCRIPTION

       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)

       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:

           [SectionHeader]
           Key1=Value1
           Key2=Value2
               ...

       The spaces are significant.  Comment lines are ignored:

           #comment

       The section headers are:

           core           The core modules and options
           libinput       Input device configuration
           shell          Desktop customization
           launcher       Add launcher to the panel
           output         Output configuration
           input-method   Onscreen keyboard input
           keyboard       Keyboard layouts
           terminal       Terminal application options
           xwayland       XWayland options
           screen-share   Screen sharing options
           autolaunch     Autolaunch 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'.

CORE SECTION

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

       shell=desktop
              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/x86_64-linux-gnu/weston directory are:

                 desktop
                 fullscreen
                 ivi
                 kiosk

       xwayland=true
              ask Weston to load the XWayland module (boolean).

       modules=screen-share.so
              specifies   the   modules   to   load   (string,   comma  separated).  Available  modules  in  the
              /usr/lib/x86_64-linux-gnu/weston directory are:

                 screen-share.so

       backend=headless
              overrides defaults backend. Available backends are:

                 drm
                 headless
                 rdp
                 pipewire
                 vnc
                 wayland
                 x11

       repaint-window=N
              Set the approximate length of the repaint window in milliseconds. The repaint window  is  used  to
              control and reduce the output latency for clients. If the window is longer than the output refresh
              period,  the  repaint  will be done immediately when the previous repaint finishes, not processing
              client requests in between. If the repaint window is too short, the compositor may miss the target
              vertical blank, increasing output latency. The default value is 7 milliseconds. The allowed  range
              is  from -10 to 1000 milliseconds. Using a negative value will force the compositor to always miss
              the target vblank.

       idle-time=seconds
              sets Weston's idle timeout in seconds. This idle timeout is the time after which Weston will enter
              an "inactive" mode and screen will fade to black. A value of 0 disables the timeout.

              Important : This option may also be set via Weston's  '-i'  command  line  option  and  will  take
              precedence  over  the  current  .ini  option.  This means that if both weston.ini and command line
              define this idle-timeout time, the one specified in the command-line will be used.  On  the  other
              hand, if none of these sets the value, default idle timeout will be set to 300 seconds.

       require-input=true
              require an input device for launch

       require-outputs=any
              configures the behavior if Weston fails to configure and enable outputs.

              Depending  on  the  use-case, it may preferable to ensure that Weston only starts if it can enable
              all available outputs, or that it ignores failed outputs. The possible options are:

                 all-found    all available outputs must be enabled
                 any          start if any output could be enabled
                 none         start even if no output was enabled

       wait-for-debugger=true
              Raises SIGSTOP before initializing the compositor. This allows the user to attach with a  debugger
              and  continue  execution by sending SIGCONT. This is useful for debugging a crash on start-up when
              it would be inconvenient to launch weston directly from a debugger. Boolean,  defaults  to  false.
              There is also a command line option to do the same.

       remoting=remoting-plugin.so
              specifies  a  plugin  for  remote  output  to  load  (string).  This  can be used to load your own
              implemented remoting plugin or one with Weston as  default.  Available  remoting  plugins  in  the
              __libweston_modules_dir__ directory are:

                 remoting-plugin.so

       renderer=auto
              Selects  a  renderer  to  use  for  internal composition when required, or auto to select the most
              appropriate renderer. Available renderers are:

                 auto
                 gl
                 noop
                 pixman
       Not all backends support all renderers.

       use-pixman=true
              Deprecated in favour of the renderer= option.  Enables pixman-based rendering for all  outputs  on
              backends  that support it.  Boolean, defaults to false.  There is also a command line option to do
              the same.

       color-management=true
              Enables color management and requires using GL-renderer.  Boolean, defaults to false.

              TENTATIVE, EXPERIMENTAL, WORK IN PROGRESS: Color management  enables  the  use  of  ICC  files  to
              describe  monitor  color behavior, Wayland protocol extensions for clients to describe their color
              spaces and perform monitor profiling, and tone mapping required to enable HDR  video  modes.  This
              extended  functionality comes at the cost of heavier image processing and sometimes a loss of some
              hardware off-loading features like composite-bypass.

       output-decorations=true
              For headless-backend with GL-renderer only: draws  output  window  decorations,  similar  to  what
              wayland-backend  does for floating output windows.  Boolean, defaults to false.  These decorations
              cannot normally be screenshot. This option is useful for the Weston test suite only.

LIBINPUT SECTION

       The libinput section is used to configure input devices when using the libinput input device backend. The
       defaults are determined by libinput and vary according to what is most sensible for any given device.

       Available configuration are:

       enable-tap=false
              Enables tap to click on touchpad devices.

       tap-and-drag=false
              For touchpad devices with enable-tap enabled. If the user taps, then taps a second time, this time
              holding, the virtual mouse button stays down for as long as the user keeps  their  finger  on  the
              touchpad, allowing the user to click and drag with taps alone.

       tap-and-drag-lock=false
              For  touchpad  devices with enable-tap and tap-and-drag enabled.  In the middle of a tap-and-drag,
              if the user releases the touchpad for less than a certain number of milliseconds, then touches  it
              again, the virtual mouse button will remain pressed and the drag can continue.

       disable-while-typing=true
              For  devices that may be accidentally triggered while typing on the keyboard, causing a disruption
              of the typing.  Disables them while the keyboard is in use.

       middle-button-emulation=false
              For pointer devices with left and right buttons, but no middle button.   When  enabled,  a  middle
              button event is emitted when the left and right buttons are pressed simultaneously.

       left-handed=false
              Configures  the device for use by left-handed people. Exactly what this option does depends on the
              device. For pointers with left and right buttons, the buttons are swapped. On tablets, the  tablet
              is logically turned upside down, because it will be physically turned upside down.

       rotation=n
              Changes  the direction of the logical north, rotating it n degrees clockwise away from the default
              orientation, where n is a whole number between 0 and 359 inclusive. Needed for trackballs, mainly.
              Allows the user to orient the trackball sideways, for example.

       accel-profile={flat,adaptive}
              Set the pointer acceleration profile. The pointer's screen speed is proportional to  the  physical
              speed  with  a  certain  constant  of proportionality.  Call that constant alpha. flat keeps alpha
              fixed. See accel-speed.  adaptive causes alpha to increase with physical speed,  giving  the  user
              more  control  when  the  speed  is  slow, and more reach when the speed is high.  adaptive is the
              default.

       accel-speed=v
              If accel-profile is set to flat, it simply sets the value of alpha.  If accel-profile  is  set  to
              adaptive,  the  effect  is  more complicated, but generally speaking, it will change the pointer's
              speed.  v is normalised and must lie in the range [-1, 1]. The exact mapping between v  and  alpha
              is hardware-dependent, but higher values cause higher cursor speeds.

       natural-scroll=false
              Enables  natural  scrolling,  mimicking  the  behaviour of touchscreen scrolling.  That is, if the
              wheel, finger, or fingers are moved down, the surface is scrolled up instead of down,  as  if  the
              finger, or fingers were in contact with the surface being scrolled.

       scroll-method={two-finger,edge,button,none}
              Sets  the  scroll method. two-finger scrolls with two fingers on a touchpad. edge scrolls with one
              finger on the right edge of a touchpad.  button scrolls when the pointer is moved while a  certain
              button is pressed. See scroll-button. none disables scrolling altogether.

       scroll-button={BTN_LEFT,BTN_RIGHT,BTN_MIDDLE,...}
              For  devices  with  scroll-method set to button. Specifies the button that will trigger scrolling.
              See /usr/include/linux/input-event-codes.h for the complete list of possible values.

       touchscreen_calibrator=true
              Advertise the touchscreen calibrator interface to all clients.  This  is  a  potential  denial-of-
              service  attack  vector,  so  it should only be enabled on trusted userspace. Boolean, defaults to
              false.

              The interface is required  for  running  touchscreen  calibrator  applications.  It  provides  the
              application raw touch events, bypassing the normal touch handling.  It also allows the application
              to upload a new calibration into the compositor.

              Even  though  this  option  is  listed  in  the  libinput  section,  it  does  affect  all  Weston
              configurations regardless of the used backend. If the backend does not use libinput, the interface
              can still be advertised, but it will not list any devices.

       calibration_helper=/bin/echo
              An optional calibration helper program to permanently save a new touchscreen calibration.  String,
              defaults to unset.

              The given program will be executed with seven arguments when a calibrator application requests the
              server  to take a new calibration matrix into use.  The program is executed synchronously and will
              therefore block Weston for its duration. If the program exit status is non-zero, Weston  will  not
              apply  the new calibration. If the helper is unset or the program exit status is zero, Weston will
              use the new calibration immediately.

              The program is invoked as:

                 calibration_helper syspath m1 m2 m3 m4 m5 m6

              where syspath is the udev sys path for the device and m1  through m6 are  the  calibration  matrix
              elements  in  libinput's  LIBINPUT_CALIBRATION_MATRIX  udev  property  format.  The sys path is an
              absolute path and starts with the sys mount point.

SHELL SECTION

       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:

       client=/usr/libexec/weston-desktop-shell
              specifies  the path for the shell client to run.  It is possible to pass arguments and environment
              variables to the program, for example, 'ENVFOO=bar ENVBAR=baz /path/to/program --arg  anotherarg',
              with entries that are space-separated but with no support for quoting.  If no client was specified
              then weston-desktop-shell is launched (string).

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

       background-type=tile
              determines  how the background image is drawn (string). Can be centered, scale, scale-crop or tile
              (default).  Centered shows the image once centered. If the image is smaller than the  output,  the
              rest  of the surface will be in background color. If the image size does fit the output it will be
              cropped left and right, or top and bottom.  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.

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

       clock-format=format
              sets the panel clock format (string). Can be none, minutes, seconds, minutes-24h, seconds-24h.  By
              default, minutes format is used.

       panel-color=0xAARRGGBB
              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

       panel-position=top
              sets the position of the panel (string). Can be top, bottom, left, right, none.

       locking=true
              enables screen locking (boolean).

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

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

       startup-animation=fade
              sets the effect used by desktop-shell when starting up (string). Can be fade, none.   By  default,
              the fade animation is used.

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

       allow-zap=true
              whether the shell should quit when the Ctrl-Alt-Backspace key combination is pressed

       binding-modifier=ctrl
              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.  See  weston-bindings(7).   Possible  values:  none,  ctrl,  alt,  super
              (default)

       cursor-theme=theme
              sets the cursor theme (string).

       cursor-size=24
              sets the cursor size (unsigned integer).

LAUNCHER SECTION

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

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

       displayname=displayname
              sets the display name of the launcher that appears in the tooltip.

       path=program
              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

OUTPUT SECTION

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

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

       mode=mode
              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, along with an option of a modeline string.

              See weston-drm(7) for examples of modes-formats supported by DRM backend.

       transform=normal
              How you have rotated your monitor from its normal orientation (string).  The transform key can  be
              one of the following 8 strings:

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

       scale=factor
              The  scaling  multiplier  applied  to the entire output, in support of high resolution ("HiDPI" or
              "retina") displays, that roughly  corresponds  to  the  pixel  ratio  of  the  display's  physical
              resolution  to  the logical resolution.  Applications that do not support high resolution displays
              typically appear tiny and unreadable. Weston will scale the output of such  applications  by  this
              multiplier,  to make them readable. Applications that do support their own output scaling can draw
              their content in high resolution, in which case they avoid compositor  scaling.  Weston  will  not
              scale the output of such applications, and they are not affected by this multiplier.

              An  integer,  1  by default, typically configured as 2 or higher when needed, denoting the scaling
              multiplier for the output.

       icc_profile=file
              If option color-management is true, load the given ICC file as  the  output  color  profile.  This
              works only on DRM, headless, wayland, and x11 backends, and for remoting and pipewire outputs.

       seat=name
              The  logical  seat name 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.

       allow_hdcp=true
              Allows HDCP support for this output. If set to true, HDCP can be tried for the content-protection,
              provided  by  the  backends,  on  this  output.  By default, HDCP support is always allowed for an
              output. The content-protection can actually be realized, only if the hardware  (source  and  sink)
              support  HDCP,  and  the backend has the implementation of content-protection protocol. Currently,
              HDCP is supported by drm-backend.

       content-type=content_type
              The type of the content being primarily displayed to this output.  Can  be  "no  data"  (default),
              "graphics", "photo", "cinema" or "game".

       app-ids=app-id[,app_id]*
              A comma separated list of the IDs of applications to place on this output.  These IDs should match
              the  application  IDs  as  set  with  the  xdg_shell.set_app_id request. Currently, this option is
              supported by kiosk-shell.

       colorimetry-mode=default
              Sets the colorimetry mode on the output. The colorimetry mode together with the  EOTF  mode  below
              define  the  color  encoding  used  in the video signal. The colorimetry mode is used for choosing
              between the default sink defined colorimetry (intended to be described by EDID), and  standardised
              other encodings that support wide color gamut (WCG).

              The  display  driver,  the  graphics card, and the video sink (monitor) need to support the chosen
              mode, otherwise the result is undefined or fails.

              The mode can be one of the following strings:

                 default              default (RGB) colorimetry, video sink dependant
                 bt2020cycc           Rec. ITU-R BT.2020 constant luminance YCbCr
                 bt2020ycc            Rec. ITU-R BT.2020 non-constant luminance YCbCr
                 bt2020rgb            Rec. ITU-R BT.2020 RGB
                 p3d65                SMPTE ST 2113 DCI-P3 RGB D65
                 p3dci                SMPTE ST 2113 DCI-P3 RGB Theater
                 ictcp                Rec. ITU-R BT.2100 ICtCp

              Defaults to default. Non-default modes require color-management=true.

              Note: The operating system might not honor the choice between RGB and YCbCr, that may be picked by
              a Linux display driver automatically.

       eotf-mode=sdr
              Sets the EOTF mode on the output. This is used for choosing between standard dynamic  range  (SDR)
              mode  and  the  various high dynamic range (HDR) modes. The display driver, the graphics card, and
              the video sink (monitor) need to support the chosen mode, otherwise the result is undefined.   The
              mode can be one of the following strings:

                 sdr                  traditional gamma, SDR
                 hdr-gamma            traditional gamma, HDR
                 st2084               SMPTE ST 2084, a.k.a Perceptual Quantizer
                 hlg                  Hybrid Log-Gamma (ITU-R BT.2100)

              Defaults to sdr. Non-SDR modes require color-management=true.

       color_characteristics=name
              Sets   the   basic   output   color   characteristics   by   loading   the   parameters  from  the
              color_characteristics section with the key name=name . If an ICC profile  is  also  set,  the  ICC
              profile takes precedence.

       mirror-of=ouput_name
              Makes  the  remote  output  overlap  (mirror) the native output identified by the mirror-of value.
              This is useful for sharing or mirroring a native DRM output.  The output mirroring the DRM  native
              one,  will  inherit  the same video modeline as the DRM native one, including the refresh rate and
              scale of the native output.  Note that depending on the remote backend,  automatic  output  resize
              will  be disabled when mirroring is in effect. Mirroring a DRM native output to another DRM native
              output is yet not supported, being intended only for remote outputs.

              NOTE: The native outputs created by the DRM backend using  the  'clone-of'  are  for  cloning  the
              outputs, and not sharing or mirroring. See also weston-drm(7).

INPUT-METHOD SECTION

       path=/usr/libexec/weston-keyboard
              sets  the  path of the on screen keyboard input method (string).  It is possible to pass arguments
              and environment variables to the program, for  example,  'ENVFOO=bar  ENVBAR=baz  /path/to/program
              --arg anotherarg', with entries that are space-separated but with no support for quoting.

       overlay-keyboard=false
              sets weston-keyboard as overlay panel.

KEYBOARD SECTION

       This section contains the following keys:

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

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

       keymap_layout=us,de,gb
              sets  the  comma  separated  list  of  keyboard  layout codes (string). See the Layouts section in
              xkeyboard-config(7).

       keymap_variant=euro,,intl
              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).

       keymap_options=grp:alt_shift_toggle,grp_led:scroll
              sets the keymap options (string). See the Options section in xkeyboard-config(7).

       repeat-rate=40
              sets the rate of repeating keys in characters per second (unsigned integer)

       repeat-delay=400
              sets the delay in milliseconds since key down until repeating starts (unsigned integer)

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

       vt-switching=true
              Whether to allow the use of Ctrl+Alt+Fn key combinations to  switch  away  from  the  compositor's
              virtual console.

TERMINAL SECTION

       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.

       font-size=14
              sets the size of the terminal font (unsigned integer).

       term=xterm-256color
              The terminal shell (string). Sets the $TERM variable.

XWAYLAND SECTION

       path=/usr/bin/Xwayland
              sets the path to the xserver to run (string).

SCREEN-SHARE SECTION

       command=/usr/bin/weston --backend=rdp --shell=fullscreen --no-clients-resize --no-config
              sets the command to start a fullscreen-shell server for screen sharing (string).

       start-on-startup=false
              If  set to true, start screen sharing of all outputs available on Weston startup.  Set to false by
              default.  Set to false by default. When using this option make  sure  you  enable  --no-config  to
              avoid  re-loading  the screen-share module and implictly trigger screen-sharing for the RDP output
              already  performing  the  screen  share.  Alternatively,  you  could  also  supply   a   different
              configuration  file,  by using --config /path/to/config/file, and make sure that the configuration
              file doesn't load the screen-share module.

AUTOLAUNCH SECTION

       path=/usr/bin/echo
              Path to an executable file to run after startup. This file is executed in parallel to  Weston,  so
              it does not have to immediately exit. Defaults to empty.

       watch=false
              If set to true, quit Weston after the auto-launched executable exits. Set to false by default.

COLOR_CHARACTERISTICS SECTION

       Each  color_characteristics  section  records  one set of basic display or monitor color characterisation
       parameters. The parameters are defined in CTA-861-H specification as Static Metadata Type 1, and they can
       also be found in EDID. The parameters are divided into groups. Each group must be given either  fully  or
       not at all.

       Each  section should be named with name key by which it can be referenced from other sections. A metadata
       section is just a collection of parameter values and does nothing on its own. It has an effect only  when
       referenced from elsewhere.

       See output section key color_characteristics.

       name=name
              An  arbitrary  name  for  this  section.  You  can choose any name you want as long as it does not
              contain the colon (:) character. Names with at least one colon are reserved.

   Primaries group
       red_x=x
       red_y=y
       green_x=x
       green_y=y
       blue_x=x
       blue_y=y
              The CIE 1931 xy chromaticity coordinates of the display primaries.  These  floating  point  values
              must reside between 0.0 and 1.0, inclusive.

   White point group
       white_x=x
       white_y=y
              The  CIE 1931 xy chromaticity coordinates of the display white point.  These floating point values
              must reside between 0.0 and 1.0, inclusive.

   Independent parameters
       Each parameter listed here has its own group and therefore can be given alone.

       max_L=L
              Display's desired maximum content luminance (peak) L cd/m², a floating point value  in  the  range
              0.0–100000.0.

       min_L=L
              Display's  desired  minimum  content  luminance  L  cd/m²,  a  floating  point  value in the range
              0.0–100000.0.

       maxFALL=L
              Display's desired maximum frame-average light level L cd/m², a floating point value in  the  range
              0.0–100000.0.

SEE ALSO

       weston(1), weston-bindings(7), weston-drm(7), xkeyboard-config(7)

Weston 14.0.2                                      2024-08-07                                      weston.ini(5)