Easy to use, by design
One of the driving principles behind the design of the Mir libraries has been to separate out different concerns and make them independently configurable. This makes it easy to address one thing at a time.
A few recent incidents have reminded me of how effective this has been.
“How do I test multi-monitor?”
This came up on IRC:
<pajn-> Is it possible to configure the x backend to open two or more window for testing out multimonitor behavior?
<Saviq> pajn-: I believe wmww enabled this some time ago
<alan_g> IIRC you provide a colon separated list to `--x-output`
<pajn-> Too easy, thank you!
“Can I test things with mir-on-x from within my existing x session?”
This came up on telegram:
hmm, how does one force xwyaland to use a specific display?
i want it to open the X socket at something other than :0 so i can run it to test things with mir-on-x from within my existing x session
If you use the egmde snap, that’s automated for you.
no snaps here, and egmde worked fine. I want to run xwayland on top of egmde and needed to set the display different for it (but -help didn’t help and it’s been a very long time since i’ve had to run X server directly in that manner)
egmde —x11-display 1
And because things are handled nicely you can use both of these solutions at the same time:
egmde --x11-display 1 --x11-output 600x400:800:700
How do I add a Wayland extension protocol?
How do I add support for <some graphics hardware and/or drivers>?
The Mir team provide support for three graphics stacks “out of the box”:
mesa-kms enables the main Linux “open driver” stack
mesa-x11 enables running on top of an X11 desktop
eglstream-kms enables the binary nVidia driver
This is not the end, other “platforms” are possible and planned. For example, the UBports team maintain support for libhybris/android so that Mir can also be used on phone hardware built with binary android graphics drivers.
Changing the driver “platform” does not change the way the rest of Mir works. If you write a Mir based shell it will work with any of the above.
How do I write a Mir based shell?
How to install and try a Mir based shell?