Comment 7 for bug 1672465

Revision history for this message
marmuta (marmuta) wrote :

> Did anyone try to replace caribou with onboard in gnome-shell, is that doable/easy?
I did, and came to the conclusion that fully replacing caribou with the existing Onboard is close to impossible. That's mainly because applications don't have access to the activities and authentication views. Can't search applications or enter passwords with Onboard. In Wayland there was the additional problem of gdk_wayland_window_set_accept_focus not being implemented and Onboard uselessly sending key-strokes to itself.

There is an alternative approach, though, which I tried to outline in #4. The idea was to embed Onboard directly into gnome-shell via shell extension and custom clutter actors.
The good news is, that yes, it works. See attached screen-shot with the new Onboard in the Activities view. It handles similar to the stand-alone application, can be docked to screen-edge or left floating, resized and moved, etc. Focusing is not an issue and it can be shown anywhere at any time.

There's plenty of work left to do, though. My goal has been to get something usable in X and Wayland before Artful feature freeze. It is already starting to get there in X, but problems remain in Wayland.

Wayland's input separation makes it hard to find replacements for anything that generates input events, key-strokes, clicks or wants to receive global clicks and key-presses. Accessibility features will probably take a hit. Mousetweaks isn't getting ported to Wayland for the same reasons, so no hover-click support for now. It's unclear if we will find replacements for the click mapping buttons (right-, middle-, double-, drag-click).
Write access to /deb/uinput would help a lot in that regard, but this undermines Wayland's security.

Other than that, we'll probably get most of the old Onboard's features ported, including the new emoji palette, which hadn't been released yet.

Enabling Onboard in gnome-shell will mean having the Onboard_Indicator extension installed and enabled. If disaster strikes, all that's needed to return to the shell's built-in keyboard is to disable the extension.