{{{#!div class="box" [[Image(https://xpra.org/icons/keyboard.png)]] = Keyboard = [[BR]] Keyboard handling is an area that could do with some improvements. [[BR]] We currently use the core {{{X11}}} api, but we should be moving to {{{Xkb}}}, or maybe the [http://fk01.fooishbar.org/?p=39 xkbcommon] wrapper (#371). }}} {{{#!div class="box" == Solved Bugs == * When connecting over high latency links, use the {{{--no-keyboard-sync}}} option to prevent keys from repeating. This toggle is also accessible from the system tray menu. (this switch may cause other problems though) * keyboard shortcuts: #1657 * US layout and most common layouts should work ok. * If starting xpra from an environment which has non-standard input methods, this can interfere, see #286 * Input methods don't work by default: #634 * Supporting multiple layouts and switching layouts reliably and/or manually: #230, #166, #86, #1607, #1665, #1380 * Multiple keys / meta: #668, #759 * Input grabs: #139 }}} {{{#!div class="box" == Pending Bugs == * Keyboard sync may end up pressing the wrong key: #222 * Hidden keyboard state: #1238 * Xkb: #1049 * layout detection: #2983 }}} {{{#!div class="box" == Reporting Bugs == First, please check the bugs above to see if any match your problem or seems related. Failing that, make sure to read the [/wiki/ReportingBugs reporting bugs guidelines] and generally you will need to include (select those that apply): * there is a keyboard debugging tool which can be launched using {{{xpra keyboard-test}}} * active keyboard layout(s) * input methods * keyboard related configuration setup/files * keyboard type * client and server [/wiki/Logging log output] with the {{{-d keyboard}}} debugging switch * whether the bug is also present with/without {{{--no-keyboard-sync}}} * {{{setxkbmap -print}}} and {{{setxkbmap -query}}} (both directly in the client if it supports those commands and in the xpra session) * {{{Keymap_info.exe}}} on MS Windows, or {{{xpra/gtk_common/keymap.py}}} everywhere else * {{{xmodmap -pke}}} and {{{xmodmap -pm}}} (again on both) * {{{xkbprint -label name $DISPLAY}}} * if the problem is affecting specific keys, you may want to use the environment variable {{{XPRA_DEBUG_KEYSYMS=keyname1,keyname2}}} on the server to log the keyboard mapping process for those keys * {{{xev}}} output of the misbehaving key events * running both the server and the client with the debug option {{{-d keyboard}}}, or for very verbose debugging: {{{-d keyboard,verbose}}} * gather information using the test scripts: * [https://xpra.org/trac/browser/trunk/src/xpra/gtk_view_keyboard.py gtk_view_keyboard.py] (named {{{GTK_Keyboard_Test.exe}}} on MS Windows) * [https://xpra.org/trac/browser/trunk/src/xpra/gtk_common/keymap.py keymap.py] (named {{{Keymap_info.exe}}} on MS Windows) }}}