Keyman language history
Keyman 3
- The structure of rules is not backwardly compatible with earlier versions of Keyman. The left hand side of the rule changed from being a sequence of keystrokes to being a context + single keystroke.
- Stores were introduced.
- Long line support
Keyman 4
- The
+
character became required, and usage became stricter to follow the standard now: the plus character must separate context from keystroke in a rule. - Keyboards are now compiled by the developer into .kmx files, rather than being distributed as .kmn files.
Keyman 5
- Added Unicode support
- Added Input Method eXtension support
- Deprecated
bitmaps
statement - Deprecated
language
statement. Note that thelanguage
statement was reintroduced in Keyman 6 with a new meaning - Keyman 5.0 added system stores
- Deprecated
layout
statement
Keyman 6
- Added named character constant support
- Added Ethnologue (ISO 639-3) code support
- Added Mnemonic layouts (reworked in Keyman 8 and 9)
- Added Virtual character keys to support mnemonic layouts
- Keyman 6.0 added support for deadkeys and virtual keys in stores
- Enhanced
context()
statement to work on left hand side of rule
Keyman 7
- Added
&visualkeyboard
store - Enhanced
&language
store to support combined codes - Added
notany()
statement - Added web keyboard support
- Enhanced
&bitmap
store to support .ico format files - Added
&windowslanguages
store - Keyman 7.0 extended maximum store length to 4095 characters
Keyman 8
- Added
if()
statement - Added
set()
statement - Added
save()
statement - Added
reset()
statement
Keyman 9
- Added touch device support
- Added
&keyboardversion
store - Added
&kmw_embedcss
store - Added
platform
statement - Added
layer
statement - Added
&targets
store - Enforced requirement that
use()
is last statement in a rule
Keyman 10
- Changed language tags from ISO 639-3 to BCP 47
- Deprecated
ðnologuecode
store - Deprecated
&language
store - Deprecated
&windowslanguages
store - Left and right modifiers and Caps Lock modifier are supported for Virtual Keys in KeymanWeb 10.0 and later
- Deadkeys now work 100% identically in KeymanWeb 10.0 and Keyman Desktop 10.0, in particular using multiple deadkeys in a row.
Keyman 11
&targets
store now supportslinux
- .kmn files without BOM are now treated as UTF-8 unless they contain invalid UTF-8 sequences
Keyman 12
- No language changes.
Keyman 13
- Virtual keys no longer need to be in quotes for the
&hotkey
store
Keyman 14
- Added range expansions
- Added
&CasedKeys
store - Virtual keys may now be identified by ISO9995 key ids (e.g.
+ [SHIFT E01]
) - The compiler now enforces order of certain statements in the context part of the rule
notany()
andcontext()
are now supported together for KeymanWeb, iOS, Android (#3816)- Hangul named constants were corrected
Keyman 15
- Unicode key identifiers in touch layouts can now have multiple characters, e.g.
U_1000_1001
- Casing support is now available for touch layouts, including Caps Lock layer, start of sentence support, and double-tap Shift for Caps.
- Added support for
begin NewContext
andbegin PostKeystroke
entrypoints - Added support for
readonly
groups - Added support for
&newLayer
system store and&oldLayer
system store