aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/keyboard-test.txt37
1 files changed, 37 insertions, 0 deletions
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