Ejemplo n.º 1
0
def __parse_keystring(key_string):
    modifiers = 0
    keycode = None

    for part in key_string.split('-'):
        if hasattr(xcb.xproto.KeyButMask, part):
            modifiers |= getattr(xcb.xproto.KeyButMask, part)
        else:
            if len(part) == 1:
                part = part.lower()
            keycode = keysym.lookup_string(state.conn, state.get_kbmap(), part)

    return modifiers, keycode
Ejemplo n.º 2
0
def __parse_keystring(key_string):
    modifiers = 0
    keycode = None

    for part in key_string.split('-'):
        if hasattr(xcb.xproto.KeyButMask, part):
            modifiers |= getattr(xcb.xproto.KeyButMask, part)
        else:
            if len(part) == 1:
                part = part.lower()
            keycode = keysym.lookup_string(state.conn, state.get_kbmap(), part)

    return modifiers, keycode
Ejemplo n.º 3
0
def cb_MappingNotifyEvent(e):
    newmap = keysym.get_keyboard_mapping(state.conn).reply()

    # Update the key codes that may have changed
    if e.request == xcb.xproto.Mapping.Keyboard:
        changes = {}

        for kc in xrange(*keysym.get_min_max_keycode(state.conn)):
            knew = keysym.get_keysym(state.conn, newmap, kc)
            oldkc = keysym.get_keycode(state.conn, state.get_kbmap(), knew)

            if oldkc != kc:
                changes[oldkc] = kc

        state.set_kbmap(newmap)
        events.regrab(changes)
    # Update the modifier mappings that may have changed
    elif e.request == xcb.xproto.Mapping.Modifier:
        state.set_keys_to_mods(keysym.get_keys_to_mods(state.conn))
Ejemplo n.º 4
0
def cb_MappingNotifyEvent(e):
    newmap = keysym.get_keyboard_mapping(state.conn).reply()

    # Update the key codes that may have changed
    if e.request == xcb.xproto.Mapping.Keyboard:
        changes = {}

        for kc in xrange(*keysym.get_min_max_keycode(state.conn)):
            knew = keysym.get_keysym(state.conn, newmap, kc)
            oldkc = keysym.get_keycode(state.conn, state.get_kbmap(), knew)

            if oldkc != kc:
                changes[oldkc] = kc

        state.set_kbmap(newmap)
        events.regrab(changes)
    # Update the modifier mappings that may have changed
    elif e.request == xcb.xproto.Mapping.Modifier:
        state.set_keys_to_mods(keysym.get_keys_to_mods(state.conn))