Skip to content

Keyman 17.0 Release Notes

Darcy Wong edited this page Feb 15, 2024 · 37 revisions

In version 17.0, the focus has been improving gesture support (flicks, modifier combo, and multitap gestures) on touch layouts and creating LDML keyboards with Keyman Developer. The usability of the touch layout suggestion banner has also been improved.

Using Gestures on the Touch Layout Keys

You can use gestures to interact with some keys on the keyboard. Keys which have gestures available will normally show them as a hint in the top right of the key:

  • Long press: you can press and hold a key, and after a moment a submenu will appear. You can slide your finger to the submenu, and when you release it, the highlighted key from the submenu will be output.
  • Flick: you can hold and slide in various directions on a key to reach alternate outputs. The key will animate to show you the expected output. A common flick is to slide down to reach numerals on the top row of the keyboard.
  • Multitap: some keys allow you to press them repeatedly, rapidly, to reach alternate outputs. Tapping rapidly twice on Shift will activate Caps Lock on many keyboards.

Improved Suggestion Banner

  • You can slide the banner to see more suggestions by dragging it horizontally with your finger
  • Overly-long suggestions are partially hidden, but expand when you hold your finger on them
  • Displays up to 8 suggestions
  • A suggestion will not be applied while you slide the banner

Creating LDML Keyboards with Keyman Developer

  • New project wizard for creating LDML keyboards
  • Specify additional characters to use as gesture hints on touch layouts
  • Specify up to 8 directions for flick gestures

Significant Stability Improvements

  • Refactoring Keyman for macOS to use the same keyboard processing engine already used in Keyman for Windows and Keyman for Linux. This will create a more consistent keyboard behavior across the desktop platforms.

The full change log is available here.

Keyman for Windows

  • Minimum support version of Windows is 10.0
  • Update to Unicode 15.1 #9555

Keyman for macOS

  • Minimum supported version of macOS is 10.10 Yosemite.
  • Internals of Keyman Engine for Mac has been rewritten to use shared Keyman Core, improving reliability and consistency with other platforms #7857

Keyman for iPhone and iPad

  • Minimum supported version of iOS is 12.1.

  • Multitap and flick gestures are now supported for iOS. #7324

  • Predictive text suggestions are now handled more flexibly on the banner -- can now display up to 8 suggestions on screen, the banner can be dragged left and right to see more suggestions, and long suggestions are intuitively shortened to avoid long words overwhelming the available space. #7934

  • Letters on key caps are scaled better for some keyboards #10506

Keyman for Android

  • Minimum supported version of Android is 5.0 (Chrome 37.0)

  • When suggestions aren't enabled, display a themed banner. This area is for long-press keys and reserved for future enhancements #9696

  • Removed in-app browser #8430

  • Multitap and flick gestures are now supported for Android. #7324

  • Predictive text suggestions are now handled more flexibly on the banner -- can now display up to 8 suggestions on screen, the banner can be dragged left and right to see more suggestions, and long suggestions are intuitively shortened to avoid long words overwhelming the available space. #7934

  • Letters on key caps are scaled better for some keyboards #10506

  • Use web-based popup key longpresses #9591

Keyman for Linux

  • Works now with Wayland #4273

  • It is now possible to specify an arbitrary language tag when installing a keyboard package from the command line. Previously this only worked for the language tags listed in the keyboard package. #8598

  • Keyman for Linux now supports Ubuntu Noble, ends support for Lunar. #10561

KeymanWeb

Developer

  • BREAKING kmcomp will be removed and replaced with kmc in 17.0 #9158
    • TODO: transition guide
    • TODO: documentation
    • kmc is now available as an NPM package in alpha #8954
  • BREAKING .keyboard_info files are now generated entirely from the package and keyboard files. Extra fields are available in packages for license file, welcome file, typing examples, related packages (including deprecated packages), additional font files #9485
  • BREAKING Keyboard and Lexical Model repositories have new build scripts lm#226, kbd#2393
  • &displayMap allows keyboard developers to specify a font mapping to PUA for the On Screen Keyboard and Touch Layout to resolve diacritic rendering issues #9032
  • Update to Unicode 15.1 #9555
  • Added non-printing characters such as spacing, joiner, and marker characters#9846
  • Virtual keys in output of rules have never worked properly or been officially supported; Keyman Developer will now warn if you attempt to use this pattern #10062
  • Keyman Developer now includes basic LDML keyboard editing and testing #10459
  • Keyman Developer now supports ngrok v3 #10359

Keyman Core

  • BREAKING header file has been renamed from keyboardprocessor.h to keyman_core_api.h #9723

  • BREAKING API identifiers have been renamed from km_kbp_ to km_core_ #9724

  • BREAKING Context APIs have been dramatically simplified, with only 2 APIs to be used by most consumers #10401

  • BREAKING Introduced debug logging API for retrieving context #10644

  • Keyman Core on Windows, Linux, and macOS supports full normalization for LDML keyboard output #10390

  • BREAKING Action APIs have now been simplified #10644

Keyman Engine for Android

  • BREAKING Change package name from com.tavultesoft.kmea to com.keyman.engine #7881

  • BREAKING Update to Java 11 #8543

Keyman Engine for iOS

  • BREAKING Now uses the framework weichsel/ZIPFoundation in place of marmelroy/Zip for unzipping Keyman packages. #9958

Keyman Engine for Web

  • BREAKING Initialization option setActiveOnRegister is now a boolean and not a string #8458

  • BREAKING We have reworked Keyman Engine for Web internally to use ES modules throughout; this has resulted in significant internal changes. The current API will continue to work without modification, but use of undocumented functionality may break #8560

  • The on-screen-keyboard for Keyman Engine for Web has been modularized in preparation for embedding in other Keyman platforms #8560

  • Multitap and flick gestures are now supported for Web. #7324

New Localizations

  • Mon (Burmese script) added for Windows, Android, Linux #9550
Clone this wiki locally