Repository navigation
Keyman 19.0 Release Notes
Marc Durdin edited this page Oct 5, 2026
·
21 revisions
- Minimum supported version of Windows is 10.0
- Keyboard search is now localized for several languages (#15510)
- Keyman now supports Windows on Arm devices (e.g. Snapdragon X laptops) (#14621)
- Minimum supported version of macOS is 10.13 High Sierra.
- Keyboard search is now localized for several languages (#15510)
- Redesigned and modernized app - new installer, new configuration app (#####)
- Minimum supported version of iOS is 15.6.
- Keyboard search is now localized for several languages (#15510)
- Automatic acceptance of corrections (#12893)
- Minimum supported version of Android is 5.0 (requires minimum version of Chrome 95.0)
- Keyboard search is now localized for several languages (#15510)
- Support for dark mode (#15827)
- Refreshed and modernized settings user interface (#15827)
- Automatic acceptance of corrections (#12893)
- Improvements to interface for keyboard resizing (#15267)
- Minimum supported version for Ubuntu is Ubuntu 22.04 Jammy (#12003)
- Keyboard search is now localized for several languages (#15510)
-
onboard-keymanpackage no longer gets installed automatically when installingkeyman. The reason is that it doesn't work properly with Wayland and is not available in the official Debian/Ubuntu repos (#14769). It is still possible to install it manually in your package manager, or in a terminal window withsudo apt install onboard-keyman. - Generate a diagnostic report for technical support
feat(linux): implement diagnostic report(#15576)
- Updated to Unicode 17.0 (#14728)
- Updated to latest ISO639-3, langtags.json, and language-subtag-registry (#####)
- Compiler is now more restrictive on allowed group names, store names, and deadkey names (#14746)
- LDML compiler now reports line numbers on errors (#13375)
- Can now validate a project from within Keyman Developer IDE (#16076)
- Minimum supported version of Chrome is 95.0
-
BREAKING
file:protocol is no longer supported, as keyboards are loaded withfetch()API (#12334) - Bug fix: the
keyboardloadedevent now fires only once per loaded keyboard (#16297). Previously the event fired twice. - New
keyman.versionInfoAPI endpoint (#16351) - Fixed
loaduserinterfaceandunloaduserinterfaceevents to fire consistently (#16353) - Newly deprecated API endpoints (#16351, #16354), to be removed in version 20 (#16385):
keyman.helpURLkeyman.util.rgba()keyman.util.toFloat()keyman.util.toNumber()keyman.util.toNzString()
- Previously deprecated API endpoints to be removed in version 20 (#16385):
keyman.util.createShim()keyman.util.showShim()keyman.util.hideShim()keyboard.KeyboardID
- Deprecated IMX functions and endpoints that will be removed in v20 (#16385):
keyman.interface.focusLastActiveElement()keyman.interface.getLastActiveElement()keyman.interface.hideHelp()keyman.interface.showHelp()keyman.interface.showPinnedHelp()
- To be removed in version 21 (#16386):
-
keyman.build(usekeyman.versionInfo) -
keyman.version(usekeyman.versionInfo) -
keyman.moveToElement(elem)(useelem.focus()) (#16661)
-
- Deprecated functions and endpoints that will be retained for compatibility with legacy keyboards:
KeymanWeb.KA()KeymanWeb.KC()KeymanWeb.KCM()KeymanWeb.KDM()
- Deprecated IMX functions and endpoints that will be retained for compatibility with legacy IMX keyboards:
KeymanWeb.FocusLastActiveElement()KeymanWeb.GetLastActiveElement()KeymanWeb.HideHelp()KeymanWeb.ShowHelp()KeymanWeb.ShowPinnedHelp()
-
kmcomapi: Added the
MCompileForBaseKeyboard(long KLID)COM method to the newIKeymanKeyboardInstalled2interface, which extendsIKeymanKeyboardInstalled. The method accepts the user's base keyboard ID and allowsmcompileto compile all installed keyboard layouts against that keyboard ID. See #16162 for details. -
kmcomapi: Added the
Install3COM method, which accepts a base keyboard ID. The base keyboard ID is passed tomcompileduring installation so that the keyboard layout can be compiled against the specified base keyboard.Install3has been added to the following interfaces:IKeymanKeyboardFile3,IKeymanPackageFile3,IKeymanKeyboardsInstalled3, andIKeymanPackagesInstalled3. See #16528 for details.
- Removed deprecated
folder_pathfield fromkm_core_keyboard_attrsstruct (#15471)
-
BREAKING Apps that use the functionality of Keyman Engine for Android will have to add
androidx.webkit:webkit:1.14.0as a dependency (#16146) -
KNOWN ISSUE sil_euro_latin keyboard must be included in an app if
setDefaultKeyboard()is not called during initialization (#16215) -
BREAKING Android Engine: the font parameters (
kFontandkOskFont, renamed totextFontandoskFont) ofsetKeyboard()only accept a font filename and no longer a font description (#16211) -
BREAKING * Keyman Engine for Android 18.0.252 has been released and this out-of-band change requires an additional import in build.gradle for apps using it. Add:
implementation 'androidx.webkit:webkit:1.14.0'. This change is required due to a bug fix relating to a Chrome issue withimportScriptsand impacts any Keyman Engine for Android dependent app that uses lexical models. See #13862, #16628 for details.
- No changes
- We've started to localize the keyboard search on https://keyman.com/keyboards. For the initial rollout, we've added French, Spanish, German,Khmer, and Portuguese. The UI language can be selected by a globe key when browsing on desktop.