mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-06 14:07:32 +00:00
Page:
Keyman 19.0 Release Notes
Pages
ANSI Keyboard Scancodes, Keycodes and Virtual Key Visual Layout for Windows, MacOS, Linux
Analyse Unicode Output of Installed Desktop Keyboards
Backspace and cluster deletion
Capture Firefox log and Mozilla bisection
Coding with Cpp: Linker complains about missing global variable
Crowdin CLI
Debugging WASM code
Delphi Debugging Notes
Desktop app compatibility tests
Developers ‐ websites ‐ setting up xdebug for profiling
Diagnosing deployment failures for keyboards
Epic feature branches
FAQ: Why do we not have a forward‐looking context?
HOWTO: cleanup if a release build trigger fails
Home
How to downgrade to latest stable version of Keyman for Linux
How to fully uninstall and remove Keyman for Linux
How to install IBus and Keyman on Arch Linux and derivatives
How to install nightly packages of Keyman for Linux
How to resolve failed release build trigger
How to setup conventional commits git commit msg hook
How to test artifacts from pull requests for Keyman for Linux
How to uninstall Keyman for macOS for testing
How to upload libcef.dll.pdb symbols to downloads.keyman.com for a new CEF build
Internal APIs for Web's app‐browser artifact
KMP Metadata File (kmp.inf and kmp.json)
Keyboard Processor API reference
Keyboard bundles build on demand
Keyman 13.0 to 14.0 Migration
Keyman 15.0 New Functionality
Keyman 16.0 Release Notes
Keyman 17.0 Release Notes
Keyman 18.0 Release Notes
Keyman 19.0 Release Notes
Keyman Code Style Guide
Keyman Developer testing page (Web and Mobile Targets)
Keyman Glossary ‐ Windows Platform
Keyman Glossary
Keyman Keyboard Installation on Windows
Keyman Project Scopes
Keyman State Machine
Keyman Windows FAQs
Keyman for Linux serialized output notes
Linux Build Agent Setup
Making sense of the Windows Layout Registration
Mobile app compatibility tests
Mobile app ‐ app webview API
Monitoring Keyman Community Site and Social Pages
Notes on preparing history files
One way to refresh a long‐lived staging branch on keyboards (or any) repo
Permalinks for keyboards
Platform Acceptance Test for Android
Platform Acceptance Test for Developer
Platform Acceptance Test for Linux
Platform Acceptance Test for Mac
Platform Acceptance Test for Predictive‐Text
Platform Acceptance Test for Web
Platform Acceptance Test for Windows
Platform Acceptance Test for iOS
Principles of Keyman Code Changes
Profiling Keyman for Windows using VTune
Pull Request and Commit workflow notes
Release workflow
Re‐prioritizing issues
Sentry Windows integration TODO list
Sentry workflow
Setting up windbg for debugging Windows Developer
Shared infrastructure for Keyman sites
Unit Tests
Updating Desktop and Developer for Unicode Releases
User Testing Baseline Configurations
User Testing Workflows
Windows Build Agent Setup
[Deprecated] How to set up a local IIS web server for the Keyman web pages
api.keyman.com keyboard model package version API
downloads.keyman.com history API
downloads.keyman.com keyboard API
downloads.keyman.com model API
downloads.keyman.com version API
history.md format
iOS: manual symbolication
macOS Build Agent Setup
note(windows): kmtip and keyman32 interactions
s.keyman.com kmwversion API
No results
21
Keyman 19.0 Release Notes
Marc Durdin edited this page 2026-10-05 16:21:33 +02:00
Table of Contents
For end users
Keyman for Windows
- 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)
Keyman for macOS
- 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 (#####)
Keyman for iPhone and iPad
- Minimum supported version of iOS is 15.6.
- Keyboard search is now localized for several languages (#15510)
- Automatic acceptance of corrections (#12893)
Keyman for Android
- 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)
Keyman for Linux
- 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)
For keyboard authors
Keyman Developer
- 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)
For integrators
KeymanWeb
- 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()
Keyman Engine for Windows
- 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.
Keyman Core
- Removed deprecated
folder_pathfield fromkm_core_keyboard_attrsstruct (#15471)
Keyman Engine for Android
- 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.
Keyman Engine for iOS
- No changes
Other changes
New Localizations
- 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.