当前位置: 首页 > 工具软件 > monitor-man > 使用案例 >

display:weston:man weston 相关

朱翔
2023-12-01

 man weston

WESTON(1)                                                                              General Commands Manual                                                                              WESTON(1)

NAME
       weston - the reference Wayland server

SYNOPSIS
       weston

DESCRIPTION
       weston  is the reference implementation of a Wayland server. A Wayland server is a display server, a window manager, and a compositor all in one. Weston has several backends as loadable mod‐
       ules: it can run on Linux KMS (kernel modesetting via DRM), as an X client, or inside another Wayland server instance.

       Weston supports fundamentally different graphical user interface paradigms via shell plugins. Two plugins are provided: the desktop shell, and the tablet shell.

       When weston is started as the first windowing system (i.e. not under X nor under another Wayland server), it should be done with the command weston-launch to set up proper privileged  access
       to devices. If your system supports the logind D-Bus API and the support has been built into weston as well, it is possible to start weston with just weston.

       Weston also supports X clients via XWayland, see below.

BACKENDS
       drm-backend.so
              The DRM backend uses Linux KMS for output and evdev devices for input.  It supports multiple monitors in a unified desktop with DPMS. See weston-drm(7), if installed.

       wayland-backend.so
              The Wayland backend runs on another Wayland server, a different Weston instance, for example. Weston shows up as a single desktop window on the parent server.

       x11-backend.so
              The X11 backend runs on an X server. Each Weston output becomes an X window. This is a cheap way to test multi-monitor support of a Wayland shell, desktop, or applications.

       rdp-backend.so
              The  RDP  backend  runs  in memory without the need of graphical hardware. Access to the desktop is done by using the RDP protocol. Each connecting client has its own seat making it a
              cheap way to test multi-seat support. See weston-rdp(7), if installed.

SHELLS
       Each of these shells have its own public protocol interface for clients.  This means that a client must be specifically written for a shell protocol, otherwise it will not work.

       Desktop shell
              Desktop shell is like a modern X desktop environment, concentrating on traditional keyboard and mouse user interfaces and the familiar desktop-like window  management.  Desktop  shell
              consists of the shell plugin desktop-shell.so and the special client weston-desktop-shell which provides the wallpaper, panel, and screen locking dialog.

       Fullscreen shell
              Fullscreen shell is intended for a client that needs to take over whole outputs, often all outputs. This is primarily intended for running another compositor on Weston. The other com‐
              positor does not need to handle any platform-specifics like DRM/KMS or evdev/libinput.  The shell consists only of the shell plugin fullscreen-shell.so.

       IVI-shell
              In-vehicle infotainment shell is a special purpose shell that exposes a GENIVI Layer Manager compatible API to controller modules, and a very simple shell  protocol  towards  clients.
              IVI-shell starts with loading ivi-shell.so, and then a controller module which may launch helper clients.

XWAYLAND
       XWayland  requires  a  special X.org server to be installed. This X server will connect to a Wayland server as a Wayland client, and X clients will connect to the X server. XWayland provides
       backwards compatibility to X applications in a Wayland stack.

       XWayland is activated by instructing weston to load the XWayland module, see EXAMPLES.  Weston starts listening on a new X display socket, and exports it in the environment variable DISPLAY.
       When the first X client connects, Weston launches a special X server as a Wayland client to handle the X client and all future X clients.

       It has also its own X window manager where cursor themes and sizes can be chosen using XCURSOR_PATH and XCURSOR_SIZE environment variables. See ENVIRONMENT.

