feat(common): cross-platform IMX (picker) support
- Dominant language
- Pascal
- Stars
- 534
- Forks
- 143
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 113
Description
### Is your feature request related to a problem? Please describe.
In our keyboards repository, we have a few old Web keyboards that implemented custom CJK-picker functionality. This functionality is only functional on `desktop` form-factor devices, and is thus not practical to use within Keyman for Android or Keyman for iPhone and iPad.
See:
- https://keymanweb.com/#cmn-hans,Keyboard_chinese
- https://keymanweb.com/#ko,Keyboard_korean_rr
- https://keymanweb.com/#ja,Keyboard_japanese
We've had a few recent Community forum posts highly related to this functionality, with some users and/or communities seeking to implement their own versions of this as well.
See:
- https://community.software.sil.org/t/creating-a-proper-applicable-lexical-model/7004
- https://community.software.sil.org/t/simplifying-text-menu-patterns/7013
- This one was hoping to insert a menu into the context, with the next keystroke making a selection; sort of an inlined-IMX as if in a command-line console.
Note that at their core, picker keyboards like the three existing ones listed above tend to operate based upon the following pattern, expressed roughly in Keyman language syntax:
- `` + [ `number keystroke`] > ``
- In a way, they are _loosely_ similar to predictive text: input text gets mapped to an output text suggestion.
- Note that `` may or may not be in the same script as the ``! This is a notable distinction from our existing predictive text models, which expect same-source operation with limited transformation of the text.
### Describe the solution you'd like
Desired features:
- Whatever form the IMX solution takes, it should be supported by all end-user Keyman platforms.
- The IMX should take in post-keystroke context and output 'picker suggestions' based upon said text.
- Typically, use of a number key (on desktop) should allow selection of one of the options.
- On touch... we can probably rely on something very similar to the predictive-text banner, if not that banner itself.
- We should be able to convert our existing picker keyboards to utilize the same solution.
### Describe alternatives you've considered
_No response_
### Keyman apps
- [X] Keyman for Android
- [X] Keyman for iPhone and iPad
- [X] Keyman for Linux
- [X] Keyman for macOS
- [X] Keyman for Windows
- [X] Keyman Developer
- [X] KeymanWeb
Contributor guide
Assessment
This issue has not been assessed yet.