keyboard – how to type characters|
Keyboards are idiosyncratic. It should be obvious how to type
ordinary ASCII characters, backspace, tab, escape, and newline.
In Plan 9, the key labeled Return or Enter generates a newline
(0x0A); if there is a key labeled Line Feed, it generates a carriage
return (0x0D); Plan 9 eschews CRLFs. All control characters are
typed in the usual way; in
particular, control-J is a line feed and control-M a carriage
The down arrow, used by 9term(1), acme(1), and sam(1), causes
windows to scroll forward. The up arrow scrolls backward.
Characters in Plan 9 are runes (see utf(7)). Any 16-bit rune can
be typed using a compose key followed by several other keys. The
compose key is also generally near the lower right of the main
key area: the NUM PAD key on the Gnot, the Alternate key on the
Next, the Compose key on the SLC, the Option key on the Magnum,
and either Alt key
on the PC. After typing the compose key, type a capital X and
exactly four hexadecimal characters (digits and a to f) to type
a single rune with the value represented by the typed number.
There are shorthands for many characters, comprising the compose
key followed by a two- or three-character sequence. The full list
is too long to repeat here, but is
contained in the file /usr/local/plan9/lib/keyboard in a format
suitable for grep(1) or look(1). To add a sequence, edit that
file and then rebuild devdraw(1).
There are several rules guiding the design of the sequences, as
illustrated by the following examples.|
Note the difference between ß (ss) and µ (micron) and the Greek
β and μ.
A repeated symbol gives a variant of that symbol, e.g., ?? yields
ASCII digraphs for mathematical operators give the corresponding
operator, e.g., <= yields ≤.
Two letters give the corresponding ligature, e.g., AE yields Æ.
Mathematical and other symbols are given by abbreviations for
their names, e.g., pg yields ¶.
Chess pieces are given by a w or b followed by a letter for the
piece (k for king, q for queen, r for rook, n for knight, b for
bishop, or p for pawn), e.g., wk for a white king.
Greek letters are given by an asterisk followed by a corresponding
latin letter, e.g., *d yields δ.
Cyrillic letters are given by an at sign followed by a corresponding
latin letter or letters, e.g., @ya yields я.
Script letters are given by a dollar sign followed by the corresponding
regular letter, e.g., $F yields ℱ.
A digraph of a symbol followed by a letter gives the letter with
an accent that looks like the symbol, e.g., ,c yields ç.
Two digits give the fraction with that numerator and denominator,
e.g., 12 yields ½.
The letter s followed by a character gives that character as a
superscript, e.g., s1 yields ⁱ. These characters are taken from
the Unicode block 0x2070; the 1, 2, and 3 superscripts in the
Latin-1 block are available by using a capital S instead of s.
Sometimes a pair of characters give a symbol related to the superimposition
of the characters, e.g., cO yields ©.
A mnemonic letter followed by $ gives a currency symbol, e.g.,
l$ yields £.
It is also possible to configure X Windows to use the same keystroke
mappings as the Plan 9 programs. First, generate an XCompose sequence
list by using mklatinkbd:
Under X Windows, both the Alt key and the “Multi key” can begin
a compose sequence in a Plan 9 program.
Second, configure a “Multi key” by running
mklatinkbd −x $PLAN9/lib/keyboard >$HOME/.XCompose|
(The name Super_L typically denotes the Windows key on recent
Third, set these environment variables so that GTK- and QT-based
programs will use the compose sequences:
xmodmap −e 'keysym Super_L = Multi_key'|
Finally, start a new GTK- or QT-based program:
In that terminal, typing the key sequence ‘Windows * a’ should
be interpreted as the Greek letter α.
If using the GNOME Window Manager, put the xmodmap and export
commands into the file $HOME/.gnomerc to run them automatically