Weston
Weston is a Wayland compositor designed for correctness, reliability, predictability, and performance.
Installation
Usage
To launch Weston natively (from a TTY) or to run Weston inside a running X session:
$ weston
See weston(1) for details and configuration flags.
Demo applications
Then within Weston, you can run the demos. To launch a terminal emulator:
$ weston-terminal
To move flowers around the screen:
$ weston-flower
To display images:
$ weston-image image1.jpg image2.jpg...
Shortcuts
Super
(windows key) can be changed, see weston.ini
Command | Action |
---|---|
Ctrl+Alt+Backspace
|
Quit Weston |
Super+Scroll (or PageUp /PageDown )
|
Zoom in/out of desktop |
Super+Tab
|
Switch windows |
Super+LMB
|
Move Window |
Super+MMB
|
Rotate Window |
Super+RMB
|
Resize Window |
Super+Alt+Scroll
|
Change window opacity |
Super+k
|
Force Kill Active Window |
Super+Up/Down
|
Switch Prev/Next Workspace |
Super+Shift+Up/Down
|
Grab Current Window and Switch Workspace |
Super+Fn
|
Switch to Workspace n (e.g. F2) |
Super+s
|
Take a screenshot |
Super+r
|
Record a screencast |
Configuration
Following is an example configuration file. See weston.ini(5) for more.
~/.config/weston.ini
[core] # xwayland support xwayland=true [libinput] enable-tap=true [shell] #background-image=/usr/share/backgrounds/gnome/Aqua.jpg background-type=scale-crop background-color=0xff000000 #background-color=0xff002244 #panel-color=0x90ff0000 panel-color=0x00ffffff panel-position=bottom #clock-format=none #animation=zoom #startup-animation=none close-animation=none focus-animation=dim-layer #binding-modifier=ctrl num-workspaces=6 locking=false cursor-theme=Adwaita cursor-size=24 # tablet options #lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png #lockscreen=/usr/share/backgrounds/gnome/Garden.jpg #homescreen=/usr/share/backgrounds/gnome/Blinds.jpg #animation=fade # for Laptop displays [output] name=LVDS1 mode=preferred #mode=1680x1050 #transform=rotate-90 #[output] #name=VGA1 # The following sets the mode with a modeline, you can get modelines for your preffered resolutions using the cvt utility #mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync #transform=flipped #[output] #name=X1 #mode=1024x768 #transform=flipped-rotate-270 # on screen keyboard input method #[input-method] #path=/usr/lib/weston/weston-keyboard [keyboard] keymap_rules=evdev #keymap_layout=us,de #keymap_variant=colemak, #keymap_options=grp:shifts_toggle #keymap_options=caps:ctrl_modifier,shift:both_capslock_cancel repeat-rate=30 repeat-delay=300 # keymap_options from /usr/share/X11/xkb/rules/base.lst #numlock-on=true [terminal] font=monospace font-size=18 [launcher] icon=/usr/share/weston/icon_flower.png path=/usr/bin/weston-flower [launcher] icon=/usr/share/icons/gnome/32x32/apps/utilities-terminal.png path=/usr/bin/weston-terminal --shell=/usr/bin/bash #[launcher] #icon=/usr/share/icons/gnome/32x32/apps/utilities-terminal.png #path=/usr/bin/gnome-terminal [launcher] icon=/usr/share/icons/hicolor/32x32/apps/firefox.png path=MOZ_ENABLE_WAYLAND=1 /usr/bin/firefox #[launcher] #icon=/usr/share/icons/Adwaita/32x32/apps/multimedia-volume-control.png #path=/usr/bin/st alsamixer -c0
Minimal weston.ini
:
~/.config/weston.ini
[core] xwayland=true [keyboard] keymap_layout=gb [output] name=LVDS1 mode=1680x1050 transform=rotate-90 [launcher] icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png path=/usr/bin/weston-terminal [launcher] icon=/usr/share/icons/hicolor/24x24/apps/firefox.png path=/usr/bin/firefox
Monitors
Weston's outputs differ slightly from those of xorg.conf
Monitors:
$ ls /sys/class/drm
card0 card0-VGA-1 card1 card1-DVI-I-1 card1-HDMI-A-1 card1-VGA-2
card0
is the unused built-in video adapter. The add-on adapter card1
is cabled to one HDMI and one DVI monitor, so the output names are HDMI-A-1
and DVI-I-1
.
Xwayland
See Wayland#Xwayland for details and an overview of available packages.
Set the following to activate the use of Xwayland:
~/.config/weston.ini
[core] xwayland=true
High DPI displays
For Retina or HiDPI displays, use:
~/.config/weston.ini
[output] name=... scale=2
Shell font
Weston uses the default sans-serif font for window title bars, clocks, etc. See Font configuration#Set default or fallback fonts for instructions on how to change this font.
Tips and tricks
Screencast recording
Weston has built-in screencast recording which can be started and stopped by pressing the Super
+r
key combination. Screencasts are saved to the file capture.wcap
in the current working directory of Weston. The WCAP format is a lossless video format specific to Weston, which only records the difference in frames. To be able to play the recorded screencast, the WCAP file will need to be converted to a format which a media player can understand. First, convert the capture to the YUV pixel format:
$ wcap-decode --yuv4mpeg2 capture.wcap > capture.y4m
The YUV file can then be transcoded to other formats using FFmpeg or x264 (see x264 -h
for more).
Window switching
To switch windows with Super+Space
instead of Super+Tab
change KEY_TAB
to KEY_SPACE
in desktop-shell/shell.c
and recompile weston.
Touch display mapping
Touch display mapping can be achieved through the use of udev rules. Just like the WL_SEAT
or ID_SEAT
device environment variable binds the device to a specified seat, the WL_OUTPUT
variable may be used to bind the device to the appropriate output. This variable should match a monitor name. See #Monitors for an explanation of the monitor naming convention.