This is an update from our last Roadmap blog post in February 2023.
Please share any feedback you have on this post on our Community Forum.
Older versions of the roadmap
We need your help! We may have a larger team than in earlier years, but there is much work to do! Please take a look at our Getting Involved pages for how you can help make Keyman work better for you, your language community and others:
- Make a donation
- Create a keyboard layout for your language
- Localize Keyman for your language
- Support other users
- Test a new version
- Write some code
- Improve the documentation
- Join the team!
We still have the same three current skillsets where we are currently seeking software developers and writers:
- Typescript developer
- iOS or macOS developer
- Technical writer
If you have skills in any of these areas and think you’d like to get involved, please get in touch!
The Keyman team met in Basel, Switzerland in early September 2023.
Things that have changed
One key project has slipped from the previous update — the work on Keyman Developer’s git integration and single keyboard repository support was delayed in order to complete the conversion of the compilers to web technologies. While it is disappointing not to release the git integration in version 17.0, the work that has gone into the compilers means that keyboard development will be more cross-platform in version 17.0. And future versions of Keyman Developer will be fully cross-platform, as we continue conversion of existing user interface modules to web technologies.
In the last roadmap, we planned to refresh the on screen keyboard in version 18.0. However, some of the groundwork for that effort is not yet ready, so we have pushed that to version 19.0. But all is not lost — read on for what we do plan to include in 18.0!
Following are the major features we plan to include in 18.0.
- epic/dev-web-ui Keyman Developer web-based user interface transition. This will enable us to build the new LDML Keyboard Editor, as well as remove some of the blockers in converting Keyman Developer to a fully cross-platform solution.
- epic/ldml-ide A full-feature LDML Keyboard Editor in Keyman Developer. This will include a visual editor, structural editor, and automated testing for LDML keyboards, and include interfaces to build character repertoires.
- epic/web-core The Keyman Core Web interface allows us to support LDML keyboards on mobile and tablet devices, as well as online in websites.
- epic/osk-windows, epic/osk-linux These two groundwork features will make it possible to complete the On Screen Keyboard rework in an upcoming release of Keyman.
- epic/user-dict We plan to integrate user dictionaries for predictive text on Android and iOS.
- epic/arm-windows As Windows on ARM64 becomes more popular, we plan to include support for ARM64 in Keyman Engine for Windows.
- epic/mcompile This feature adds support for mnemonic layouts to Linux and macOS.
Some smaller features include:
- macOS: Improve AltGr / Option functionality, clarifying how left/right Option work on macOS and improving cross-platform compatibility
- iOS: An interface to adjust keyboard height matches the same functionality on Keyman for Android.
- Developer: Cloning Keyboard Projects makes it easier to start new keyboards and manage keyboard filenames in an integrated fashion.
- All platforms: Improved localization for right-to-left scripts. Some editions of Keyman need some work to support right-to-left scripts in the user interface, and it is well past time we got this done!
- Lexical models: We will make it possible to turn on automatic acceptance of suggestions and/or corrections that exceed a probability threshold, in the predictive text module.
- Lexical models: We plan to offer fine grained control over short (1-3 letter) suggestions to lexical model developers.
- macOS: The macOS user interface has languished behind the other platforms, so we are putting effort into improving the experience of switching keyboards on macOS
- All platforms: While we have supported BCP47 language tags for keyboards for many years, we now need to consolidate that support and make it more consistent and flexible across all our platforms.
- Websites: And last, but not least, we want to introduce a localizable documentation framework for keyboard layouts, start to localize the keyboard search results, and do some basic search engine optimization to help users find the most appropriate keyboard for their language more easily.
19.0 – On Screen Keyboard refresh, Predictive Text improvements, and IMX
On Screen Keyboard
We now aim to complete a significant rework of On Screen Keyboard support in version 19.0, for all platforms. Yes, this slipped a version! This includes styling, themes, consistency across platforms, and more ways to present characters on key caps.
Predictive Text – morphological models, phrases, and learning
We still plan to focus more on predictive text in version 19. Our target areas are morphological models, phrase support, and some basic learning algorithms.
Input Method Extensions (IMX)
Input method extensions make it possible to add extra user interface elements, and more sophisticated algorithms, including dictionary lookups, learning and more, to a Keyman keyboard layout. While we have supported IMX on Windows (and to a lesser extent, web) for many years, we have not updated the interfaces, nor made them cross platform yet. So this push will be to define a solid cross-platform input method extension framework, and update existing IMX keyboards in our catalogue to work with this new framework.
We have many other smaller items on our schedule – you can track our progress (and contribute yourself!) on GitHub. Each issue and change (known as a “pull request” in GitHub) is tagged with a milestone that corresponds to a two-week “sprint”, or with a major release number. These plans are of course all still subject to change!
We are currently planning to meet again and refresh this roadmap in early 2025.
Thank you for reading! We’d love to hear your feedback on our Community Forum, both on our plans, and in terms of suggested features and changes.