Touchscreen virtual keyboard options

One requirement we often run into with Embedded Linux is the need for a on-screen keyboard for touchscreens. Some options:

(this post is a wiki, so feel free to edit it if you have additional information.)

Discussions:

Most of the really useful add-ons, like the keyboard, for Qt5 and beyond are GPLv3 licensed or require purchasing a license from Qt now. At my previous job we looked heavily at this but couldn’t find a good way around the licensing (we were prohibited from using GPLv3 except in very specific cases which took much explanation).

What about the matchbox keyboard? I recall seeing this maybe 7ish years ago, but never looked into it in detail and I’m not even sure this is the right link: GitHub - xlab/matchbox-keyboard: A mirror of matchbox-keyboard tree + my patches

1 Like

Thanks for the matchbox link – I remember that now from way back in the early days of OE in the Poky demo images.

matchbox is jaded. I would not even go there. It still is part of oe-core and on life support due to poky legacy but I don’t know anyone using it in real products. OE-core should think beyond sato and the infra that came along with poky. maemo is long gone and its still living in same era.

@khem did a demo of Weston Keyboard:

well chromium discussion is here - 1431532 - chromium - An open-source project to help move the web forward. - Monorail
does not seem hopeful.

That does look like a deep hole!

Poking around, I learned IME stands for “Input methods”

Also found this:

https://www.google.com/inputtools/services/features/virtual-keyboard.html

In playing with it though, it was not obvious how to automatically activate the virtual keyboard when a text element is focused.

Another link regarding Weston and Chromium:

Demo of Qt6 WebEngine on VAR-SOM-MX8 with Weston Virtual Keyboard

@khem has integrated Qt6 into the Yoe Distribution, so we have been experimenting with QtWebengine on a VAR-SOM-MX8 platform. Apparently, Qt works with the Weston input methods, where stock Chromium does not.

Notes on building/running

Yoe Build Setup

local.conf:

IMAGE_INSTALL:append = " qtwebview-examples qtvirtualkeyboard qtwayland"

bitbake yoe-kiosk-image

Running

  • Open a terminal in Weston
  • /usr/share/examples/webview/minibrowser/minibrowser -platform wayland

you can also run it from ssh terminal

ssh root@<BOARD-IP-ADDRESS>
su - weston
export WAYLAND_DISPLAY=wayland-1
export XDG_RUNTIME_DIR=/run/user/`id -u`
/usr/share/examples/webview/minibrowser/minibrowser -platform wayland
1 Like

Demo of the Qt Virtual Keyboard running in the Yoe Kiosk Browser:

another project that has run into similar issues:

writing a virtual keyboard in c++ from scratch(unless the underlying OS provides one automatically) seems feasible in this case, I’m not 100% sure how long it takes but interested in writing one for wxwidgets.