• ## weston

2019-12-28 14:39:11
1.参考链接 https://cloud.tencent.com/developer/article/1446331 2.weston简介
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

--xwayland

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

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

Weston 9.0.90                                                                                 2019-03-23                                                                                    WESTON(1)


weston作为display-sever window-manager compositor三者合一的server，显示，窗口管理，合成
关于drm-backend.so 输出是kms，输入是evdev
关于socket，这个可以实现多个weston同时存在[多个weston的存在，监听不同的socket，对应不同的/dev/dri/cardX]
我告诉weston我有多块显卡[因为基于drm-backend的weston与driver的约定接口是/dev/dri/cardX]
启动多个weston，对应的client使用不同的socket，使用的功能方式可以是多种多样的[因为weston与client的约定接口是socket]

关于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:

Key1=Value1
Key2=Value2
...

The spaces are significant.  Comment lines are ignored:

#comment

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

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

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

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.

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.

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

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

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)  保证渲染间隔repaint-window 确认是否需要input设备require-input 设置某个屏幕是分辨率[多个选一个][output]；name=Virtual-1；mode=1920x1080 设置热插拔是否灭屏force-on 设置合成是否纯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 ... • rk3399 linuxSDK ui界面使用weston 屏幕旋转180度方法： 编辑 /etc/xdg/weston/weston.ini 文件，增加如下语句 [output] name=DSI-1 transform=180 其中name为你的显示屏名称，可以通过如下命令来查看显示屏名称： ... weston设置屏幕旋转180度方法修改标题栏位置启动配置文件 屏幕旋转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本身相
• 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
#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分支...
• 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是一套display server(Wayland compositor)与client间的通信协议，而Weston是Wayland compositor的参考实现。其官网为http://wayland.freedesktop.org/。它们定位于在Linux上替换X图形系统。X图形...
• 本文简单介绍 Weston 常用的几种 backend 启动方式。目前最新的 Weston 8.0.0 支持如下几种 backend： drm-backend fbdev-backend headless-backend rdp-backend wayland-backend x11-backend 其中 headless-...
• 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图形...
• 要求窗口为黑色，不显示工具栏 修改文件：/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。 依存关系 轨道取决于两件事：...
• 本文旨在总结最进工作经验以及汇总之前博文 ...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的项目存储库

...