def _handle_linux(self, keycode, character, press):
        """Linux key event handler."""
        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": # Shift-X is not a combo
                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)