| KEYBOARD(7) | KEYBOARD(7)

NAME

| keyboard – how to type characters

DESCRIPTION

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 return.

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.

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 £.

Note the difference between ß (ss) and µ (micron) and the Greek β and μ.

X WINDOWS
Under X Windows, both the Alt key and the “Multi key” can begin a compose sequence in a Plan 9 program.

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:

`mklatinkbd −x $PLAN9/lib/keyboard >$HOME/.XCompose

`

Second, configure a “Multi key” by running

`xmodmap −e 'keysym Super_L = Multi_key'

`

(The name `Super_L` typically denotes the Windows key on recent keyboards.)

Third, set these environment variables so that GTK- and QT-based programs will use the compose sequences:

`export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim

`

Finally, start a new GTK- or QT-based program:

`gnome−terminal &

`

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 at startup.

FILES

`/usr/local/plan9/lib/keyboard
`

| sorted table of characters and keyboard sequences

SEE ALSO

| intro(1), ascii(1), tcs(1), 9term(1), acme(1), sam(1), utf(7)