OPTIONS
   Weston core options:
       -Bbackend.so, --backend=backend.so
              Load backend.so instead of the default backend. The file is searched for in /home/maze/Wayland/install/lib/x86_64-linux-gnu/weston, or you can pass an absolute path. The default back‐
              end is drm-backend.so unless the environment suggests otherwise, see DISPLAY and WAYLAND_DISPLAY.

       -cconfig.ini, --config=config.ini
              Load config.ini instead of weston.ini.  The argument can also be an absolute path starting with a /.  If the path is not absolute, it will be searched in the normal config paths,  see
              weston.ini(5).  If also --no-config is given, no configuration file will be read.

       --debug
              Enable debug protocol extension weston_debug_v1 which any client can use to receive debugging messages from the compositor.

              WARNING:  This  is  risky for two reasons. First, a client may cause a denial-of-service blocking the compositor by providing an unsuitable file descriptor, and second, the debug mes‐
              sages may expose sensitive information.  Additionally this will expose weston-screenshooter interface allowing the user to take screenshots of the outputs  using  weston-screenshooter
              application, which can lead to silently leaking the output contents.  This option should not be used in production.

       -lscope1,scope2, --logger-scopes=scope1,scope2
              Specify to which log scopes should subscribe to. When no scopes are supplied, the log "log" scope will be subscribed by default. Useful to control which streams to write data into the
              logger and can be helpful in diagnosing early start-up code.

       -fscope1,scope2, --flight-rec-scopes=scope1,scope2
              Specify to which scopes should subscribe to. Useful to control which streams to write data into the flight recorder. Flight recorder has limited space, once  the  flight  recorder  is
              full new data will overwrite the old data. Without any scopes specified, it subscribes to 'log' and 'drm-backend' scopes.

       --version
              Print the program version.

       -h, --help
              Print a summary of command line options, and quit.

       -iN, --idle-time=N
              Set the idle timeout to N seconds. The default timeout is 300 seconds. When there has not been any user input for the idle timeout, Weston enters an inactive mode. The screen fades to
              black, monitors may switch off, and the shell may lock the session.  A value of 0 effectively disables the timeout.

       --log=file.log
              Append log messages to the file file.log instead of writing them to stderr.

       --xwayland
              Ask Weston to load the XWayland module.

       --modules=module1.so,module2.so
              Load the comma-separated list of modules. Only used by the test suite. The file is searched for in /home/maze/Wayland/install/lib/x86_64-linux-gnu/weston, or you can pass an  absolute
              path.

       --no-config
              Do not read weston.ini for the compositor. Avoids e.g. loading compositor modules via the configuration file, which is useful for unit tests.

       -Sname, --socket=name
              Weston  will  listen  in the Wayland socket called name.  Weston will export WAYLAND_DISPLAY with this value in the environment for all child processes to allow them to connect to the
              right server automatically.

       --wait-for-debugger
              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. There is also a weston.ini option to do the same.

   DRM backend options:
       See weston-drm(7).

   Wayland backend options:
       --display=display
              Name of the Wayland display to connect to, see also WAYLAND_DISPLAY of the environment.

       --fullscreen
              Create a single fullscreen output

       --output-count=N
              Create N Wayland windows to emulate the same number of outputs.

       --width=W, --height=H
              Make all outputs have a size of WxH pixels.

       --scale=N
              Give all outputs a scale factor of N.

       --use-pixman
              Use  the  pixman  renderer.   By  default, weston will try to use EGL and GLES2 for rendering and will fall back to the pixman-based renderer for software compositing if EGL cannot be
              used.  Passing this option will force weston to use the pixman renderer.

   X11 backend options:
       --fullscreen

       --no-input
              Do not provide any input devices. Used for testing input-less Weston.

       --output-count=N
              Create N X windows to emulate the same number of outputs.

       --width=W, --height=H
              Make the default size of each X window WxH pixels.

       --scale=N
              Give all outputs a scale factor of N.

       --use-pixman
              Use the pixman renderer.  By default weston will try to use EGL and GLES2 for rendering.  Passing this option will make weston use the pixman library for software compsiting.

   RDP backend options:
       See weston-rdp(7).

FILES
       If the environment variable is set, the configuration file is read from the respective path.

       $XDG_CONFIG_HOME/weston.ini
       $HOME/.config/weston.ini

ENVIRONMENT
       DISPLAY
              The X display. If DISPLAY is set, and WAYLAND_DISPLAY is not set, the default backend becomes x11-backend.so.

       WAYLAND_DEBUG
              If set to any value, causes libwayland to print the live protocol to stderr.

       WAYLAND_DISPLAY
              The name of the display (socket) of an already running Wayland server, without the path. The directory path is always taken from XDG_RUNTIME_DIR.  If WAYLAND_DISPLAY is not  set,  the
              socket name is "wayland-0".

              If WAYLAND_DISPLAY is already set, the default backend becomes wayland-backend.so.  This allows launching Weston as a nested server.

       WAYLAND_SOCKET
              For Wayland clients, holds the file descriptor of an open local socket to a Wayland server.

       WESTON_CONFIG_FILE
              Weston sets this variable to the absolute path of the configuration file it loads, or to the empty string if no file is used. Programs that use weston.ini will read the file specified
              by this variable instead, or do not read any file if it is empty. Unset variable causes falling back to the default name weston.ini.

       XCURSOR_PATH
              Set the list of paths to look for cursors in. It changes both libwayland-cursor and libXcursor, so it affects both Wayland and X11 based clients. See xcursor (3).

       XCURSOR_SIZE
              This variable can be set for choosing an specific size of cursor. Affect Wayland and X11 clients. See xcursor (3).

       XDG_CONFIG_HOME
              If set, specifies the directory where to look for weston.ini.

       XDG_RUNTIME_DIR
              The directory for Weston's socket and lock files.  Wayland clients will automatically use this.

