Last edited 5 years ago

Weston keyboard shortcuts

Weston is the reference implementation of a Wayland compositor.

The table below lists the actions that can be performed through Weston keyboard shortcuts, when the development board is connected to a keyboard.

It must be noted that:

  • <modifier-key> in the table below corresponds to the key used for common bindings. It is defined by binding-modifier=<modifier-key> in the /etc/xdg/weston/weston.ini file. Possible values for <modifier-key> are:
    • "super", i.e. Windows key between "ctrl" and "alt" (default Weston value)
    • "ctrl" (default value in STMicroelectronics images)
    • "alt"
    • "none"
  • The shortcuts are defined in desktop-shell/shell.c[1] file (shell_add_bindings() function)
  • Some shortcuts require that both a keyboard and a mouse are connected to the development board
  • Some shortcuts require that several workspaces are defined. The number of workspaces is defined by num-workspaces=<num-workspaces> in the /etc/xdg/weston/weston.ini file. The maximum number of workspaces is 6. If num-workspaces is not set, one single workspace is configured.
  • The left mouse button allows the activation of a window.

Before proceeding, it is recommended to

  • check the <modifier-key> value:
  grep binding-modifier /etc/xdg/weston/weston.ini                                             
binding-modifier=ctrl

  • check the <num-workspaces> value:
 grep num-workspaces /etc/xdg/weston/weston.ini                                             
num-workspaces=6


Weston keyboard shortcuts
Command Action Condition(s)
ctrl + alt + backspace Kill Weston Keyboard
super + scroll Zoom in / out the desktop Keyboard + mouse
super + alt + scroll Change activated window opacity Keyboard + mouse
<modifier-key> + page up / page down Zoom in / out the desktop Keyboard
<modifier-key> + shift + f Put activated window fullscreen Keyboard
<modifier-key> + left mouse button Move activated window Keyboard + mouse
<modifier-key> + middle mouse button Rotate activated window Keyboard + mouse
<modifier-key> + right mouse button Resize activated window Keyboard + mouse
<modifier-key> + shift + left mouse button Resize activated window Keyboard + mouse
<modifier-key> + tab Switch windows Keyboard
<modifier-key> + k Kill activated window Keyboard
<modifier-key> + key up / key down Switch to previous / next workspace Keyboard + workspaces
<modifier-key> + shift + key up / key down Move activated window to previous / next workspace Keyboard + workspaces
<modifier-key> + Fn Switch to workspace n Keyboard + workspaces
super + s Capture a screenshot (see details below) Keyboard
super + r Start / stop recording a screencast (see details below) Keyboard

Additional shortcuts can be found on internet.

1. Capturing a screenshot

  1. Refer to the table above for the command to be used.
  2. The captured picture (PNG format) is automatically stored in /wayland-screenshot-2018-01-06_01-48-19.png.
  3. Copy the screenshot from the board to the host PC in the <file-path> directory (for example with the scp command).
 scp root@<ip address>:/wayland-screenshot-*.png <file-path>/

Note: a screenshot capture is also named a snapshot or a screen capture.

2. Recording a screencast

  1. Refer to the table above for the command to be used.
  2. The recorded screencast (WCAP format) is automatically stored in /capture.wcap. The WCAP format is a lossless video format specific to Weston (only the frame differences are recorded).
  3. To play the recorded screencast, convert it to a format that can be interpreted by any video player (e.g. VP8). Three steps are required:
  • On the board, convert the WCAP file into a YUV file using wcap-decode:
 wcap-decode capture.wcap --yuv4mpeg2 > capture.y4m
  • Copy the YUV file from the board to the host PC in the <file-path> directory (for example with the scp command):
 scp root@<ip address>:/capture.y4m <file-path>/
  • On the host PC, transcode the YUV file to any other well-known format (e.g. VP8) using ffmpeg:
 ffmpeg -i capture.y4m -c:v libvpx -b:v 1M capture.webm
  • Optionally, choose a higher bitrate (-b:v 1M means a target bitrate of 1 MBit/s) if a better quality is required. Optionally, use the transpose parameter when a 90 degree clockwise rotation is needed:
 ffmpeg -i capture.y4m -vf transpose=1 -c:v libvpx -b:v 1M capture.webm
Info white.png Information
Note that the YUV file size might be huge if the recording is long (see example below).

Example:

  • On the board: a 5-second screencast is recorded
 wcap-decode capture.wcap --yuv4mpeg2 > capture.y4m
wcap file: size 720x1280, 192 frames
 ls -l capture.*
-rw-r--r-- 1   8246868 Dec 13 14:58 capture.wcap
-rw-r--r-- 1 167821312 Dec 13 14:59 capture.y4m
  • On the host PC
 scp root@<ip address>:/capture.y4m .
 ffmpeg -i capture.y4m -vf transpose=1 -c:v libvpx -b:v 1M capture.webm
 ls -l capture.*
-rw-r--r-- 1    104470 Feb  8 11:01 capture.webm
-rw-r--r-- 1 167821312 Feb  8 10:56 capture.y4m


References list: