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
|
#pragma src "/sys/src/libdraw"
#pragma lib "libdraw.a"
typedef struct Keyboardctl Keyboardctl;
typedef struct Channel Channel;
struct Keyboardctl
{
Channel *c; /* chan(Rune)[20] */
char *file;
int consfd; /* to cons file */
int ctlfd; /* to ctl file */
int pid; /* of slave proc */
};
extern Keyboardctl* initkeyboard(char*);
extern int ctlkeyboard(Keyboardctl*, char*);
extern void closekeyboard(Keyboardctl*);
enum {
KF= 0xF000, /* Rune: beginning of private Unicode space */
Spec= 0xF800,
/* KF|1, KF|2, ..., KF|0xC is F1, F2, ..., F12 */
Khome= KF|0x0D,
Kup= KF|0x0E,
Kpgup= KF|0x0F,
Kprint= KF|0x10,
Kleft= KF|0x11,
Kright= KF|0x12,
Kdown= Spec|0x00,
Kview= Spec|0x00,
Kpgdown= KF|0x13,
Kins= KF|0x14,
Kend= KF|0x18,
Kalt= KF|0x15,
Kshift= KF|0x16,
Kctl= KF|0x17,
Kbs= 0x08,
Kdel= 0x7f,
Kesc= 0x1b,
Keof= 0x04,
};
|