code: def _handle_linux(self, keycode, character, press):
          if character is None: return
          key = self._keyname(character, keycode)
          if key in self.MODIFIERNAMES:
              self._modifiers[self.MODIFIERNAMES[key]] = press
              self._realmodifiers[key] = press
          if press:
              self._output(type="keys", key=key, realkey=key)
          if press and key not in self.MODIFIERNAMES:
              modifier = "-".join(k for k in ["Ctrl", "Alt", "Shift", "Win"]
                                  if self._modifiers[k])
              if modifier and modifier != "Shift":
                  realmodifier = "-".join(k for k, v in self._realmodifiers.items() if v)
                  realkey = "%s-%s" % (realmodifier, key)
                  key = "%s-%s" % (modifier, key)
                  if DEBUG: print("Adding combo %s (real %s)" % (key.encode("utf-8"), realkey.encode("utf-8")))
                  self._output(type="combos", key=key, realkey=realkey)