Custom compositing in Mir servers

Although Mir 1.0 hasn’t quite shipped yet my thoughts are turning to what we do next. One of the work items that got paused was removing the mirserver dependencies from QtMir.

While Canonical isn’t using QtMir, the purpose of the affected code is still relevant. It enables custom compositing for transitions and other effects and this is of continuing, wider, interest.

Clearly Qt isn’t the only framework that might want to customize the way the server composites the scene and Mir ought to support a range of options through a stable, well thought out API.

We need to start somewhere. A few conversations over the past few days have identified a couple of options: GDK4 and Clutter.

I don’t know enough yet to prioritise or plan this work, but input from anyone interested in helping get one of these toolkits working would be great.

Mir support for Wayland

I’ve seen some confusion about how Mir is supporting Wayland clients on the Phoronix forums . What we are doing is teaching the Mir server library to talk Wayland in addition to its original client-server protocol. That’s analogous to me learning to speak another language (such as Dutch).

This is not anything like XMir or XWayland. Those are both implementations of an X11 server as a client of a Mir or Wayland. (Xmir is a client of a Mir server or and XWayland is a client of a Wayland server.) They both introduce a third process that acts as a “translator” between the client and server.

The Wayland support is directly in the Mir server and doesn’t rely on a translator. Mir’s understanding of Wayland is going to start pretty limited (Like my Dutch). At present it understands enough “conversational Wayland” for a client to render content and for the server to composite it as a window. We need to teach it more “verbs” (e.g. to support for the majority of window management requests) but there is a limited range of things that do work.

Once Mir’s support for Wayland clients is on a par with the support for “native” Mir clients we will likely phase out support for the latter.

We’re still testing things prior to the Mir 1.0 release, and Mir 1.0 will not support “everything Wayland”. If you are curious you can install a preview of the current development version from the “Mir Staging” PPA.