Provided by: weston_13.0.3-1_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=cms-colord.so,screen-share.so
              specifies   the   modules   to   load   (string).   Available   modules   in    the
              /usr/lib/x86_64-linux-gnu/weston directory are:

                 cms-colord.so
                 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.

       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.

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)