We’re pleased to announce the release of Mir 2.26.0. This includes bugfixes and improvements in a number of areas.
We’ve been working on the implementation of ext_image_copy_capture_v1 and have implemented the draft input-triggers protocols. These are privileged (and so not available by default).
There’s also been work on a Rust based input platform: this is not the default and (in this release) not quite ready but proves our strategy for integrating Rust code into Mir.
We would also like to call out the number of first time contributors listed below. Thank you all, and also all our existing contributors: Mir is growing because of your efforts.
ABI summary:
- mircommon ABI bumped to 12
- mirserver ABI bumped to 67
Enhancements:
- [evdev-rs] Implementing touch events in the evdev-rs platform #4671
- [evdev-rs] Fix missing initial events in evdev-rs #4780
- [evdev-rs] Add input event reporting to the evdev-rs input platform #4769
- [evdev-rs] Cleanup of the device module in evdev-rs #4722
- [evdev-rs] Fix evdev-rs pointer events by moving button state to per-device storage #4680
- [evdev-rs] Refactor the event processing logic in evdev-rs to increase clarity #4740
- [wayland-rs] Started implementing Wayland frontend in Rust
- Allow CursorObservers to monitor when the cursor image changes #4579
- Add requires clauses to libmiral templates #4764
- [Wayland] ext-input-triggers - MVP (V1) #4328
- [Wayland] Implement ext-input-triggers #4410
- [Wayland] Update
ext-input-trigger-action-v1.xmlto add more details about token validity and availability #4770 - [Wayland] Partial implementation of ext_image_copy_capture_v1 cursor sessions #4632
- [Wayland] Send the cursor image via
ext_image_copy_capture_v1#4685 - feature: replace
strerror()with thread safe version(strerror_r()) #4590 - feature: Move logging APIs (and defaults) to mircore #4644
- CursorObserverMultiplexer sends the initial state to newly registered CursorObservers #4662
- Refactor
MinimalWindowManagerfor better specialization #4666 - Add the ability to set the alpha of a Window and retrieve it via WindowInfo #4704
Bugs fixed:
- BasicXCBConnection::destroy_window calls xcb_map_window instead of xcb_destroy_window #4560
- XCB replies not always freed #4559
- Making videos fullscreen in Google Chrome fails if the window isn’t already fullscreen #4688
- [X11] Set
_NET_CLIENT_LIST_STACKING#2023 - Fatal signal handling is wildly unsafe #2658
DRM_CLIENT_CAP_ATOMICcheck is performed with wrong ioctl call #4774- Clean up and improve
mgk::find_crtc_with_primary_plane#3972 - If a surface has an opaque region BUT the alpha is not 1.0, then we shouldn’t use it as an occlusion #4696
New Contributors
- @DiegoOst made their first contribution in Replace atoi with std::from_chars (#4569) by DiegoOst · Pull Request #4572 · canonical/mir · GitHub
- @magedss made their first contribution in Changing %d to %u when logging the output of wl_resource_get_id by magedss · Pull Request #4582 · canonical/mir · GitHub
- @aliihsancengiz made their first contribution in https://github.com/canonical/mir/pull/4591
- @thomaskroi1996 made their first contribution in https://github.com/canonical/mir/pull/4576
- @DigraJatin made their first contribution in Fix/logging snprintf negative time 4556 by DigraJatin · Pull Request #4593 · canonical/mir · GitHub
- @pierre-l made their first contribution in fix: preserve errno when close() follows a failed unlink() (#4557) by pierre-l · Pull Request #4697 · canonical/mir · GitHub
- @yotam-medini made their first contribution in https://github.com/canonical/mir/pull/4750
- @krzysztof-buczak-red made their first contribution in Perform DRM client cap check with proper ioctl call by krzysztof-buczak-red · Pull Request #4776 · canonical/mir · GitHub