Weston is a Wayland compositor designed for correctness, reliability, predictability, and performance.

Installation

Install the weston package.

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

Tip: Super (windows key) can be changed, see weston.ini
Keyboard Shortcuts 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
Note: if X is not already configured you may need to configure a keymap: Keyboard configuration in Xorg

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.

See also