BUGS
       Bugs should be reported to the freedesktop.org bugzilla at https://bugs.freedesktop.org with product "Wayland" and component "weston".

WWW
       http://wayland.freedesktop.org/

EXAMPLES
       Launch Weston with the DRM backend on a VT
              weston-launch

       Launch Weston with the DRM backend and XWayland support
              weston-launch -- --xwayland

       Launch Weston (wayland-1) nested in another Weston instance (wayland-0)
              WAYLAND_DISPLAY=wayland-0 weston -Swayland-1

       From an X terminal, launch Weston with the x11 backend
              weston

SEE ALSO
       weston-bindings(7), weston-debug(1), weston-drm(7), weston-rdp(7), weston.ini(5)

Weston 9.0.90                                                                                 2019-03-23                                                                                    WESTON(1)
  1. weston作为display-sever window-manager compositor三者合一的server,显示,窗口管理,合成
  2. 关于drm-backend.so 输出是kms,输入是evdev
  3. 关于socket,这个可以实现多个weston同时存在[多个weston的存在,监听不同的socket,对应不同的/dev/dri/cardX]
    1. 我告诉weston我有多块显卡[因为基于drm-backend的weston与driver的约定接口是/dev/dri/cardX]
    2. 启动多个weston,对应的client使用不同的socket,使用的功能方式可以是多种多样的[因为weston与client的约定接口是socket]
  4. 关于debug 
  • 1.--debug方法的使用,对应weston-debug工具一起用
  • 2.--wait-for-debugger工具的使用
  • 3.WAYLAND_DEBUG环境变量的使用,打印的是libwayland的protocol

==========

man weston.ini 

weston.ini(5)                                                                            File Formats Manual                                                                            weston.ini(5)

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 con‐
       figuration 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

       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-shell.so
              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 /home/maze/Wayland/in‐
              stall/lib/x86_64-linux-gnu/weston directory are:

                 desktop-shell.so

       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 /home/maze/Wayland/install/lib/x86_64-linux-gnu/weston directory are:

                 cms-colord.so
                 screen-share.so

       backend=headless-backend.so
              overrides defaults backend. Available backend modules in the /home/maze/Wayland/install/lib/x86_64-linux-gnu/libweston-10 directory are:

                 drm-backend.so
                 fbdev-backend.so
                 headless-backend.so
                 rdp-backend.so
                 wayland-backend.so
                 x11-backend.so

       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 com‐
              positor 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.

       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.

       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

       pageflip-timeout=milliseconds
              sets Weston's pageflip timeout in milliseconds.  This sets a timer to exit gracefully with a log message and an exit code of 1 in case the DRM driver is non-responsive.  Setting it to
              0 disables this feature.

       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

       use-pixman=true
              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.

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 track‐
              balls, 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,  de‐
              faults 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 ap‐
              plication 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 syn‐
              chronously 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=file
              sets the path for the shell client to run. If not specified 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.  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 for opening new windows (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)

       num-workspaces=6
              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.

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

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

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

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

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

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.

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

       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  physi‐
              cal  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 appli‐
              cations 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.

       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  pro‐
              tocol. Currently, HDCP is supported by drm-backend.

       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.

