Talking about X11 again in my opinion is superfluous, as all distros have gone straight to Wayland and it is now becoming the main engine, so X11 will increasingly fall into disuse until it is no longer maintained.
Even talking about Windows or MacOS OSKs is useful since they may have some useful features/approaches that may be worth considering.
I know I’m always the usual naysayer, but can you explain to me why gnome doesn’t need this protocol and kde does? Having said that, I can’t speak for Apple, as far as Windows is concerned it has its own OSK, but Windows basically never changes its graphics engine or other things, Windows has always been the same, only the things that kids like change, so the little lights rather than other stupid things like that.
hm, what do you mean?
afaik Gnome does not have any accessibility OSK on Wayland (or even X11, only third-party). The built-in OSK only shows up when focusing on text fields, and not in all apps (e.g. does not work in Discord).
Something like this should be possible in KDE already (I guess it’s just that iirc it never had built-in OSKs), but you said yourself that such OSKs are too limited.
(https://github.com/Vishram1123/gjs-osk)
Not is perfect but it is certainly an optimal point from start is a good is an osk for gnome.
hm, yeah, that’s a good question.
It works much better, can send keys not just to the text fields, and not limited to the Gnome apps like their built-in OSK.
And apparently the author did not even have to do some kind of weird hackery, it just uses Clutter (which seems to be abandoned since 2022), I guess more low-level source code is here clutter/wayland/clutter-input-device-wayland.c · master · Archive / clutter · GitLab
I managed to get Onboard working on wayland. Kubuntu 25.04
#1 Edit the shortcut in the menu. Within the KDE Menu Editor look for the Environment variables field and add “GDK_BACKEND=x11”.
#2 Go to Onboard preferences page. Under Keyboard – >Advanced set:
Input Options → Input event source: GTK
Key-stroke Generation → Key-stroke generator: uinput
If you have time please try it. I would like to know if it works for others too.
I can confirm that this works on Arch with Plasma 6.4.2!