def get_info(self): info = KeyboardConfigBase.get_info(self) #keycodes: if self.keycode_translation: ksinfo = info.setdefault("keysym", {}) kssinf = info.setdefault("keysyms", {}) kcinfo = info.setdefault("keycode", {}) for kc, keycode in self.keycode_translation.items(): if isinstance(kc, tuple): a, b = kc if isinstance(a, int): client_keycode, keysym = a, b ksinfo.setdefault(keysym, {})[client_keycode] = keycode kcinfo.setdefault(client_keycode, {})[keysym] = keycode elif isinstance(b, int): keysym, index = a, b kssinf.setdefault(keycode, []).append((index, keysym)) else: kcinfo[kc] = keycode if self.xkbmap_keycodes: i = 0 kminfo = info.setdefault("keymap", {}) for keyval, name, keycode, group, level in self.xkbmap_keycodes: kminfo[i] = (keyval, name, keycode, group, level) i += 1 #modifiers: modinfo = {} modsinfo = {} modinfo["filter"] = self.modifiers_filter if self.modifier_client_keycodes: for mod, keys in self.modifier_client_keycodes.items(): modinfo.setdefault(mod, {})["client_keys"] = keys if self.keynames_for_mod: for mod, keys in self.keynames_for_mod.items(): modinfo.setdefault(mod, {})["keys"] = tuple(keys) if self.keycodes_for_modifier_keynames: for mod, keys in self.keycodes_for_modifier_keynames.items(): modinfo.setdefault(mod, {})["keycodes"] = tuple(keys) if self.xkbmap_mod_meanings: for mod, mod_name in self.xkbmap_mod_meanings.items(): modinfo[mod] = mod_name info["x11_keycode"] = self.xkbmap_x11_keycodes for x in ("print", "layout", "variant", "mod_managed", "mod_pointermissing", "raw", "layout_groups"): v = getattr(self, "xkbmap_%s" % x) if v: info[x] = v modsinfo["nuisance"] = tuple(self.xkbmap_mod_nuisance or []) info["modifier"] = modinfo info["modifiers"] = modsinfo #this would need to always run in the UI thread: #info["state"] = { # "modifiers" : self.get_current_mask(), # } log("keyboard info: %s", info) return info
def get_info(self): info = KeyboardConfigBase.get_info(self) info["modifiers.filter"] = self.modifiers_filter #keycodes: if self.keycode_translation: for kc, keycode in self.keycode_translation.items(): if type(kc) == tuple: client_keycode, keysym = kc info["keysym." + str(keysym) + "." + str(client_keycode)] = keycode info["keycode." + str(client_keycode) + "." + keysym] = keycode else: info["keysym." + str(kc)] = keycode info["keycode." + str(kc)] = keycode if self.xkbmap_keycodes: i = 0 for keyval, name, keycode, group, level in self.xkbmap_keycodes: info["keymap.%s" % i] = (keyval, name, keycode, group, level) i += 1 #modifiers: if self.modifier_client_keycodes: for mod, keys in self.modifier_client_keycodes.items(): info["modifier." + mod + ".client_keys"] = keys if self.keynames_for_mod: for mod, keys in self.keynames_for_mod.items(): info["modifier." + mod + ".keys"] = tuple(keys) if self.keycodes_for_modifier_keynames: for mod, keys in self.keycodes_for_modifier_keynames.items(): info["modifier." + mod + ".keycodes"] = tuple(keys) if self.xkbmap_mod_meanings: for mod, mod_name in self.xkbmap_mod_meanings.items(): info["modifier." + mod] = mod_name if self.xkbmap_x11_keycodes: for keycode, keysyms in self.xkbmap_x11_keycodes.items(): info["x11_keycode." + str(keycode)] = keysyms for x in ("print", "layout", "variant"): v = getattr(self, "xkbmap_" + x) if v: info[x] = v for x in ("nuisance", ): v = getattr(self, "xkbmap_mod_" + x) if v: info["modifiers." + x] = list(v) for x in ("managed", "pointermissing"): v = getattr(self, "xkbmap_mod_" + x) if v: info["modifiers." + x] = v log("keyboard info: %s", "\n".join(["%s=%s" % (k, v) for k, v in info.items()])) return info
def get_info(self): info = KeyboardConfigBase.get_info(self) info["modifiers.filter"] = self.modifiers_filter #keycodes: if self.keycode_translation: for kc, keycode in self.keycode_translation.items(): if type(kc)==tuple: client_keycode, keysym = kc info["keysym." + str(keysym)+"."+str(client_keycode)] = keycode info["keycode." + str(client_keycode)+"."+keysym] = keycode else: info["keysym." + str(kc)] = keycode info["keycode." + str(kc)] = keycode if self.xkbmap_keycodes: i = 0 for keyval, name, keycode, group, level in self.xkbmap_keycodes: info["keymap.%s" % i] = (keyval, name, keycode, group, level) i += 1 #modifiers: if self.modifier_client_keycodes: for mod, keys in self.modifier_client_keycodes.items(): info["modifier." + mod + ".client_keys"] = keys if self.keynames_for_mod: for mod, keys in self.keynames_for_mod.items(): info["modifier." + mod + ".keys"] = tuple(keys) if self.keycodes_for_modifier_keynames: for mod, keys in self.keycodes_for_modifier_keynames.items(): info["modifier." + mod + ".keycodes"] = tuple(keys) if self.xkbmap_mod_meanings: for mod, mod_name in self.xkbmap_mod_meanings.items(): info["modifier." + mod ] = mod_name if self.xkbmap_x11_keycodes: for keycode, keysyms in self.xkbmap_x11_keycodes.items(): info["x11_keycode." + str(keycode) ] = keysyms for x in ("print", "layout", "variant"): v = getattr(self, "xkbmap_"+x) if v: info[x] = v for x in ("nuisance", ): v = getattr(self, "xkbmap_mod_"+x) if v: info["modifiers."+x] = list(v) for x in ("managed", "pointermissing"): v = getattr(self, "xkbmap_mod_"+x) if v: info["modifiers."+x] = v log("keyboard info: %s", "\n".join(["%s=%s" % (k,v) for k,v in info.items()])) return info
def get_info(self): info = KeyboardConfigBase.get_info(self) #keycodes: if self.keycode_translation: ksinfo = info.setdefault("keysym", {}) kcinfo = info.setdefault("keycode", {}) for kc, keycode in self.keycode_translation.items(): if type(kc) == tuple: client_keycode, keysym = kc ksinfo.setdefault(keysym, {})[client_keycode] = keycode kcinfo.setdefault(client_keycode, {})[keysym] = keycode else: kcinfo[kc] = keycode if self.xkbmap_keycodes: i = 0 kminfo = info.setdefault("keymap", {}) for keyval, name, keycode, group, level in self.xkbmap_keycodes: kminfo[i] = (keyval, name, keycode, group, level) i += 1 #modifiers: modinfo = {} modsinfo = {} modinfo["filter"] = self.modifiers_filter if self.modifier_client_keycodes: for mod, keys in self.modifier_client_keycodes.items(): modinfo.setdefault(mod, {})["client_keys"] = keys if self.keynames_for_mod: for mod, keys in self.keynames_for_mod.items(): modinfo.setdefault(mod, {})["keys"] = tuple(keys) if self.keycodes_for_modifier_keynames: for mod, keys in self.keycodes_for_modifier_keynames.items(): modinfo.setdefault(mod, {})["keycodes"] = tuple(keys) if self.xkbmap_mod_meanings: for mod, mod_name in self.xkbmap_mod_meanings.items(): modinfo[mod] = mod_name info["x11_keycode"] = self.xkbmap_x11_keycodes for x in ("print", "layout", "variant", "mod_managed", "mod_pointermissing", "raw", "layout_groups"): v = getattr(self, "xkbmap_%s" % x) if v: info[x] = v modsinfo["nuisance"] = tuple(self.xkbmap_mod_nuisance or []) info["modifier"] = modinfo info["modifiers"] = modsinfo log("keyboard info: %s", info) return info
def get_info(self): info = KeyboardConfigBase.get_info(self) #keycodes: if self.keycode_translation: ksinfo = info.setdefault("keysym", {}) kcinfo = info.setdefault("keycode", {}) for kc, keycode in self.keycode_translation.items(): if type(kc)==tuple: client_keycode, keysym = kc ksinfo.setdefault(keysym, {})[client_keycode] = keycode kcinfo.setdefault(client_keycode, {})[keysym] = keycode else: kcinfo[kc] = keycode if self.xkbmap_keycodes: i = 0 kminfo = info.setdefault("keymap", {}) for keyval, name, keycode, group, level in self.xkbmap_keycodes: kminfo[i] = (keyval, name, keycode, group, level) i += 1 #modifiers: modinfo = {} modsinfo = {} modinfo["filter"] = self.modifiers_filter if self.modifier_client_keycodes: for mod, keys in self.modifier_client_keycodes.items(): modinfo.setdefault(mod, {})["client_keys"] = keys if self.keynames_for_mod: for mod, keys in self.keynames_for_mod.items(): modinfo.setdefault(mod, {})["keys"] = tuple(keys) if self.keycodes_for_modifier_keynames: for mod, keys in self.keycodes_for_modifier_keynames.items(): modinfo.setdefault(mod, {})["keycodes"] = tuple(keys) if self.xkbmap_mod_meanings: for mod, mod_name in self.xkbmap_mod_meanings.items(): modinfo[mod] = mod_name info["x11_keycode"] = self.xkbmap_x11_keycodes for x in ("print", "layout", "variant", "mod_managed", "mod_pointermissing", "raw"): v = getattr(self, "xkbmap_"+x) if v: info[x] = v modsinfo["nuisance"] = list(self.xkbmap_mod_nuisance or []) info["modifier"] = modinfo info["modifiers"] = modsinfo log("keyboard info: %s", info) return info
def get_info(self): info = KeyboardConfigBase.get_info(self) return info