xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.

Version 17 (modified by Antoine Martin, 6 years ago) (diff)


[[Image(...)]] Keyboard

Keyboard handling is an area that needs improving.
We currently use the core X11 api, but we should be moving to Xkb, or maybe the xkbcommon wrapper (#371).

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)
  • 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
  • On Posix systems, ensure that your distribution supports setxkbmap -query (most recent ditributions do)

Pending Bugs

  • Input methods don't work by default: #634
  • Supporting multiple layouts and switching layouts reliably and/or manually: #230, #166, #86
  • Multiple keys / meta: #668, #759
  • Keyboard sync may end up pressing the wrong key: #222
  • Input grabs: #139

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 reporting bugs guidelines and generally you will need to include (select those that apply):

  • active keyboard layout(s)
  • input methods
  • keyboard related configuration setup/files
  • keyboard type
  • client and server 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
  • 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: