Source code for pykeymapper.utils

import logging

import sys

from pykeymapper.events import InputEvent, TYPE, VALUE

logger = logging.getLogger(__name__)


[docs]def write_event(event): """ Write event to standard out. Args: event(InputEvent): event to write. """ logger.debug(f"Writing event: {str(event)}") sys.stdout.buffer.write(event) sys.stdout.buffer.flush()
[docs]def make_key_event(code, value, type=None): """ Construct a input event. Args: code(int): value(int): type(Optional[type]): Returns: InputEvent: """ event = InputEvent() event.code = code event.value = value event.type = type or TYPE.EV_KEY return event
[docs]def push_key(code, modifiers=None): """ Push a given key, with modifiers applied. Args: code(int): Key code to press. modifiers(list of int): List of modifiers to press. """ if modifiers is None: modifiers = [] for mod_code in modifiers: write_event(make_key_event(mod_code, VALUE.KEY_DOWN)) write_event(make_key_event(code, VALUE.KEY_DOWN)) write_event(make_key_event(code, VALUE.KEY_UP)) for mod_code in modifiers: write_event(make_key_event(mod_code, VALUE.KEY_UP))