Comment 9 for bug 1672465

Revision history for this message
marmuta (marmuta) wrote :

Let me give you an update on the current state of Onboard in gnome-shell.

First, things changed - a lot. The work is happening in a new independent project OnboardOSK at
https://launchpad.net/onboardosk
This is basically a fork of Onboard, written mainly in C++. There's no Python involved apart from supporting tools.

At the project's core is the (largely) toolkit-independent shared library libonboardosk.so. It contains an onscreen keyboard closely resembling the original Onboard in appearance and, well eventually, features.

A second shared library libonboardoskgnomeshell.so implements the toolkit-dependent parts, here by integrating with Clutter and GObject introspection.

A new GNOME Shell extension then embeds OnboardOSK into the shell and provides the shell's services to the shared libraries below.

The end result is an onscreen keyboard that is already quite indistinguishable from the old standalone Onboard, but, and that's a big but, it's not done and realistically won't be before Artful feature freeze.

So what works, what's missing? The majority of the old Onboard's features are ported by now, e.g., key logic, word suggestions, emoji palette, themes, color schemes, etc. are there. "window" (actor) handling has become more complete and smoother. Hover-click does something even without mousetweaks (for Wayland), but is limited to the keyboard itself.

The main missing things are
- long-press popups (in progress currently)
- click-mapping buttons (right-, middle-, double-, drag-click)
- modifier+click for accessibility
- keyboard scanning
- a bunch of dialogs: snippets, language model error recovery

Most worryingly, however, Wayland support is still lagging behind X. Developing in Wayland is a bit of a pain because there is no easy way to restart GNOME Shell (that I'm aware of). Reloading extensions is insufficient as this won't reload shared libraries. Therefore my strategy has been to get as much as possible done outside of GNOME Shell in Wayland, replacing with GNOME Shell in X and test_stage.js in Wayland and switch back later. Well, that's going to be soon, but the time is up.

So, apologies, I tried to make it happen for 17.10, but it'll take more time. We'll very likely make the 18.10 release, however, as default or not.

FWIW, this message was typed with with OnboardOSK in GNOME Shell (X). What is there seems to work alright. No crashes lately, no noticeable leaking (unlike Python Onboard).