blob: 303e30bcec7134cf05909e81112db2e980bf709b [file] [log] [blame]
Pierre Ossmanefd42612014-09-17 13:55:51 +02001Test protocol for keyboard handling
2===================================
3
4Platform specific tests/issues are marked with [].
5
Pierre Ossmanb6116dd2016-06-10 15:03:13 +02006These tests are primarily about what is sent over the protocol and some
7may be difficult or impossible to test using normal applications. In
8these cases you can turn on debug logging in either the client or the
9server by specifying "-Log *:stderr:100".
10
11We currently have a limitation in Xvnc where it can run out of symbols,
12resulting in nothing being sent to the applications. Just run setxkbmap
13with any layout to reset the symbol table.
14
Pierre Ossmanefd42612014-09-17 13:55:51 +020015Client
16------
17
18- Normal symbols:
19
20 - ASCII characters
21 - Latin 1 character
22 - Unicode BMP characters
23 - Unicode non-BMP characters
24
25- Dead keys:
26
Pierre Ossmanb6116dd2016-06-10 15:03:13 +020027 These are not available on a single layout, so you need to switch to
28 test everything. The useful layouts also differ per platform:
29
30 X11: US International for most, Greek for some specific diacretics
31 Win: US International, Czech, Greek Polytonic, Vietnamese
32 OS X: ABC Extended, Greek
33
Pierre Ossmanefd42612014-09-17 13:55:51 +020034 - Grave
35 - Acute
36 - Circumflex
37 - Tilde
38 - Macron
39 - Breve
40 - Dot above
Pierre Ossman30e34012016-06-10 15:06:21 +020041 - Dot below
Pierre Ossmanefd42612014-09-17 13:55:51 +020042 - Diaeresis
43 - Ring above
44 - Double acute
45 - Caron
46 - Cedilla
47 - Ogonek
Pierre Ossman30e34012016-06-10 15:06:21 +020048 - Ypogegrammeni (iota below)
Pierre Ossmanefd42612014-09-17 13:55:51 +020049 - Dialytika tonos
Pierre Ossman30e34012016-06-10 15:06:21 +020050 - Comma above
51 - Reversed comma above
52 - Horn
53 - Hook above
54 - Hook below
55 - Dakuten (Katakana voiced mark)
56 - Handakuten (Katakana semi-voiced mark)
Pierre Ossmanefd42612014-09-17 13:55:51 +020057 - FIXME: Many more that we currently probably don't support
58
59 - No composition on client
60
61- Modifiers:
62
Pierre Ossmanb6116dd2016-06-10 15:03:13 +020063 X11: You can usually toggle Hyper/Super and Compose/Scroll_Lock using
64 XKB options.
65
Pierre Ossmanefd42612014-09-17 13:55:51 +020066 - CapsLock, NumLock (sent but ignored by server)
67 - Shift, Ctrl
68 - Alt, AltGr, Super [Win, X11] (FIXME: AltGr broken on Win)
Pierre Ossmanf1013e42016-06-10 15:04:33 +020069 - Meta [X11]
Pierre Ossmanefd42612014-09-17 13:55:51 +020070 - Left/right identification (FIXME: broken for Shift on Win)
71 - CmdL => AltL, CmdR => SuperL, AltL => ModeSwitch, AltR => Level3Shift [Mac]
Peter Åstrand (astrand)f3ff0f12015-10-14 13:47:28 +020072 - Hyper sends Super [X11]
Pierre Ossmanefd42612014-09-17 13:55:51 +020073
74 - CapsLock, Shift and AltGr affect symbol lookup
Pierre Ossmanefd42612014-09-17 13:55:51 +020075 - Ctrl does not affect symbol lookup
Pierre Ossmanefd42612014-09-17 13:55:51 +020076 - CtrlL+AltR fake release [Win]
77 - Ctrl+Alt+any (note behaviour above though)
78 - Ctrl+AltGr+any (FIXME: broken on Win)
79 - "Shift press, A press, Shift release, A release" should not send "a release"
80
81- Numpad:
82
Pierre Ossman2ddee232016-06-10 15:03:59 +020083 - NumLock affects symbol lookup [Win, X11]
Pierre Ossmanefd42612014-09-17 13:55:51 +020084 - Numpad specific symbols are sent
Pierre Ossmanefd42612014-09-17 13:55:51 +020085 - Decimal key should send Decimal for layouts with . as a symbol, and
86 Separator for layouts with , as a symbol
Pierre Ossman2ddee232016-06-10 15:03:59 +020087 - Shift inverts NumLock behaviour [X11]
88 - Shift turns NumLock off, but not on [Win] (FIXME: fake Shifts also sent)
Pierre Ossmanefd42612014-09-17 13:55:51 +020089
90- Multimedia keys:
91
92 - Back, Forward, Refresh, Stop
93 - HomePage, Search, Favourites
94 - Mail, Calculator
95 - Volume up, down, mute
96 - Media next, previous, stop, play
97 - Sleep
98 - FIXME: probably more keys exist
99
100- Non-character keys:
101
102 - F1-F24
103 - Tab, Space, Backspace, Return
104 - LeftTab sends Tab
105 - Esc, PrntScrn, ScrollLock, Pause
106 - Insert, Delete, Home, End, PageUp, PageDown
107 - Arrow keys
108 - Menu
Pierre Ossmana7d3dc72014-09-30 17:03:28 +0200109 - Alt+PrntScrn sends Sys_Req [Win]
Pierre Ossmanefd42612014-09-17 13:55:51 +0200110
111- French layout (AZERTY and inverted shift behaviour for many keys)
112
113- Key repeat should not send repeated release events
114
115- Keys are released on loss of focus
116
117- Local layout changes are respected
118
119- Local input methods are disabled/enabled with focus
120
121- System keys should be grabbed in full screen
122
123 The exact keys depends on the system and configuration, but it
124 is usually variants of these:
125
126 - Alt+Tab
127 - Super (and Super+other)
128 - Multimedia keys
129 - Ctrl+Alt+Delete
130 - Ctrl+Esc
131 - F8-F12
132
133- Virtual keyboard (as much of the above as is possible)