Xpra: Ticket #72: no keys with modifiers accepted anymore

I've had it now 3 times that no keys with modifiers are accepted anymore; ie. I can enter "abc", but no character like "!" (shift+1), "«" (AltGr+x), etc. These are simply not taken (xchat text input line).

I've now had that while running xpra with "-d all"; here's the (hopefully) relevant part of the log. I hope that this client log is enough.

I've marked a few lines with "==========" to explain the approximate state; perhaps having a timestamp every so often would be a good idea, too.



Wed, 18 Jan 2012 10:43:29 GMT - pmarek: attachment set


Wed, 18 Jan 2012 10:44:50 GMT - pmarek:

Here's something I found in the xpra server log, perhaps that helps, too.

TypeError: argument of type 'NoneType' is not iterable
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib/xpra/xpra/protocol.py", line 286, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib/xpra/xpra/server.py", line 1838, in process_packet
    self._packet_handlers[packet_type](self, proto, packet)
  File "/usr/lib/xpra/xpra/server.py", line 1620, in _process_key_action
    self._make_keymask_match(modifiers, keycode, ignored_modifier_keynames=[keyname])
  File "/usr/lib/xpra/xpra/server.py", line 1081, in _make_keymask_match
    change_mask(wanted.difference(current), True, "add")
  File "/usr/lib/xpra/xpra/server.py", line 1030, in change_mask
    if modifier in self.xkbmap_mod_managed:
TypeError: argument of type 'NoneType' is not iterable
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib/xpra/xpra/protocol.py", line 286, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib/xpra/xpra/server.py", line 1838, in process_packet
    self._packet_handlers[packet_type](self, proto, packet)
  File "/usr/lib/xpra/xpra/server.py", line 1736, in _process_pointer_position
    self._make_keymask_match(modifiers, ignored_modifier_keynames=self.xkbmap_mod_pointermissing)
  File "/usr/lib/xpra/xpra/server.py", line 1081, in _make_keymask_match
    change_mask(wanted.difference(current), True, "add")
  File "/usr/lib/xpra/xpra/server.py", line 1030, in change_mask
    if modifier in self.xkbmap_mod_managed:

Wed, 18 Jan 2012 10:52:08 GMT - Antoine Martin: owner, status, description changed

The client log looks ok, I am much more interested in the server log...


Wed, 18 Jan 2012 10:54:37 GMT - Antoine Martin:

The error in comment:1 has been fixed already, see r433 - that may well solve your problems


Wed, 18 Jan 2012 10:56:05 GMT - pmarek:

I've found multiple instances of these messages, too ... but that's all there is in the server log.

unhandled format 0 for clipboard data type
TypeError: object of type 'NoneType' has no len()
['setxkbmap', '-rules', 'evdev', '-model', 'pc104', '-layout', 'de']
['setxkbmap', '-option', '', '-option', 'ctrl:nocaps,terminate:ctrl_alt_bksp,compose:lwin']
['xkbcomp', '-', ':65'] with stdin=xkb_keymap {\n       xkb_keycodes  { ..
error setting xmodmap
Traceback (most recent call last):
  File "/usr/lib/xpra/xpra/server.py", line 734, in set_keymap
    if len(self.xkbmap_keycodes)>0:
  TypeError: object of type 'NoneType' has no len()

Wed, 18 Jan 2012 11:04:21 GMT - Antoine Martin:

bug in comment:4 is fixed in r444 - as far as I can tell, this should only happen when old clients connect?


Wed, 18 Jan 2012 11:44:59 GMT - Antoine Martin:

silly bug fixed in r445, to test that this fixes it, also apply this:

Index: xpra/platform/client_extras_base.py
===================================================================
--- xpra/platform/client_extras_base.py	(revision 436)
+++ xpra/platform/client_extras_base.py	(working copy)
@@ -220,6 +220,7 @@
     def session_info(self, *args):
+        self.client._keys_changed()
         if self.session_info_window:
             self.session_info_window.present()
             return

To make the keys_changed fire everytime the session statistics tray menu is clicked, this used to break the keymap and no longer does.


Sun, 29 Jan 2012 12:48:20 GMT - Antoine Martin: status changed; resolution set

I assume this is fixed, please re-open if necessary.


Mon, 20 Feb 2012 19:22:51 GMT - Antoine Martin: milestone changed; version set


Sat, 23 Jan 2021 04:44:46 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/72