1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
|
.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
.MR 9term (1) ,
.MR acme (1) ,
and
.MR sam (1) ,
causes windows to scroll forward.
The up arrow scrolls backward.
.PP
Characters in Plan 9 are runes (see
.MR utf (7) ).
Any 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.
To type a single rune with the value specified by
a given four-digit hexadecimal number,
type the compose key,
then a capital
.LR X ,
and then the four hexadecimal digits (decimal digits and
.L a
to
.LR f ).
For a longer rune, type
.L X
twice followed by five digits,
or type
.L X
three times followed by six digits.
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
.MR grep (1)
or
.MR look (1) .
To add a sequence, edit that file and then rebuild
.MR 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"
.MR intro (1) ,
.MR ascii (1) ,
.MR tcs (1) ,
.MR 9term (1) ,
.MR acme (1) ,
.MR sam (1) ,
.MR utf (7)
|