A rule is the basic part of a Keyman keyboard. Each rule defines what a keystroke will output, when certain characters are already displayed on the screen. A rule is also used to pre-process and post-process the characters being output to the screen.
A rule is made up of three parts:
%context% + %keystroke% > %output%
context refers to what is already displayed on the screen. A rule will only be fired
if the context and the keystroke both match. The
output will replace the context matched on
the left hand side of the rule.
In advanced groups, the
keystroke section of the rule may be omitted
for processing on the context and output.
Some of the important functions that can be used in rules are
context keyword will transfer the
context of the rule into the
output, for example:
"abc" + "d" > context "D"
will, when "abc" is on the screen, and "d" is pressed, replace "abc" with "abcD". You can also put a single character from the context into the output using context(n):
"abc" + "d" > "D" context(2)
This will output "Db" when "abcd" is typed.
nul is used in the output of a rule to give the rule no output. For instance, the backslash key may
be invalid in the keyboard you are creating, so the following rule will mean it will never have any output:
+ '\' > nul
beep is the same as
nul, except that the computer will emit a beep sound at the same time to
alert the user to the error. You
can use this, for instance, when the user types the same diacritic twice in a row:
'è' + '`' > context beep
context statement is required here so that the rule does not delete the "è" character.