What good is remote desktop on Ubuntu Core?

A bit of background

Ubuntu Core is a snap based system, and that means any applications installed on it have very limited access to the system.

Some time ago, I created egmde-confined-desktop a demonstration of a desktop environment that can be installed as confined snap. This demonstrates the limitations of such a desktop: all the applications that can be run are included in the snap and it has no access to other snaps or most of the host system.

Because it was never a serious offering but just to illustrate the possibilities and limitations it has never progress beyond the beta (based on the release version of Mir) and edge (based on the development version of Mir) release channels.

I’ve now extended this example snap by making it accessible over VNC: You can install it on a device and “remote desktop” to the device from your main computer.

Installing and running on your device

You need to have set up ssh credentials for your device (or VM) and run the following commands on your main computer.

To install on a device:

ssh <device-login> -- snap install --beta egmde-confined-desktop

To start the VNC server and set up a ssh tunnel (so that you can access it via localhost).

ssh -T -L 5900:localhost:5900 <device-login> -- egmde-confined-desktop.vnc

You can then run your favourite VNC client (I’ll show gvncviewer here, but I’ve tested that Vinagre Remote Desktop Viewer and Remmina Remote Desktop Viewer also work.)

gvncviewer localhost

You should see a window appear with the egmde desktop running from your device.

What good is it?

There are a number of “papercut” bugs with this demonstration. For example, needing to run multiple command-line incantations, and it is possible to leave the VNC server running when exiting. But, although not “production ready”, it is sufficient to illustrate the limitations of a remote desktop on Ubuntu Core:

  • There is no access to other snaps or most of the host system
  • All the applications that can be run must be included in the snap

These are the same limitations that apply to a local desktop on Ubuntu Core.

These limitations do not apply on “Classic” systems, on these the desktop can be given access to the desktop-launch interface to launch other snaps, or be packaged with classic confinement which does not restrict access to the system.