Pierre Ossman | efd4261 | 2014-09-17 13:55:51 +0200 | [diff] [blame] | 1 | Test protocol for keyboard handling |
| 2 | =================================== |
| 3 | |
| 4 | Platform specific tests/issues are marked with []. |
| 5 | |
| 6 | Client |
| 7 | ------ |
| 8 | |
| 9 | - Normal symbols: |
| 10 | |
| 11 | - ASCII characters |
| 12 | - Latin 1 character |
| 13 | - Unicode BMP characters |
| 14 | - Unicode non-BMP characters |
| 15 | |
| 16 | - Dead keys: |
| 17 | |
| 18 | - Grave |
| 19 | - Acute |
| 20 | - Circumflex |
| 21 | - Tilde |
| 22 | - Macron |
| 23 | - Breve |
| 24 | - Dot above |
| 25 | - Diaeresis |
| 26 | - Ring above |
| 27 | - Double acute |
| 28 | - Caron |
| 29 | - Cedilla |
| 30 | - Ogonek |
| 31 | - Ypogegrammeni |
| 32 | - Katakana voiced mark |
| 33 | - Katakana semi-voiced mark |
| 34 | - Dialytika tonos |
| 35 | - FIXME: Many more that we currently probably don't support |
| 36 | |
| 37 | - No composition on client |
| 38 | |
| 39 | - Modifiers: |
| 40 | |
| 41 | - CapsLock, NumLock (sent but ignored by server) |
| 42 | - Shift, Ctrl |
| 43 | - Alt, AltGr, Super [Win, X11] (FIXME: AltGr broken on Win) |
| 44 | - Left/right identification (FIXME: broken for Shift on Win) |
| 45 | - CmdL => AltL, CmdR => SuperL, AltL => ModeSwitch, AltR => Level3Shift [Mac] |
| 46 | - Meta and Hyper sends Super [X11] |
| 47 | |
| 48 | - CapsLock, Shift and AltGr affect symbol lookup |
| 49 | - NumLock affects symbol lookup [Win, X11] |
| 50 | - Ctrl does not affect symbol lookup |
| 51 | - Shift inverts NumLock behaviour [X11] |
| 52 | - Shift turns NumLock off, but not on [Win] (FIXME: fake Shifts also sent) |
| 53 | - CtrlL+AltR fake release [Win] |
| 54 | - Ctrl+Alt+any (note behaviour above though) |
| 55 | - Ctrl+AltGr+any (FIXME: broken on Win) |
| 56 | - "Shift press, A press, Shift release, A release" should not send "a release" |
| 57 | |
| 58 | - Numpad: |
| 59 | |
| 60 | - Numpad specific symbols are sent |
| 61 | - Affected by NumLock |
| 62 | - Decimal key should send Decimal for layouts with . as a symbol, and |
| 63 | Separator for layouts with , as a symbol |
| 64 | |
| 65 | - Multimedia keys: |
| 66 | |
| 67 | - Back, Forward, Refresh, Stop |
| 68 | - HomePage, Search, Favourites |
| 69 | - Mail, Calculator |
| 70 | - Volume up, down, mute |
| 71 | - Media next, previous, stop, play |
| 72 | - Sleep |
| 73 | - FIXME: probably more keys exist |
| 74 | |
| 75 | - Non-character keys: |
| 76 | |
| 77 | - F1-F24 |
| 78 | - Tab, Space, Backspace, Return |
| 79 | - LeftTab sends Tab |
| 80 | - Esc, PrntScrn, ScrollLock, Pause |
| 81 | - Insert, Delete, Home, End, PageUp, PageDown |
| 82 | - Arrow keys |
| 83 | - Menu |
| 84 | |
| 85 | - French layout (AZERTY and inverted shift behaviour for many keys) |
| 86 | |
| 87 | - Key repeat should not send repeated release events |
| 88 | |
| 89 | - Keys are released on loss of focus |
| 90 | |
| 91 | - Local layout changes are respected |
| 92 | |
| 93 | - Local input methods are disabled/enabled with focus |
| 94 | |
| 95 | - System keys should be grabbed in full screen |
| 96 | |
| 97 | The exact keys depends on the system and configuration, but it |
| 98 | is usually variants of these: |
| 99 | |
| 100 | - Alt+Tab |
| 101 | - Super (and Super+other) |
| 102 | - Multimedia keys |
| 103 | - Ctrl+Alt+Delete |
| 104 | - Ctrl+Esc |
| 105 | - F8-F12 |
| 106 | |
| 107 | - Virtual keyboard (as much of the above as is possible) |