Repository navigation
What's new?
Freely positioned magnifier support
The magnifier can now be positioned independently of the pointer, making it useful on touch devices and other systems without a cursor. On-screen controls let users move and resize the magnified area and adjust its zoom with a pointer or one touch contact. Compositor authors can select this behavior with miral::Magnifier::set_behavior() or the {magnifier, behavior} live configuration option. See {ref}mir-accessibility-methods (#5135, #5207).
New API for output configuration in mirAL
MirAL now provides OutputConfiguration strategies for customizing output settings before they are applied and observing the configuration afterward (#5224).
Wayland protocol support
Mir adds experimental support for ext_foreign_buffer_v1, allowing a client to attach an opaque buffer whose contents are maintained by the compositor from an image-capture source. Availability depends on the compositor's policy and the supported image-capture source (#5203, #5274).
The unstable xdg-decoration protocol is now version 2. Clients can negotiate decoration mode throughout a toplevel's lifetime, including after attaching a buffer (#5239).
The experimental mir_shell_v1 protocol is now version 2, allowing clients to transition a managed surface between archetypes when the compositor permits it (#5343).
Minor features
Display configuration data
The output configuration API now confirms when a changed configuration has been applied (#5259, #5321). DisplayInfo also exposes the physical address read from an output's EDID (#5291).
Input and application authorization
Touch input now accounts for output transformations and scaling (#5292), and touchpads can use libinput's circular scrolling mode (#5246). Input triggers also avoid aggressively filtering key bindings (#5249).
MirAL application authorization policies can inspect client AppArmor, Snap and Flatpak metadata to restrict access to Wayland extensions. Sandbox metadata should be used to restrict permissions, not to grant additional privileges (#5209).
Full Changelog
- ppa-upload: needs
rustcinstalled for the source package by @saviq-work in #5241 - pre-commit: add ruff, and drop
png2header.pys by @Saviq in #5052 - workshop: can do X11 now, and drop useless actions by @saviq-work in #5222
- Replace strcmp/strncmp with std::string_view comparisons by @Prathamesh0901 in #5221
- Revert change that broke
generate-miral-symbols-mapby @AlanGriffiths in #5247 - Fix input triggers aggressively filtering keybinds by @mattkae with @Copilot in #5249
- Support new libinput 1.32 circular scrolling mode by @RAOF in #5246
- Add BlitterRenderingProvider interface by @RAOF in #5213
- debian,spread: move to native builds for Rust by @saviq-work in #5243
- miral: Move definitions of defaulted methods to source files so we reliably generate symbols for them by @jhenstridge in #5254
- Introducing the
ext_foreign_buffer_v1Wayland protocol by @mattkae in #5203 - Revert "Disable (by default) xdg_wm_dialog_v1" by @AlanGriffiths in #5255
- Correct spelling of LIBINPUT_CONFIG_SCROLL_CIRCULAR by @AlanGriffiths in #5258
- Call
DisplayConfigurationPolicy::confirm()after changing the configuration by @AlanGriffiths in #5259 - We can say XTerm by @AlanGriffiths in #5262
- ci: trigger PPA uploads on changelogs by @saviq-work in #5267
- Release 2.30.0 by @github-actions[bot] in #5240
- ci: run doc checks on release branches, too by @saviq-work in #5272
- Don't let cargo fork bomb by @AlanGriffiths in #5268
- ci: fix doc checks environment by @saviq-work in #5263
- miral: add freely-positioned magnifier mode with on-screen controls by @tarek-y-ismail in #5135
- renderers: extract shared GL code out of gl::Renderer by @mattkae in #5261
- Fix version node pseudo-symbols by @AlanGriffiths in #5285
- Ensure logging tags are documented in a consistent order by @AlanGriffiths in #5286
- Curry configuration wrappers by @AlanGriffiths in #5306
- tics: fix changed list for merges by @saviq-work in #5302
- Expose output configuration through libmiral by @AlanGriffiths in #5224
- update release docs for 2.30.0 by @tarek-y-ismail in #5242
- doc: fix linkcheck issues by @saviq-work in #5277
- core: fix TiCS casting violations by @saviq-work in #5295
- miral: configure freely-positioned magnifier behavior by @tarek-y-ismail in #5207
- ci: retry the most flaky steps by @saviq-work in #5308
- core: add
DisplayInfo::physical_addressby @saviq-work in #5291 - Add presentation planning interface and report presentation results by @tarek-y-ismail in #5290
- Gate fullscreen bypass on output filters and transforms by @tarek-y-ismail in #5310
- input/basic_seat: scale input events in transformation matrix by @muhammad23012009 in #5292
- Fix architecture-specific MirAL span symbols on armhf by @saviq-work with @Copilot in #5320
- Track whether the OutputConfiguration strategy has been applied by @AlanGriffiths in #5321
- Implementation of the blitter
FrameBufferPoolandSoftwareEGLContextby @mattkae in #5293 - Fix Miral splash screen fading in in a jumpy way by @robert-ancell in #5297
- Record atomic KMS API calls by @tarek-y-ismail in #5276
- Enforce xdg_decoration v1 unconfigured rules by @yashsolctl in #5313
- doc: run doc checks through the options reference by @saviq-work in #5322
- chore: add tests for
DefaultDisplayBufferCompositorFactoryby @andogq in #5315 - sdk: initial sdk by @saviq-work in #5294
- Implementation of the TextureCache for the blitter::Renderer by @mattkae in #5328
- doc: drop wiki.ubuntu.com from linkchecks by @saviq-work in #5351
- Implementation of
ext-foreign-buffer-v1by @mattkae in #5274 - mir-shell-v1 clean up version 1 by @AlanGriffiths in #5342
- Make atomic KMS update request failures fatal by @tarek-y-ismail in #5280
- Feat: Bump xdg-decoration to version 2 by @yashsolctl in #5239
- release: changelogs are changelogs by @saviq-work in #5338
- release: move to standard release notes format by @saviq-work in #5340
- docs: migrate to standard home page pattern by @saviq-work in #5357
- mir-shell-v1 version 2 by @AlanGriffiths in #5343
- Update guidelines for inheritance by @AlanGriffiths in #5324
- fix mir_shell implementation by @AlanGriffiths in #5353
- feat: add overload
miral::pre_initfor callback by @andogq in #5334 - Extend SessionCredentials to include sandbox info, and use it to make security by @jhenstridge in #5209
- hack: ignore
miral::pre_init*symbol to make CI happy by @andogq in #5364 - feat: update
DefaultDisplayBufferCompositorFactoryto useBlitterRendererFactoryby @andogq in #5317 - chore: move common egl provider utilities by @andogq in #5288
- Recover after presentation failure by @tarek-y-ismail in #5336
- mir_shell: Document more error conditions and add tests for more behaviors by @AlanGriffiths in #5363
- Decode plane capabilities by @tarek-y-ismail in #5350
New Contributors
- @Prathamesh0901 made their first contribution in #5221
Full Changelog: v2.30.0...v2.31.0