.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.
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).
To add a sequence, edit that file and then rebuild
.IR devdraw (1).
.PP
There are several rules guiding the design of the sequences, as
illustrated by the following examples.
.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 μ.
.SS "X WINDOWS
Under X Windows, both the Alt key and the ``Multi key''
can begin a compose sequence in a Plan 9 program.
.PP
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
.IR mklatinkbd :
.IP
.EX
mklatinkbd -x $PLAN9/lib/keyboard >$HOME/.XCompose
.EE
.LP
Second, configure a ``Multi key'' by running
.IP
.EX
xmodmap -e 'keysym Super_L = Multi_key'
.EE
.LP
(The name
.L Super_L
typically denotes the Windows key on recent keyboards.)
.PP
Third, set these environment variables so that GTK- and QT-based programs
will use the compose sequences:
.IP
.EX
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
.EE
.LP
Finally, start a new GTK- or QT-based program:
.IP
.EX
gnome-terminal &
.EE
.LP
In that terminal, typing the key sequence
.RB ` Windows
.B *
.BR a '
should be interpreted as the Greek letter
.LR α .
.PP
If using the GNOME Window Manager, put the
.B xmodmap
and
.B export
commands into the file
.B $HOME/.gnomerc
to run them automatically at startup.
.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)
