Mir 2.26

16 April 2026

What’s new in Mir 2.26.0

Touch input in the Rust evdev platform

The Rust evdev input platform now handles touch events and reports input events (#4671, #4769). Initial events are no longer lost, and pointer button state is stored per device, avoiding interference between devices (#4780, #4680). The device module and event processing are reorganized to support continued development (#4722, #4740). Work also begins on a Rust Wayland frontend.

Input triggers and cursor capture

Mir introduces the first implementation of the ext-input-triggers protocols, with clarified action-token validity and availability (#4328, #4410, #4770). Cursor sessions in ext_image_copy_capture_v1 are partially implemented and can send the cursor image (#4632, #4685).

Window transparency and cursor observation

Compositors can set a window’s alpha and retrieve it through WindowInfo (#4704). Cursor observers can monitor image changes and receive the initial cursor state when registered (#4579, #4662).

Minor features

Compositor development

MinimalWindowManager is refactored for easier specialization (#4666). MirAL templates gain requires clauses (#4764). Logging APIs and defaults move to mircore (#4644), and error-string conversion uses thread-safe strerror_r() (#4590).

Window and display fixes

  • X11 window destruction uses the correct request, and XCB replies are freed (#4560, #4559).

  • Fullscreen video in Google Chrome works even when the window was not already fullscreen (#4688).

  • X11 publishes _NET_CLIENT_LIST_STACKING (#2023).

  • Fatal signal handling is made safer (#2658).

  • The atomic KMS capability check uses the correct ioctl, and primary-plane CRTC selection is improved (#4774, #3972).

  • Transparent surfaces are not treated as fully occluding other content merely because they declare an opaque region (#4696).

New contributors

First contributions in this release come from @DiegoOst (#4572), @magedss (#4582), @aliihsancengiz (#4591), @thomaskroi1996 (#4576), @DigraJatin (#4593), @pierre-l (#4697), @yotam-medini (#4750), and @krzysztof-buczak-red (#4776).