精华内容
下载资源
问答
  • weston

    2019-12-28 14:39:11
    1.参考链接 https://cloud.tencent.com/developer/article/1446331 2.weston简介
    展开全文
  • 创建目录 /etc/xdg/weston/;将配置文件拷贝到这个目录下;重启weston
  • man weston WESTON(1) General Commands Manual WESTON(1) NAME weston - the reference Wayland ...

     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)
    

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

     

    展开全文
  • Weston Weston is the reference implementation of a Wayland compositor, as well as a useful environment in and of itself. Out of the box, Weston provides a very basic desktop, or a full-featured ...
  • weston设置

    2020-08-06 23:32:09
    rk3399 linuxSDK ui界面使用weston 屏幕旋转180度方法: 编辑 /etc/xdg/weston/weston.ini 文件,增加如下语句 [output] name=DSI-1 transform=180 其中name为你的显示屏名称,可以通过如下命令来查看显示屏名称: ...

    屏幕旋转180度方法

    编辑 /etc/xdg/weston/weston.ini文件,增加如下语句

    [output]
    name=DSI-1
    transform=180
    

    其中name为你的显示屏名称,可以通过如下命令来查看显示屏名称:
    在这里插入图片描述
    card0-DSI-1 后面的 DSI-1 即为当前显示屏名称,修改后重启即可……

    修改标题栏位置

    具体配置为:取消状态工具栏 和 将背景图片置透明

    vi /etc/xdg/weston/weston.ini

    追加如下:

    [shell]
    panel-position=none
    background-color=0x00FFFFFF
    

    panel-position表示面板工具栏的位置,这里设置为none,表示没有该面板工具栏

    background-color表示背景颜色,这里设置为0x00FFFFFF,表示完全透明,即没有该背景图

    然后我们在开机启动时就不会再看到该weston的桌面而直接启动应用程序。

    #无标题栏
    panel-positon=none
    #标题栏位于顶部
    panel-positon=top                                     
    #标题栏位于左侧
    panel-positon=left
    #标题栏位于底部
    panel-positon=bottom                                    
    #标题栏位于右侧
    panel-positon=right
    

    更加详细的配置weston.ini可参考相关手册
    参考博客1
    参考博客2

    启动配置文件

    #!/bin/sh
    #
    # Start linux launcher...
    #
    
    case "$1" in
      start)
    		printf "Starting launcher: "
    		export LC_ALL='zh_CN.utf8'
    		export QT_QPA_PLATFORM=wayland
    
        	# music
        	/usr/bin/audioservice &
    
    		# bt
    		/usr/libexec/bluetooth/bluetoothd --compat &
    
    		#for kmssink
    		#export QT_GSTREAMER_WINDOW_VIDEOSINK=kmssink
    
    		#for rkisp plugin
    		export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/gstreamer-1.0
    
    		#for waylandsink
    		export QT_GSTREAMER_WINDOW_VIDEOSINK=waylandsink
    
    		#for dual display with morror mode by default
    		export WESTON_DRM_MIRROR=1
    		export WESTON_DRM_KEEP_RATIO=1
    
    		#for QLauncher wayland
    		mkdir -p /tmp/.xdg &&  chmod 0700 /tmp/.xdg
    		export XDG_RUNTIME_DIR=/tmp/.xdg
    		weston --tty=2 --idle-time=0&
    		sleep 1
    		#/usr/local/QLauncher/QLauncher &
        //opt/opencv/bin/opencv &
    		#for Carmachine wayland
    		#/usr/bin/Carmachine -platform wayland -plugin EvdevTouch -plugin EvdevKeyboard &
    
    	;;
      stop)
    		killall QLauncher
    		#killall CarMachine
    		killall weston
    		printf "stop finished"
            ;;
      *)
            echo "Usage: $0 {start|stop}"
            exit 1
            ;;
    esac
    exit 0
    
    
    展开全文
  • <div><p>From now on, if a device needs custom Weston variables (different renderer backend, Xwayland disabled, etc), this will be done in <code>weston.ini</code> installed by the device package....
  • (工作正在进行中!) 韦斯顿 绑定libweston / libweston-desktop ,核心,参考合成。 特色: 使用libweston静态链接的自定义build.rs构建-无autoconf,无共享库插件 ...MIT许可证,与Weston本身相
  • weston的使用

    2021-03-04 17:29:08
    0.设置配置文件/etc/xdg/weston/weston.ini文件内容如下: [core] # Boards could have not any input device, and only use # removable input device like usb(keyboard, mouse). require-input=false [output] ...

    0.设置配置文件/etc/xdg/weston/weston.ini文件内容如下:

    [core]
    # Boards could have not any input device, and only use
    # removable input device like usb(keyboard, mouse).
    require-input=false
    [output]
    name=DSI-1
    transform=0
    [shell]
    # 480x800
    background-image=/oem/yd_rootfs_background.png
    # scale, scale-crop or tile(default)
    background-type=scale-crop
    panel-position=none
    # fade(default),none
    #close-animation=none
    # The hexadecimal digit pairs are in order alpha, red, green, and blue.
    background-color=0x00ffffff
    
    备注:
    (1)name的查看:ls /sys/class/drm/ --> 名字即为DPI-1
    	card0  card0-DPI-1  controlD64  renderD128  version
    (2)transform::旋转角度
    (3)background-image:背景图片
    (4)background-color:背景颜色
    # The hexadecimal digit pairs are in order alpha, red, green, and blue.
    background-color=0x00ff0000 --> 不显示
    background-color=0xffff0000 --> 显示红色
    alpha:00-全透明 ff-不透明
    
    background-color表示背景颜色,这里设置为0x00FFFFFF,表示完全透明,即没有该背景图
    

    1.运行服务端程序

    #如果想到手动启动weston程序,需要导出以下环境变量,weston程序才能够运行起来
    
    #for waylandsink
    export QT_GSTREAMER_WINDOW_VIDEOSINK=waylandsink
    #非必要
    export QT_GSTREAMER_WIDGET_VIDEOSINK=waylandsink
    
    #导出该变量后,默认启动QT程序是采用的gpu方式,而非cpu方式,如果不设置默认会走cpu方式,否则只能使用./test -platform wayland 或者 ./test -platform linuxfb来运行程序,导出后./test == ./test -platform wayland
    export QT_QPA_PLATFORM=wayland
    #渲染是通过DRM API设置
    export QT_QPA_FB_DRM=1
    
    #for dual display with morror mode by default
    export WESTON_DRM_MIRROR=1
    export WESTON_DRM_KEEP_RATIO=1
    
    #非必要
    export WESTON_DISABLE_ATOMIC=1
    
    #for QLauncher wayland
    mkdir -p /tmp/.xdg &&  chmod 0700 /tmp/.xdg
    export XDG_RUNTIME_DIR=/tmp/.xdg
    
    # 运行服务端程序
    weston --tty=2 -B=drm-backend.so --idle-time=0
    
    

    2.屏幕冻结及解冻

    作用:在weston启动时,在启动图标和UI显示屏之间短暂切换时会出现黑屏,如果需要方式黑屏,可以通过以下动态配置文件方法临时冻结weston屏幕内容
    
    export WESTON_FREEZE_DISPLAY=/tmp/.weston_freeze # Set the path of the special configuration file
    #冻结屏幕
    touch /tmp/.weston_freeze # Freeze display
    weston --tty=2 -B=drm-backend.so --idle-time=0
    
    #解冻屏幕,在实际应用中,这块是在应用层删除
    sleep 1 && rm /tmp/.weston_freeze& # Thaw in 1 second
    

    3.动态的旋转屏幕

    #如果需要动态配置屏幕方向,则可以使用动态配置文件,其中名字可以使用命令:ls /sys/class/drm/查看
    echo "output:all:rotate90"> /tmp/.weston_drm.conf # All screens are rotated 90 degrees
    echo "output:eDP-1:rotate180"> /tmp/.weston_drm.conf # eDP-1 rotate 180 degrees
    

    4.屏幕的开关

    #屏幕开
    echo "compositor:state:on" > /tmp/.weston_drm.conf
    #屏幕关
    echo "compositor:state:off" > /tmp/.weston_drm.conf
    

    5.参考文档

    rk平台上weston的配置
    weston设置

    展开全文
  • meta-weston-rpi支持使weston在RPi / RPi2上工作。 该层是非官方的。 该层取决于: URI:git://git.yoctoproject.org/poky.git分支:fido版本:HEAD URI:git://github.com/agherzan/meta-raspberrypi.git分支...
  • weston与gdm编译

    2020-01-14 11:11:22
    1 weston源码编译 1 .1 配置weston编译的环境变量 1.2 安装libwayland 1.3 安装wayland-protocols 1.4 安装libinput 1.5 安装X Server 1.6 安装weston 2 gdm3源码编译 2.1 下载源码及依赖 2.2 编译 总结 ...
  • 该文档详细描述了weston上层与底层硬件的连接 《Using Linux Media Controller for Wayland/Weston Renderer》 •Wayland/Weston Overview • Porting Weston to R-Car • Why Linux Media Controller Renderer?...
  • display:weston初始化

    千次阅读 2019-11-21 16:28:29
    weston version: 5.0.0 Weston initialization 总体上来说,weston初始化分为一下几个阶段 Create wl_display Load backed modules Create compositor Backend initialization Create listen socket...
  • Wayland与Weston

    2020-01-02 10:28:15
    简单地说,Wayland是一套display server(Wayland compositor)与client间的通信协议,而Weston是Wayland compositor的参考实现。其官网为http://wayland.freedesktop.org/。它们定位于在Linux上替换X图形系统。X图形...
  • Wayland/Weston 启动方式简介

    千次阅读 2020-03-17 14:26:25
    本文简单介绍 Weston 常用的几种 backend 启动方式。目前最新的 Weston 8.0.0 支持如下几种 backend: drm-backend fbdev-backend headless-backend rdp-backend wayland-backend x11-backend 其中 headless-...
  • display:weston.ini文件配置

    千次阅读 2019-07-26 17:19:41
    INTRODUCTION Weston obtains configuration from its command line parameters and the configuration file described here. ...weston有两种方式获取参数,一是启动weston命令时添加对应参数,具体可通过weston...
  • weston_head weston_output weston_surface: 客户端调用wl_compositor_create_surface server端调用 static void compositor_create_surface(struct wl_client *client, struct wl_resource *resource, ...
  • Nuclear是Weston的Shell插件。 它实现了一种自定义协议以与Shell客户端(例如进行同步,但是它本身并不携带客户端,因此如果没有客户端,它就。 依存关系 除了要构建它的工具链外,Nuclear仅依赖于Weston 1.4,即C +...
  • 我们在自己的板子上使用wayland作为图形显示器,但是在启动应用时会先启动weston桌面,如下图所示: 我们希望不显示该weston桌面而直接进入到自己的应用中去,那么我们可以通过配置weston.ini来配置weston的桌面...
  • Wayland与Weston简介

    万次阅读 多人点赞 2015-08-08 21:11:20
    简单地说,Wayland是一套display server(Wayland compositor)与client间的通信协议,而Weston是Wayland compositor的参考实现。其官网为http://wayland.freedesktop.org/。它们定位于在Linux上替换X图形系统。X图形...
  • rk3288上weston窗口设置

    2021-02-23 19:11:56
    要求窗口为黑色,不显示工具栏 修改文件:/etc/xdg/weston/weston.ini 添加 [shell] panel-position=none background-color=0x00FFFFFF 参考weston配置
  • <p>configuration of weston is now in postmarketos-ui-weston. </li><li> <p>the demos have been spun off to <code>postmarketos-demos, and <code>postmarketos-ui-weston</code> lists this package as a ...
  • Orbital是Wayland的合成器和外壳,使用Qt5和Weston。 该项目的目标是构建一个简单但灵活且外观漂亮的Wayland桌面。 它不是成熟的DE,而是X11世界中WM的类似物,例如Awesome或Fluxbox。 依存关系 轨道取决于两件事:...
  • display:从Weston到DP

    2021-04-11 21:48:00
    本文旨在总结最进工作经验以及汇总之前博文 ...wayland/weston介绍文章: display:Wayland Architecture https://blog.csdn.net/u012839187/article/details/94599565 简单介绍x-server与weston的区别与联系。
  • wayland&weston

    千次阅读 2016-03-07 16:05:52
    简单地说,Wayland是一套display server(Wayland compositor)与client间的通信协议,而Weston是Wayland compositor的参考实现。其官网为http://wayland.freedesktop.org/。它们定位于在Linux上替换X图形系统。X图形...
  • WestonDavidson代码:培训课程中Weston Davidson的项目存储库

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,262
精华内容 1,304
关键字:

weston