| 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/plan9port/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/plan9port/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)