What you’ll learn
In this tutorial we will create a snap of an X11 application to act as the graphical user interface for an IoT or kiosk device. For the introduction to this tutorial series and the Mir display server please visit here.
X11 is a legacy protocol, it is known to be insecure, so we need to take steps to ensure it is secured correctly. To do this we shall embed an intermediary Xwayland server in the application snap and use snapd’s infrastructure to maintain security.
This tutorial assumes you are familiar with the material in Make a Wayland-native Kiosk snap. In particular, techniques for debugging problems in your snap are not repeated here.
What you’ll need
- An Ubuntu desktop running any current release of Ubuntu, or an Ubuntu Virtual Machine on another OS.
- A ‘Target Device’ from one of the following:
A VM. You don’t have to have a physical “Target Device”, you can follow this tutorial using Ubuntu Core in a VM instead.
Install the ubuntu-core-vm snap:
sudo snap install --beta ubuntu-core-vm --devmode
For the first run, create a VM running the latest Core 18 image:
sudo ubuntu-core-vm init.
From then on, you can spin it up with:
Which should show you a new window with Ubuntu Core running inside. Setting up Ubuntu Core on this VM is the same as for any other device or VM. See, for example, https://developer.ubuntu.com/core/get-started/kvm.
Using Ubuntu Classic You don’t have to use Ubuntu Core, you can use also a “Target Device” with Ubuntu Classic. Read this guide to understand how to run kiosk snaps on your desktop, as the particular details won’t be repeated here.