Mir 2.25¶
17 December 2025
Mir 2.25.2¶
Build and package upgrades¶
pkg-config discovery finds xkbcommon.h on openSUSE Tumbleweed, fixing builds that could not locate the header (#4544).
libmirplatform-dev can be upgraded when mir-renderer-gl-dev is installed, addressing the transition from the old renderer development package (#4563).
Mir 2.25.1¶
pkg-config version information¶
Mir’s pkg-config files include their missing version information again. Downstream builds can use this metadata when checking Mir dependency versions (#4544).
What’s new in Mir 2.25.0¶
Wayland capture, data control and toplevel listing¶
Mir supports ext_foreign_toplevel_list_v1 and ext-data-control.
Initial, partial implementations of ext-image-capture-source and ext-image-copy-capture provide the foundations for image capture.
Wayland extension management is reworked so connections originating from the server can always use their required extensions.
Rust input platform¶
An evdev input platform implemented in Rust is introduced alongside the existing input infrastructure. The input-platform explanation is updated with threading information for developers working on input handling.
Accessibility and application switching¶
Cursor-scale animation is improved and LocatePointer is added to help users find the pointer.
ApplicationSwitcher provides application-switching support, with StandardApplicationSwitcher offering an easier integration path for shells.
The new FloatingWindowManager provides a replacement for MinimalWindowManager.
Minor features¶
Compositor APIs and logging¶
Window rendering handles opaque regions on transparent surfaces.
Security events use OWASP-style logging, geometry::Value gains generic accessors for type-safe conversion, and mir::report_exception() moves to mircore.
The mirplatform headers needed by external consumers are published.
Rendering and input fixes¶
Cursor icons update with XTerm (#4134). If no requested cursor theme loads, Mir falls back to its internal theme (#439).
The magnifier filter handles events correctly when magnification reaches its limits (#4386).
GL resource destruction ensures the correct EGL context is current (#4460).
XWayland menus use cached geometry to initialize their position (#4512).
Subsurface placement above or below the parent respects z-ordering (#4332).
WindowInfo::clip_areaaccounts for scaled outputs (#4484).The platform checks
DRM_CAP_SYNCOBJ_TIMELINEbefore providingDRMRenderingProvider.Cursor scaling no longer truncates the size in a way that can cause a crash (#4377); an intermittent crash is also fixed (#4323).
Developer documentation¶
The project adds a release-notes template and Copilot instructions, updates its input-platform threading explanation, and refreshes documentation links.
Backwards-incompatible changes¶
Renderer packaging¶
The separate mir-renderer-gl components are folded into mirplatform. Consumers of the former renderer packages should review their build and package dependencies when upgrading.
Deprecated features¶
MinimalWindowManager¶
MinimalWindowManager is deprecated in favour of FloatingWindowManager.
New compositor implementations should use the replacement, and existing implementations should plan their migration.