From 794812dc76e3bce98c98772d5deabf7cc31ecd91 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 19 Oct 2018 16:22:26 +0200 Subject: [PATCH] Document tests for server keyboard handling --- doc/keyboard-test.txt | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/doc/keyboard-test.txt b/doc/keyboard-test.txt index f6a800ac..e5fcbd78 100644 --- a/doc/keyboard-test.txt +++ b/doc/keyboard-test.txt @@ -164,3 +164,40 @@ Client (both modes) * Usually needs to be enabled with: xmodmap -e "add mod3 = Scroll_Lock" - Virtual keyboard (as much of the above as is possible) + +Server +------ + +- Fake key events + + An extra press or release should be added before the real key press + in order to get the correct state to get the desired symbol. A second + fake event should be added after the real key press to restore state. + No extra events should be added for a key release. + + Possible fake keys: + + - Shift + - AltGr + + - Shift+Tab bypasses this and never fake releases Shift + +- Alternative keys + + A semantically equivalent key is sent when the desired key cannot be + reached in the current keyboard state: + + - Left modifier <=> Right modifier (e.g. Alt_R for Alt_L) + - Keypad key <=> Standard key + - ISO_Level3_Shift <=> Mode_Switch + +- Meta for Shift+Alt (if server keymap agrees) + +- Lock key heuristics (for clients without lock key extension) + + - CapsLock is corrected when A-Z or a-z are pressed + - CapsLock is corrected when Shift and A-Z or a-z are pressed* + - NumLock is corrected when 0-9 on the keypad are pressed + + * Gives incorrect behaviour if the client doesn't have "Shift cancels + CapsLock behaviour", e.g. macOS -- 2.39.5