This is an old revision of the document!


Wayland

This page is under development!

Wayland is a protocol for a compositing window manager to talk to its clients, as well as a library implementing the protocol. It is supported on some desktop environments like GNOME and KDE. There is also a compositor reference implementation called Weston. XWayland provides a compatibility layer to seamlessly run legacy X11 applications in Wayland.

Requirements

Most Wayland compositors only work on systems using Kernel mode setting. Wayland by itself does not provide a graphical environment; for this you also need a compositor such as #Weston or Sway, or a desktop environment that includes a compositor like GNOME or KDE.

Weston

Weston is the reference implementation of a Wayland compositor.

Installation

Install the weston package.

# pacman -S weston

Usage

Super (windows key) can be changed, see weston.ini.
Keyboard Shortcuts
Cmd 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

To launch Weston natively (from a TTY) or to run Weston inside a running X session:

$ weston

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

Configuration

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.

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=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-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=/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/iceweasel-uxp.png
path=MOZ_GTK_TITLEBAR_DECORATION=client /usr/bin/iceweasel-uxp
 
#[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=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/iceweasel-uxp.png
path=/usr/bin/iceweasel-uxp

XWayland

Install the xenocara-server-xwayland package.

pacman -S xenocara-server-xwayland

When you want to run an X application from within Weston, it spins up Xwayland to service the request. The following configuration is shown above:

~/.config/weston.ini
 
[core]
xwayland=true

GUI libraries

Acknowledgement

This wiki article is based on ArchWiki. We may have removed non-FSDG bits from it.