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
|
Test protocol for keyboard handling
===================================
Platform specific tests/issues are marked with [].
Client
------
- Normal symbols:
- ASCII characters
- Latin 1 character
- Unicode BMP characters
- Unicode non-BMP characters
- Dead keys:
- Grave
- Acute
- Circumflex
- Tilde
- Macron
- Breve
- Dot above
- Diaeresis
- Ring above
- Double acute
- Caron
- Cedilla
- Ogonek
- Ypogegrammeni
- Katakana voiced mark
- Katakana semi-voiced mark
- Dialytika tonos
- FIXME: Many more that we currently probably don't support
- No composition on client
- Modifiers:
- CapsLock, NumLock (sent but ignored by server)
- Shift, Ctrl
- Alt, AltGr, Super [Win, X11] (FIXME: AltGr broken on Win)
- Left/right identification (FIXME: broken for Shift on Win)
- CmdL => AltL, CmdR => SuperL, AltL => ModeSwitch, AltR => Level3Shift [Mac]
- Meta and Hyper sends Super [X11]
- CapsLock, Shift and AltGr affect symbol lookup
- NumLock affects symbol lookup [Win, X11]
- Ctrl does not affect symbol lookup
- Shift inverts NumLock behaviour [X11]
- Shift turns NumLock off, but not on [Win] (FIXME: fake Shifts also sent)
- CtrlL+AltR fake release [Win]
- Ctrl+Alt+any (note behaviour above though)
- Ctrl+AltGr+any (FIXME: broken on Win)
- "Shift press, A press, Shift release, A release" should not send "a release"
- Numpad:
- Numpad specific symbols are sent
- Affected by NumLock
- Decimal key should send Decimal for layouts with . as a symbol, and
Separator for layouts with , as a symbol
- Multimedia keys:
- Back, Forward, Refresh, Stop
- HomePage, Search, Favourites
- Mail, Calculator
- Volume up, down, mute
- Media next, previous, stop, play
- Sleep
- FIXME: probably more keys exist
- Non-character keys:
- F1-F24
- Tab, Space, Backspace, Return
- LeftTab sends Tab
- Esc, PrntScrn, ScrollLock, Pause
- Insert, Delete, Home, End, PageUp, PageDown
- Arrow keys
- Menu
- Alt+PrntScrn sends Sys_Req [Win]
- French layout (AZERTY and inverted shift behaviour for many keys)
- Key repeat should not send repeated release events
- Keys are released on loss of focus
- Local layout changes are respected
- Local input methods are disabled/enabled with focus
- System keys should be grabbed in full screen
The exact keys depends on the system and configuration, but it
is usually variants of these:
- Alt+Tab
- Super (and Super+other)
- Multimedia keys
- Ctrl+Alt+Delete
- Ctrl+Esc
- F8-F12
- Virtual keyboard (as much of the above as is possible)
|