We’ve been working to enable a couple of important client stacks. That means we’ve updated our support for some existing Wayland protocol extensions and implemented some new protocol extensions. The clients stacks are: onscreen keyboards and Electron Wayland:
Onscreen keyboards
Onscreen keyboards require support for more (or newer) Wayland extensions than were available with Mir prior to 2.5:
- Bump wlr_layer_shell_unstable_v1 version from 3 to 4
- Add zwp_virtual_keyboard_v1
- Add zwp_text_input_v3 & zwp_input_method_v2
As zwp_virtual_keyboard_v1 and zwp_input_method_v2 could be used by malicious clients to intercept keys events or take actions without user input they are disabled by default. Mir provides configuration options to allow them to be enabled for all clients, or enabled for specific clients by a shell written using Mir.
Building on Mir 2.5 this there’s work in progress to add an onscreen keyboard to Ubuntu Frame
Electron Wayland
@ogra started a thread about using Electron’s with Ubuntu Frame:
Changelog
ABI summary:
- mirclient dropped
- mirprotobuf dropped
- mircommon ABI bumped to 8
- mirplatform ABI bumped to 23
- mirserver ABI bumped to 56
- mirwayland ABI bumped to 3
- mirplatformgraphics ABI bumped to 19
Enhancements:
- [Wayland] Bump wlr_layer_shell_unstable_v1 version from 3 to 4
- [Wayland] Add focus_mode surface property for Layer Shell
- [Wayland] Add zwp_virtual_keyboard_v1 (closes #2063)
- [Wayland] Add zwp_text_input_v3 & zwp_input_method_v2 (closes #2139)
- [Wayland] Allow zwp_linux_buffer_params_v1.add() with DRM_FORMAT_MOD_INVALID (Fixes #2177)
- [Wayland] Add axis source to pointer events (Fixes #2180)
- [Wayland-platform] Don’t block forever in swap_buffers
- Drop mirclient, dependencies on Cap’n Proto & protobuf
Bugs fixed:
- Mir crash when surface and role destroyed in wrong order (Fixes #2055)
- Make GTK’s approach to hiding cursors work on Mir (Fixes #2073)
- [input] Handle exceptions while handling udev events
- [input] Fix InputDeviceHub threadsafety
- [Xwayland] Improve popup window types and positioning (Fixes #2037)
- [Xwayland] Use SurfaceStateTracker to track window state (Fixes #1217)