Rootless X on Mir

Registered by kevin gunn

This blueprint contains work to implement and support a "rootless" X on top of mir in order to support legacy X apps in a Unity8/mir configuration

Blueprint information

Not started
Mir development team
Needs approval
Series goal:
Milestone target:

Related branches



A bunch of these work items probably belong in a dependency blueprint - Mir On The Desktop

Note "Synaptics" is a brand. And most touchpads supported by the X "synaptics" driver are not made by Synaptics. So it's probably a good idea to name libsynaptics as libtouchsomethingelse, rather than prolong the confusion Xorg has created.

Note, work around SDL has identified another need that will be covered under the rework around the Mir input stack.
That is to include pointer warping and motion events.
related is

SDL's input requirements will be satisfied with a Viewport flag on a MirSurface - triggering pointer confinement (when focused) and relative motion event delivery - and a WarpPointer API that takes the pointer to a specified point on an application's (focused) surface.

A later addition to the Viewport flag will be opt-in keyboard-bypasses-WM behaviour, so apps which require delivery of keys that are normally eaten by the Shell (eg: <alt>+<tab>, Windows key) can receive them.

For reference, work done in Trusty/14.04 can be found here


Work Items

Work items:
[raof] Add Viewport surface flag to Mir client API: TODO
[raof] Hook up Viewport to deliver relative pointer events and confine cursor: TODO
[raof] Add WarpPointer API: TODO
[robertcarr] Hook up Mir input to X input: DONE
[raof] Implement a bridging X compositing window manager: TODO
Design and implement Mir clipboard & drag and drop infrastructure (seems related to TODO
Go over and identify the properties that we need to handle: TODO
Evaluate how much of we can beg, borrow, or steal: TODO
Implement core X clipboard protocol TODO
Test clipboard interoperability between a Mir client and {GTK2, QT4, GTK3, QT5, Java Swing} X app: TODO
Implement core X DnD protocol: TODO
Test DnD interoperability between a Mir client and {GTK2, QT4, GTK3, QT5, Java Swing} X app: TODO
[ted] UAL API for stopping apps that are multi-instance: TODO
[ted] UAL to support starting XMir transparently for apps that need it: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.