Server-side decorations landed for XWayland

Mir has had experimental XWayland support for a while now. This allows applications that do not support Wayland natively to run in Mir. A major usability issue with XWayland in Mir was a lack of server-side decorations. X11 apps expect a window manager to provide any desired window decorations, such as a titlebar and border. Without these, the window couldn’t be resized or moved in Mir. As of now, support for server-side decorations (SSDs) is merged into Mir master, and enabled for XWayland windows.

Blender and HexChat running in Mir with decorations
Blender and HexChat running in Mir with SSDs via XWayland

These decorations are available by default in Mir, and it is our intention to allow shells using Mir to provide their own SSD implementation if they wish. This would allow, for example, a GTK based desktop environment to draw its decorations with GTK and achieve a consistent experience between all apps. A MirAL interface to do this does not yet exist, but should be simple to create.

It’s not just X11 that could benefit. There are already protocols that allow Wayland apps to request server-side decorations. Mir doesn’t currently implement any such protocols, but could in the future. A shell could also implement an SSD protocol as a bespoke Wayland extension.

SSDs fix one of the most glaring problems with XWayland support in Mir, but there are still a number of serious issues. Some, like broken popups, are obvious. Others, like race conditions less so. Expect steady improvement in these areas in the coming months until XWayland in Mir is fully usable–if not quite as polished as native Wayland.

4 Likes

A quick note for those that like to experiment:

As @wmww says X11 support is still experimental. That means it isn’t automatically enabled in the Mir examples. However, the egmde snap enables it and the improvements he’s been making can be seen on the --edge channel.

For a bit of seasonal color you can also customize the “wallpaper”:

sudo snap install egmde --edge
egmde --wallpaper-top 0x003000 --wallpaper-bottom 0x200000

image

1 Like

We’ve been landing further improvements to the X11 support in the run up to Xmas. We can now run our “smoke tests” on it.