IBus input method to quickly find equivalent locale character for a given ASCII character
I have a laptop keyboard with an ANSI layout, however since I live in Europe I often need to write text with non ASCII characters for languages like italian, german and french. This feature request has been inspired by two different pieces of software:
- the Android/iOS virtual keyboard, (1)
- the Ubuntu Budgie Quickchar app, (2)
As you probably know (1) offers long presses on ASCII characters to write related locale characters, such an implementation is not possible on a desktop environment for obvious reasons, however it may be a good reference for mapping ASCII characters to their non-ASCII siblings.
A more practical approach for desktops and laptops is (2), the Quickchar app is really similar to the IBus service integration offered in GNOME for input of japanese, chinese and korean characters on an ANSI keyboard. See this screenshot for reference:
In the Budgie Desktop Environment the app is triggered by a keyboard shortcut which calls a UI on screen that allows a user to write an ASCII character and returns a list of related locale characters that can be written in the text input field by pressing a number or by tabbing to navigate the list of characters and pressing enter on the chosen character.
As you can see this feature is almost identical to the one offered by IBus on GNOME, however as far as I can tell IBus only offers these capabilities for non european characters. As an example, in the following screenshot: The ideal output for the "e" character could be: "ê è é ë ė ę ē"
Another issue has been submitted on the repository that is hosting the ibus project: https://github.com/ibus/ibus/issues/2461. As you can see by reading the issue a developer already reached out, I have not tried ibus-typing-booster properly yet because on Ubuntu it doesn't seem to be working properly and I will have to try it on a Fedora VM later on, however it seems to have some interesting features that could be used as reference for a similar implementation inside gnome-shell.