Mir release 2.17.0

The Mir team is happy to announce the release of Mir 2.17.0. This is a long-awaited release containing many new exciting features and bugfixes.

ABI summary

  • miral ABI bumped to 7
  • mircommon ABI bumped to 10
  • mircookie has been removed
  • mircore ABI unchanged at 2
  • miroil ABI bumped to 5
  • mirplatform ABI bumped to 28
  • mirserver ABI bumped to 60
  • mirwayland ABI bumped to 5
  • mirplatformgraphics ABI bumped to 22
  • mirinputplatform ABI bumped to 9


  • [Wayland] wlr foreign toplevel management protocol returns the desktop id as the app_id if it can. (PR: #3147)
  • [Wayland] Prototype an implementation of the mir-shell protocol (PR: #3166)
  • [Wayland] Add support for zwlr_layer_surface_v1::set_exclusive_zone(-1) (Fixes: #1992)
  • [Wayland] Add support for wl_surface enter/leave events. (Fixes: #342)
  • [platforms] Much better display and graphics platform selection, especially for hybrid and Nvidia systems. (PR: #3220)
  • [input] Add HW cursor support. (Fixes #3198)
  • [miral] Add support for logind lock and unlock so that compositors may implement some behavior in response to these signals, like showing a lockscreen. (PR: #3232)
  • [miral] Provide a mechanism to allow 3rd-party compositors to override the renderer in miral. (PR: #3338)
  • [mirserver] Provide access to the Surface from the Renderable. (PR: #3355)
  • [window management] Foating window manager places new windows at an offset from the previously opened window. (Fixes #3175)
  • [snap] Build mir-libs for both core22 and core24. (PR: #3364)
  • [snap] Drop snap support for 23.04. (PR: #3208)
  • [doc] Move documentation from Discourse to readthedocs. (PR: #3311)
  • [misc] Add support for floating point command line options. (PR: #3324)

Packaging changes

  • Remove mircookie. (PR: #3178)
  • Add libmirserver-internal-dev. (PR: #3288)
  • Add mircommon-internal-dev. (PR: #3328)

Bugs fixed

  • [window management] Fix dragging and resizing of satellite windows. (PR: #3156)
  • [Wayland] wlr layer shell surfaces that are east/west attached always push north/south attached surfaces out of the way. (Fixes: #3128)
  • [graphics platforms] Fix changing scale at runtime leading to misrendering (Fixes: #3165)
  • [rendering] Sever-side decorations are now scale-aware (Fixes: #1369)
  • [rendering] Fix transformation for Layout::TopRowFirst in the renderer. (Fixes: #3185)
  • [XWayland] No longer killing X11 apps whose pop-ups don’t support WM_DELETE_WINDOW. (Fixes: #3177)
  • [rendering] When the layout of the texture disagrees with the layout of the output surface, then the clip area needs to be modified. (Fixes: #3201)
  • [graphics platforms] Allow for multiple RenderingPlatforms of each type. (Fixes: #3205)
  • [window management] Alt + grave implements the same window cycling behavior as alt + tab. (PR: #3216)
  • [Wayland] Wrapper generator no longer ignores requests with destructor attribute. (Fixes: #3241)
  • [graphics platforms] Ignore zero-length gamma curves on the gbm-kms platform, which are seen after the display wakes up. (Fixes: #3238)
  • [graphics platforms] No longer assume that a mir:virtual platform exists. (Fixes: #3261)
  • [Wayland] Add a quirk to the DesktopFileManager’s resolution of gnome-terminal-server (PR: #3264)
  • [Wayland] Fix the clip area in the renderer so that wlr-screencopy-unstable-v1 outputs the correct image (Fixes: #3236)
  • [graphics platforms] Fix for eglQueryDmaBufModifiersEXT spuriously returning EGL_BAD_PARAMETER for a few formats on the Nvidia platform (Fixes: #3278)
  • [Wayland] Fix incorrect screenshots on rotated displays (Fixes: #3259)
  • [misc] Fix propagation of custom attributes on outputs. (Fixes: Not respecting snap-name · Issue #172 · canonical/ubuntu-frame · GitHub)
  • [window management] Fix positioning of satellite windows. (PR: #3313)
  • [rendering] Major simplification of surface buffering. (PR: #3316)
  • [Wayland] Fix race in virtual-pointer-v1 destruction (Fixes: #3300)
  • [graphics platforms] Fix hang on Nvidia platform when a display configuration is detected. (Fixes: #3375)

I’ve updated Mir in Rawhide (which currently will become Fedora 41) to 2.17.0. I’m not planning to ship Mir 2.17.0 to Fedora 40 and older, given the significant ABI breakage. It should become available within the next 24 hours on the mirror network for Rawhide users.