INPUT-METHOD SECTION
       path=/home/maze/Wayland/install/libexec/weston-keyboard
              sets the path of the on screen keyboard input method (string).

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-con‐
              fig(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=/home/maze/Wayland/install/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize
              sets the command to start a fullscreen-shell server for screen sharing (string).

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

Weston 9.0.90                                                                                 2019-03-26                                                                                weston.ini(5)
  1. 保证渲染间隔repaint-window
  2. 确认是否需要input设备require-input
  3. 设置某个屏幕是分辨率[多个选一个][output];name=Virtual-1;mode=1920x1080
  4. 设置热插拔是否灭屏force-on
  5. 设置合成是否纯gpu  export WESTON_FORCE_RENDERER=1

man weston-drm

WESTON-DRM(7)                                                                      Miscellaneous Information Manual                                                                     WESTON-DRM(7)

NAME
       weston-drm - the DRM backend for Weston

SYNOPSIS
       weston-launch

       weston --backend=drm-backend.so

DESCRIPTION
       The  DRM  backend  is  the native Weston backend for systems that support the Linux kernel DRM, kernel mode setting (KMS), and evdev input devices.  It is the recommended backend for desktop
       PCs, and aims to provide the full Wayland experience with the "every frame is perfect" concept.  It also relies on the Mesa GBM interface.

       With the DRM backend, weston runs without any underlying windowing system. The backend uses the Linux KMS API to detect connected monitors. Monitor hot-plugging is supported.  Input  devices
       are  found  automatically by udev(7).  Compositing happens mainly in GL ES 2, initialized through EGL. It is also possible to take advantage of hardware cursors and overlays, when they exist
       and are functional. Full-screen surfaces will be scanned out directly without compositing, when possible.  Hardware accelerated clients are supported via EGL.

       The backend chooses the DRM graphics device first based on seat id.  If seat identifiers are not set, it looks for the graphics device that was used in boot. If that is not found, it finally
       chooses the first DRM device returned by udev(7).  Combining multiple graphics devices is not supported yet.

       The DRM backend relies on weston-launch for managing input device access and DRM master status, so that weston can be run without root privileges. On switching away from the virtual terminal
       (VT) hosting Weston, all input devices are closed and the DRM master capability is dropped, so that other servers, including Xorg(1), can run on other VTs. On switching back to Weston's  VT,
       input devices and DRM master are re-acquired through the parent process weston-launch.

       The  DRM backend also supports virtual outputs that are transmitted over an RTP session as a series of JPEG images (RTP payload type 26) to a remote client. Virtual outputs are configured in
       the remote-output section of weston.ini.

CONFIGURATION
       The DRM backend uses the following entries from weston.ini.

   Section output
       name=connector
              The KMS connector name identifying the output, for instance LVDS1.

       mode=mode
              Specify the video mode for the output. The argument mode can be one of the words off to turn the output off, preferred to use the monitor's preferred video mode, or current to use the
              current video mode and avoid a mode switch.  It can also be a resolution as:

       mode=widthxheight

       mode=widthxheight@refresh_rate
              Specify a mode with a given refresh-rate measured in Hz.

       mode=widthxheight@refresh_rate ratio
              Here  ratio  is  Picture Aspect-Ratio which can have values as 4:3, 16:9, 64:27, and 256:135. This resolution-format helps to select a CEA mode, if such a video mode is present in the
              mode-list of the output.

              CEA defines the timing of a video mode, which is considered as a standard for HDMI spcification and compliance testing. It defines each and every parameter of a video mode, like  hac‐
              tive,  vactive,  vfront,  vback  etc.,  including aspect-ratio information. For CEA modes, the drm layer, stores this aspect-ratio information in user-mode (drmModeModeInfo) flag bits
              19-22. For the non-CEA modes a value of 0 is stored in the aspect-ratio flag bits.

              Each CEA-mode is identified by a unique, Video Identification Code (VIC).  For example, VIC=4 is 1280x720@60 aspect-ratio 16:9. This  mode  will  be  different  than  a  non-CEA  mode
              1280x720@60  0:0.  When  the  video  mode 1280x720@60 0:0 is applied, since its timing doesn't exactly match with the CEA information for VIC=4, it would be treated as a non-CEA mode.
              Also, while setting the HDMI-AVI-Inforframe, VIC parameter will be given as '0'. If video mode 1280x720@60 16:9 is applied, its CEA timimgs matches with that of video mode with VIC=4,
              so the VIC parameter in HDMI-AVI-Infoframe will be set to 4.

              Many  a  times, an output may have both CEA and non-CEA modes, which are similar in all resepct, differing only in the aspect-ratio. A user can select a CEA mode by giving the aspect-
              ratio, along with the other arguments for the mode.  By omitting the aspect-ratio, user can specify the non-CEA modes.  This helps when certification testing is done,  in  tests  like
              7-27, the HDMI-analyzer applies a particular CEA mode, and expects the applied mode to be with exactly same timings, including the aspect-ratio and VIC field.

              The resolution can also be a detailed mode line as below.

       mode=dotclock hdisp hsyncstart hsyncend htotal vdisp vsyncstart vsyncend vtotal hflag vflag
              Use the given detailed mode line as the video mode for this output.  The definition is the same as in xorg.conf(5), and cvt(1) can generate detailed mode lines.

       transform=transform
              Transform  for  the  output,  which  can be rotated in 90-degree steps and possibly flipped. Possible values are normal, rotate-90, rotate-180, rotate-270, flipped, flipped-rotate-90,
              flipped-rotate-180, and flipped-rotate-270.

       pixman-shadow=boolean
              If using the Pixman-renderer, use shadow framebuffers. Defaults to true.

       same-as=name
              Make this output (connector) a clone of another. The argument name is the name value of another output section. The referred to output section must exist. When this key is present  in
              an output section, all other keys have no effect on the configuration.

              NOTE:  cms-colord  plugin  does  not  work correctly with this option. The plugin chooses an arbitrary monitor to load the color profile for, but the profile is applied equally to all
              cloned monitors regardless of their properties.

       force-on=true
              Force the output to be enabled even if the connector is disconnected.  Defaults to false. Note that mode=off will override force-on=true.  When a connector is disconnected,  there  is
              no EDID information to provide a list of video modes. Therefore a forced output should also have a detailed mode line specified.

   Section remote-output
       name=name
              Specify unique name for the output.

       mode=mode
              Specify the video mode for the output. The argument mode is a resolution setting, such as:

       mode=widthxheight

       mode=widthxheight@refresh_rate
              If refresh_rate is not specified it will default to a 60Hz.

       host=host
              Specify the host name or IP Address that the remote output will be transmitted to.

       port=port
              Specify the port number to transmit the remote output to. Usable port range is 1-65533.

       gst-pipeline=pipeline
              Specify  the gstreamer pipeline. It is necessary that source is appsrc, its name is "src", and sink name is "sink" in pipeline.  Ignore port and host configuration if the gst-pipeline
              is specified.

OPTIONS
       When the DRM backend is loaded, weston will understand the following additional command line options.

       --current-mode
              By default, use the current video mode of all outputs, instead of switching to the monitor preferred mode.

       --drm-device=cardN
              Use the DRM device cardN instead of the default heuristics based on seat assignments and boot VGA status. For example, use card0.

       --seat=seatid
              Use graphics and input devices designated for seat seatid instead of the seat defined in the environment variable XDG_SEAT. If neither is specified, seat0 will be assumed.

       --tty=x
              Launch Weston on tty x instead of using the current tty.

       --continue-without-input
              Allow Weston to start without input devices. Used for testing purposes.

ENVIRONMENT
       WESTON_LIBINPUT_LOG_PRIORITY
              The minimum libinput verbosity level to be printed to Weston's log.  Valid values are debug, info, and error. Default is info.

       WESTON_TTY_FD
              The file descriptor (integer) of the opened tty where weston will run. Set by weston-launch.

       WESTON_LAUNCHER_SOCK
              The file descriptor (integer) where weston-launch is listening. Automatically set by weston-launch.

       XDG_SEAT
              The seat Weston will start on, unless overridden on the command line.

SEE ALSO
       weston(1)

Weston 9.0.90                                                                                 2012-11-27                                                                                WESTON-DRM(7)

 里面的same-as功能值得深究;seatid到底对应什么

--drm-device=cardN实现多个card对应多个weston

 man weston-debug

WESTON-DEBUG(1)                                                                        General Commands Manual                                                                        WESTON-DEBUG(1)

NAME
       weston-debug - a tool for getting debug messages from compositor.

SYNOPSIS
       weston-debug [options] [names]

DESCRIPTION
       weston-debug  is  a  debugging tool which uses weston_debug_v1 interface to get the debug messages from the compositor. The debug messages are categorized into different debug streams by the
       compositor (example: logs, proto, list, etc.,) and the compositor requires a file descriptor to stream the messages.

       This tool accepts a file name or a file descriptor (not both) and any desired debug stream names from the user as command line arguments and subscribes the desired streams from the  composi‐
       tor by using the weston_debug_v1 interface. After the subscription, the compositor will start to write the debug messages to the shared file descriptor.

       If no file name or file descriptor argument is given, the tool will use the stdout file descriptor.

OPTIONS
       weston-debug accepts the following command line options.

       -h, --help
              Print the help text and exit with success.

       -l, --list
              List the available debug streams supported by the compositor. May be used together with --all or a list of debug stream names.

       -a, --all
              Bind all debug streams offered by the compositor. Mututally exclusive with explicitly specifying stream names.

       -o FILE, --output FILE
              Direct output to file named FILE. Use - for stdout.  Stdout is the default. Mutually exclusive with -f.

       -f FD, --outfd FD
              Direct output to the file descriptor FD.  Stdout (1) is the default. Mutually exclusive with -o.

       [names]
              A list of debug streams to bind to. Mutually exclusive with --all.

Weston 9.0.90                                                                                 2018-09-11                                                                              WESTON-DEBUG(1)

weston-debug是一个非常非常详细的debug工具,要依赖于weston启动的时候是否开启debug功能。 

Weston scene graph at 4876172.824156981:

Output 0 (VGA-1):
	position: (0, 0) -> (1920, 975)
	mode: 1920x975@59.964Hz
	scale: 1
	repaint status: no repaint
	Head 0 (VGA-1): connected

Layer 0 (pos 0xffffffff):
	[no views]

Layer 1 (pos 0xfffffffe):
	[no views]

Layer 2 (pos 0xb0000000):
	[no views]

Layer 3 (pos 0x80000000):
	View 0 (role (null), PID 441375, surface ID 18, panel for output VGA-1, 0x5623c003c630):
		position: (0, 0) -> (1920, 32)
		[not opaque]
		outputs: 0 (VGA-1) (primary)
		[buffer not available]

Layer 4 (pos 0x50000001):
	[no views]

Layer 5 (pos 0x50000000):
	View 0 (role xdg_toplevel, PID 441382, surface ID 16, top-level window 'maze@maze-VirtualBox: ~/Wayland/install/bin', 0x5623c00b65f0):
		position: (397, 70) -> (1203, 929)
		[not opaque]
		outputs: 0 (VGA-1) (primary)
		[buffer not available]

Layer 6 (pos 0x2):
	View 0 (role (null), PID 441375, surface ID 19, background for output VGA-1, 0x5623c00f2ca0):
		position: (0, 0) -> (1920, 975)
		[not opaque]
		outputs: 0 (VGA-1) (primary)
		[buffer not available]

[2021-01-13 19:27:46.813][proto] client 0x5623bfab4830 rq weston_debug_v1@4.subscribe("drm-backend", fd 46, new id weston_debug_stream_v1@8)
[2021-01-13 19:27:46.813][proto] client 0x5623bfab4830 rq weston_debug_v1@4.subscribe("content-protection-debug", fd 47, new id weston_debug_stream_v1@9)
[2021-01-13 19:27:46.813][proto] client 0x5623bfab4830 rq weston_debug_v1@4.destroy()
[2021-01-13 19:27:46.813][proto] client 0x5623bfab4830 ev wl_display@1.delete_id(4)
[2021-01-13 19:27:46.813][proto] client 0x5623bfab4830 rq weston_debug_stream_v1@5.destroy()
[2021-01-13 19:27:46.813][proto] client 0x5623bfab4830 ev wl_display@1.delete_id(5)
[2021-01-13 19:27:46.814][proto] client 0x5623c0049420 rq wl_surface@16.frame(new id wl_callback@23)
[2021-01-13 19:27:46.814][proto] client 0x5623c0049420 rq wl_surface@16.attach(wl_buffer@28, 0, 0)
[2021-01-13 19:27:46.814][proto] client 0x5623c0049420 rq wl_surface@16.damage(0, 0, 806, 859)
[2021-01-13 19:27:46.814][proto] client 0x5623c0049420 rq wl_surface@16.commit()
{ "id":1, "type":"weston_surface", "desc":"top-level window 'maze@maze-VirtualBox: ~/Wayland/install/bin'" }
{ "T":[4876172, 824797508], "N":"core_commit_damage", "ws":1 }
{ "id":2, "type":"weston_output", "name":"VGA-1" }
{ "T":[4876172, 824816554], "N":"core_repaint_req", "wo":2 }
{ "T":[4876172, 824828386], "N":"core_repaint_enter_loop", "wo":2 }
		[atomic] applying output 0 (VGA-1) state
			[CRTC:33] 23 (MODE_ID) -> 45 (0x2d)
			[CRTC:33] 22 (ACTIVE) -> 1 (0x1)
			[CONN:35] 20 (CRTC_ID) -> 33 (0x21)
			[PLANE:31] 17 (FB_ID) -> 46 (0x2e)
			[PLANE:31] 20 (CRTC_ID) -> 33 (0x21)
			[PLANE:31] 9 (SRC_X) -> 0 (0x0)
			[PLANE:31] 10 (SRC_Y) -> 0 (0x0)
			[PLANE:31] 11 (SRC_W) -> 125829120 (0x7800000)
			[PLANE:31] 12 (SRC_H) -> 63897600 (0x3cf0000)
			[PLANE:31] 13 (CRTC_X) -> 0 (0x0)
			[PLANE:31] 14 (CRTC_Y) -> 0 (0x0)
			[PLANE:31] 15 (CRTC_W) -> 1920 (0x780)
			[PLANE:31] 16 (CRTC_H) -> 975 (0x3cf)
			[PLANE:31] FORMAT: XRGB8888
[atomic] drmModeAtomicCommit
	[CRTC:33] setting pending flip
[atomic][CRTC:33] flip processing started
{ "T":[4876172, 825052396], "N":"core_repaint_finished", "wo":2, "vblank_monotonic":[4876172, 825017000] }
[atomic][CRTC:33] flip processing completed
[repaint] Beginning repaint; pending_state 0x5623c004a6a0
Weston scene graph at 4876172.834122804:

Output 0 (VGA-1):
	position: (0, 0) -> (1920, 975)
	mode: 1920x975@59.964Hz
	scale: 1
	repaint status: repaint scheduled
	next repaint: 4876172.834693672
	Head 0 (VGA-1): connected

Layer 0 (pos 0xffffffff):
	[no views]

Layer 1 (pos 0xfffffffe):
	[no views]

Layer 2 (pos 0xb0000000):
	[no views]

Layer 3 (pos 0x80000000):
	View 0 (role (null), PID 441375, surface ID 18, panel for output VGA-1, 0x5623c003c630):
		position: (0, 0) -> (1920, 32)
		[not opaque]
		outputs: 0 (VGA-1) (primary)
		[buffer not available]

Layer 4 (pos 0x50000001):
	[no views]

Layer 5 (pos 0x50000000):
	View 0 (role xdg_toplevel, PID 441382, surface ID 16, top-level window 'maze@maze-VirtualBox: ~/Wayland/install/bin', 0x5623c00b65f0):
		position: (397, 70) -> (1203, 929)
		[not opaque]
		outputs: 0 (VGA-1) (primary)
		SHM buffer
			format: 0x0 ARGB8888

Layer 6 (pos 0x2):
	View 0 (role (null), PID 441375, surface ID 19, background for output VGA-1, 0x5623c00f2ca0):
		position: (0, 0) -> (1920, 975)
		[not opaque]
		outputs: 0 (VGA-1) (primary)
		[buffer not available]

{ "T":[4876172, 834166720], "N":"core_repaint_begin", "wo":2 }
	[repaint] preparing state for output VGA-1 (0)
	[repaint] trying planes-only build state
			[view] evaluating view 0x5623c003c630 for output VGA-1 (0)
				[view] not assigning view 0x5623c003c630 to plane (no buffer available)
		[view] failing state generation: placing view 0x5623c003c630 to renderer not allowed
	[repaint] could not build planes-only state, trying mixed
		[state] using renderer FB ID 46 for mixed mode for output VGA-1 (0)
		[state] scanout will use for zpos 0
			[view] evaluating view 0x5623c003c630 for output VGA-1 (0)
				[view] not assigning view 0x5623c003c630 to plane (no buffer available)
				[view] view 0x5623c003c630 will be placed on the renderer
			[view] evaluating view 0x5623c00b65f0 for output VGA-1 (0)
			[plane] started with zpos 18446744073709551615
				[plane] plane 32 added to candidate list
				[plane] not adding plane 31 to candidate list: view already assigned to a plane
				[plane] plane 32 picked from candidate list, type: cursor
				[cursor] not assigning view 0x5623c00b65f0 to cursor plane (positioning requires cropping or scaling)
				[view] view 0x5623c00b65f0 will be placed on the renderer
			[view] evaluating view 0x5623c00f2ca0 for output VGA-1 (0)
				[view] not assigning view 0x5623c00f2ca0 to plane (no buffer available)
				[view] not assigning view 0x5623c00f2ca0 to plane (occluded by renderer views)
				[view] view 0x5623c00f2ca0 will be placed on the renderer
		[atomic] testing output 0 (VGA-1) state
			[CRTC:33] 23 (MODE_ID) -> 45 (0x2d)
			[CRTC:33] 22 (ACTIVE) -> 1 (0x1)
			[CONN:35] 20 (CRTC_ID) -> 33 (0x21)
			[PLANE:31] 17 (FB_ID) -> 46 (0x2e)
			[PLANE:31] 20 (CRTC_ID) -> 33 (0x21)
			[PLANE:31] 9 (SRC_X) -> 0 (0x0)
			[PLANE:31] 10 (SRC_Y) -> 0 (0x0)
			[PLANE:31] 11 (SRC_W) -> 125829120 (0x7800000)
			[PLANE:31] 12 (SRC_H) -> 63897600 (0x3cf0000)
			[PLANE:31] 13 (CRTC_X) -> 0 (0x0)
			[PLANE:31] 14 (CRTC_Y) -> 0 (0x0)
			[PLANE:31] 15 (CRTC_W) -> 1920 (0x780)
			[PLANE:31] 16 (CRTC_H) -> 975 (0x3cf)
			[PLANE:31] FORMAT: XRGB8888
[atomic] drmModeAtomicCommit
	[repaint] Using mixed state composition
	[repaint] view 0x5623c003c630 using renderer composition
	[repaint] view 0x5623c00b65f0 using renderer composition
	[repaint] view 0x5623c00f2ca0 using renderer composition
{ "T":[4876172, 834611643], "N":"core_flush_damage", "ws":1, "wo":2 }
[2021-01-13 19:27:46.824][proto] client 0x5623c0049420 ev wl_buffer@28.release()
[2021-01-13 19:27:46.831][proto] client 0x5623c0049420 ev wl_callback@23.done(581205529)
[2021-01-13 19:27:46.831][proto] client 0x5623c0049420 ev wl_display@1.delete_id(23)
{ "T":[4876172, 841675375], "N":"core_repaint_posted", "wo":2 }
		[atomic] applying output 0 (VGA-1) state
			[CRTC:33] 23 (MODE_ID) -> 45 (0x2d)
			[CRTC:33] 22 (ACTIVE) -> 1 (0x1)
			[CONN:35] 20 (CRTC_ID) -> 33 (0x21)
			[PLANE:31] 17 (FB_ID) -> 44 (0x2c)
			[PLANE:31] 20 (CRTC_ID) -> 33 (0x21)
			[PLANE:31] 9 (SRC_X) -> 0 (0x0)
			[PLANE:31] 10 (SRC_Y) -> 0 (0x0)
			[PLANE:31] 11 (SRC_W) -> 125829120 (0x7800000)
			[PLANE:31] 12 (SRC_H) -> 63897600 (0x3cf0000)
			[PLANE:31] 13 (CRTC_X) -> 0 (0x0)
			[PLANE:31] 14 (CRTC_Y) -> 0 (0x0)
			[PLANE:31] 15 (CRTC_W) -> 1920 (0x780)
			[PLANE:31] 16 (CRTC_H) -> 975 (0x3cf)
			[PLANE:31] FORMAT: XRGB8888
[atomic] drmModeAtomicCommit
	[CRTC:33] setting pending flip
[repaint] flushed pending_state 0x5623c004a6a0
[atomic][CRTC:33] flip processing started
{ "T":[4876172, 841982869], "N":"core_repaint_finished", "wo":2, "vblank_monotonic":[4876172, 841897000] }
[atomic][CRTC:33] flip processing completed
[repaint] Beginning repaint; pending_state 0x5623bfa81f10
Weston scene graph at 4876172.851671100:

Output 0 (VGA-1):
	position: (0, 0) -> (1920, 975)
	mode: 1920x975@59.964Hz
	scale: 1
	repaint status: repaint scheduled
	next repaint: 4876172.851573672
	Head 0 (VGA-1): connected

Layer 0 (pos 0xffffffff):
	[no views]

Layer 1 (pos 0xfffffffe):
	[no views]

Layer 2 (pos 0xb0000000):
	[no views]

Layer 3 (pos 0x80000000):
	View 0 (role (null), PID 441375, surface ID 18, panel for output VGA-1, 0x5623c003c630):
		position: (0, 0) -> (1920, 32)
		[not opaque]
		outputs: 0 (VGA-1) (primary)
		[buffer not available]

Layer 4 (pos 0x50000001):
	[no views]

Layer 5 (pos 0x50000000):
	View 0 (role xdg_toplevel, PID 441382, surface ID 16, top-level window 'maze@maze-VirtualBox: ~/Wayland/install/bin', 0x5623c00b65f0):
		position: (397, 70) -> (1203, 929)
		[not opaque]
		outputs: 0 (VGA-1) (primary)
		[buffer not available]

Layer 6 (pos 0x2):
	View 0 (role (null), PID 441375, surface ID 19, background for output VGA-1, 0x5623c00f2ca0):
		position: (0, 0) -> (1920, 975)
		[not opaque]
		outputs: 0 (VGA-1) (primary)
		[buffer not available]

{ "T":[4876172, 851712019], "N":"core_repaint_exit_loop", "wo":2 }
[atomic] drmModeAtomicCommit
[repaint] flushed pending_state 0x5623bfa81f10
[2021-01-13 19:27:46.905][proto] client 0x5623c0049420 ev wl_keyboard@19.key(911, 581205620, 28, 0)
[2021-01-13 19:27:47.936][proto] client 0x5623c0049420 ev wl_keyboard@19.key(912, 581206650, 29, 1)
[2021-01-13 19:27:47.936][proto] client 0x5623c0049420 ev wl_keyboard@19.modifiers(912, 4, 0, 0, 0)
[2021-01-13 19:27:48.031][proto] client 0x5623c0049420 ev wl_keyboard@19.key(913, 581206746, 46, 1)

 

 ./weston-debug -h
Usage: weston-debug [options] [names]
Where options may be:
  -h, --help
     This help text, and exit with success.
  -l, --list
     Print a list of available debug streams to stderr.
  -a, --all-streams
     Bind to all available streams.
  -o FILE, --output FILE
     Direct output to file named FILE. Use - for stdout.
     Stdout is the default. Mutually exclusive with -f.
  -f FD, --outfd FD
     Direct output to the file descriptor FD.
     Stdout (1) is the default. Mutually exclusive with -o.
Names are whatever debug stream names the compositor supports.

./weston-debug -l
log
scene-graph
timeline
proto
gl-shader-generator

 

https://fossies.org/dox/all.html //weston源码相关的结构体,强大

 类似资料: