.TH KEYBOARD 7
.SH NAME
keyboard \- how to type characters
.SH DESCRIPTION
Keyboards are idiosyncratic.
It should be obvious how to type ordinary
.SM ASCII
characters,
backspace, tab, escape, and newline.
In Plan 9, the key labeled
.B Return
or
.B Enter
generates a newline
.RB ( 0x0A );
if there is a key labeled
.B Line
.BR Feed ,
it generates a carriage return
.RB ( 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 return.
.\" On the PC and some other machines, the key labeled
.\" .B Caps
.\" .B Lock
.\" acts as an additional control key.
.\" .PP
.\" The delete character
.\" .RB ( 0x7F )
.\" may be generated by a different key,
.\" one near the extreme upper right of the keyboard.
.\" On the Next, it is the key labeled
.\" .L *
.\" (not the asterisk above the 8).
.\" On the SLC and Sparcstation 2, delete is labeled
.\" .B Num
.\" .B Lock
.\" (the key above
.\" .B Backspace
.\" labeled
.\" .B Delete
.\" functions as an additional backspace key).
.\" On the other keyboards, the key labeled
.\" .B Del
.\" or
.\" .B Delete
.\" generates the delete character.
.PP
The down arrow,
used by
.IR 9term (1),
.IR acme (1),
and
.IR sam (1),
causes windows to scroll forward.
The up arrow scrolls backward.
.PP
Characters in Plan 9 are runes (see
.IR 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
.B NUM PAD
key on the Gnot, the
.B Alternate
key on the Next, the
.B Compose
key on the SLC, the
.B Option
key on the Magnum, and either
.B Alt
key on the PC.
After typing the compose key, type a capital
.L X
and exactly four hexadecimal characters (digits and
.L a
to
.LR 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.
There are several rules guiding the design of the sequences, as
illustrated by the following examples.
The full list is too long to repeat here, but is contained in the file
.L \*9/lib/keyboard
in a format suitable for
.IR grep (1)
or
.IR look (1).
.IP
A repeated symbol gives a variant of that symbol, e.g.,
.B ??
yields ¿\|.
.IP
.SM ASCII
digraphs for mathematical operators give the corresponding operator, e.g.,
.B <=
yields ≤.
.IP
Two letters give the corresponding ligature, e.g.,
.B AE
yields Æ.
.IP
Mathematical and other symbols are given by abbreviations for their names, e.g.,
.B pg
yields ¶.
.IP
Chess pieces are given by a
.B w
or
.B b
followed by a letter for the piece
.RB ( k
for king,
.B q
for queen,
.B r
for rook,
.B n
for knight,
.B b
for bishop, or
.B p
for pawn),
e.g.,
.B wk
for a white king.
.IP
Greek letters are given by an asterisk followed by a corresponding latin letter,
e.g.,
.B *d
yields δ.
.IP
Cyrillic letters are given by an at sign followed by a corresponding latin letter or letters,
e.g.,
.B @ya
yields я.
.IP
Script letters are given by a dollar sign followed by the corresponding regular letter,
e.g.,
.B $F
yields ℱ.
.IP
A digraph of a symbol followed by a letter gives the letter with an accent that looks like the symbol, e.g.,
.B ,c
yields ç.
.IP
Two digits give the fraction with that numerator and denominator, e.g.,
.B 12
yields ½.
.IP
The letter s followed by a character gives that character as a superscript, e.g.,
.B 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.
.IP
Sometimes a pair of characters give a symbol related to the superimposition of the characters, e.g.,
.B cO
yields ©.
.IP
A mnemonic letter followed by $ gives a currency symbol, e.g.,
.B l$
yields £.
.PP
Note the difference between ß (ss) and µ (micron) and
the Greek β and μ.
.SH FILES
.TP
.B \*9/lib/keyboard
sorted table of characters and keyboard sequences
.PD
.SH "SEE ALSO"
.IR intro (1),
.IR ascii (1),
.IR tcs (1),
.IR 9term (1),
.IR acme (1),
.IR sam (1),
.IR utf (7)
