Ubuntu 7256 Published by

Canonical released Mir 2.31.0 on 4 November 2026, a stabilization update to the open-source display-server library built from 366 commits across 21 contributors. The release bumps no library ABIs and removes no public APIs, sending a deliberate signal that it's a safe upgrade for integrators. Headline changes include a freely positioned on-screen magnifier, a new output-configuration API, and experimental privacy-preserving buffer-capture support. Mir keeps powering Ubuntu Frame, Miriway, and Ubuntu Touch as the project edges toward a fully Rust-based compositor on its published roadmap.



Canonical ships Mir 2.31.0, an update that changes almost nothing on purpose

Canonical released Mir 2.31.0 on 4 November 2026, the open-source display-server library that quietly keeps kiosks, signage, and in-car displays running. The previous version shipped on 24 September 2026. Between then and now the project absorbed 366 commits from 21 contributors across 397 changed files, and it was actually tagged a little after midnight by the CI bot.

Here's the twist. Mir 2.31 bumps no library ABIs and removes no public APIs. It's a stabilization cycle, not a disruptive one. For anyone about to ship this in production, "nothing moved" is exactly the quiet reassurance you want to see.

Mir

A small list of the genuinely new stuff

If you've never dug into this side of Linux, Mir is easy to get wrong. It isn't a desktop. You won't recognize it as the default chrome of your distro the way you'd see GNOME or KDE. Instead it's a library. Think of the plumbing that used to require three separate programs, a display server, a compositor, and a window manager, now bundled into one.

And it does something most people assume it doesn't. Mir implements the Wayland protocol, so it's actually a Wayland compositor. Native Wayland apps run straight through, and an Xwayland sandbox keeps the older X11 stuff alive in isolation. Canonical markets it as "the fast, open and secure display server for any device."

The security angle matters more here than in a desktop release. Every app talks to the server only through its own private socket, so a nasty client can't just snoop on another client's keystrokes or screen. That isolation is the whole reason Mir turns up in unattended hardware.

The most obvious thing you'd actually notice is accessibility work. The on-screen magnifier can now sit independently of the pointer. On a touch device with no cursor, that's genuinely meaningful, and you can move, resize, and zoom the area with a single touch. Compositor authors opt in with one line: miral::Magnifier::set_behavior().

MirAL also gains a proper output-configuration API. Applications can shape display layouts before they take effect and check the result afterward, filling a gap that Xrandr-style tooling has left open for years. There's an interesting tangent here worth a moment: Mir has spent the last several years building its own standardized way to describe and confirm display layouts, which is unusual for something most people assumed was just an internal detail.

Then there are the Wayland protocol additions. The experimental ext_foreign_buffer_v1 lets one client hand the compositor an opaque buffer, the kind you'd want for a privacy-preserving alt-tab switcher that previews a window without exposing its full contents to everyone else. Canonical wants to push that upstream to Freedesktop. xdg-decoration and mir_shell_v1 both got version bumps, and touchpads can finally use libinput's circular scrolling.

One addition deserves an eyebrow raise. MirAL authorization policies can now inspect a client's AppArmor, Snap, and Flatpak metadata. Canonical is clear about the intent, though: that sandbox data is meant to restrict permissions, not hand out new privileges. Read the fine print before you assume it unlocks anything.

The under-the-hood work is less glamorous and probably more important. Rust stays a mandatory build dependency, having been made so back in 2.30; 2.31 just hardens the path, landing native Debian builds and clean source-package uploads whenever rustc is present. A fix also stopped cargo from fork-bombing in CI, which is the sort of thing you only hear about because someone's pipeline went up in flames. The graphics code got split up, with RenderingProviders and DisplayProviders pulled out of platform.h and a blit-only interface added, and atomic KMS failures now fail loudly instead of silently corrupting your display. That last one is a good change.

Why the quiet release actually matters

Mir tracks Ubuntu's cadence. 2.31 sits alongside the Ubuntu 26.04 LTS series and is also being built for 26.10, so if you're deploying it you're deploying it inside a long-lived track, not as a floating point release.

The device ecosystem around Mir is where it earns its keep. Ubuntu Frame, the kiosk and signage shell, shipped its matching build on 7 October 2026, adding HDMI-CEC power control so it can flip connected TVs on, route input, or put them to standby in sync with the display config. Those are long-term support releases: 5 years of fixes, extending to 10 with Ubuntu Pro.

Miriway is the lightweight desktop shell on Mir. Ubuntu Touch is moving its Lomiri session onto Mir 2.x, with a first demo slotted for late October 2026, right as 2.31 lands. Community work like the Miracle WM compositor, with its famously wobbly windows, shows the foundation is being built on by others.

It's easy to forget this all started as a desktop play. Mir was announced on 4 March 2013 as the display backbone for the abandoned Unity 8, and it went about as well as you'd expect. Wayland developers pushed back hard, Kubuntu said it would stick with X, and in September 2013 an Intel developer pulled XMir support from an open-source driver, writing that they did "not condone or support Canonical in the course of action they have chosen." By 2017 Canonical had quietly dropped Unity 8 as a consumer desktop in favor of GNOME. Mark Shuttleworth said Mir would live on for IoT and embedded. A desktop gamble became infrastructure. Four years on, 2.31 reads less like a comeback story and more like proof the plumbing still holds up.

For what it's worth, this is arguably one of the more honest releases you'll see from any serious project. No feature bloat, no API churn, just a careful polishing of things that were already there. It's not cheap to decide whether that's enough, but for an embedded buyer it lands as a mature, ABI-stable foundation with meaningfully better accessibility and display configuration.

Keep in mind that Debian has to promote an older Mir to unstable before adopting a new one, and the mandatory Rust dependency could hold some distros back for a bit. If you're running a non-Ubuntu distro, budget for that friction.

Head here to pull the source from GitHub.