devinput package¶
Submodules¶
devinput.bus module¶
- class devinput.bus.BusType(*values)¶
Bases:
IntEnumBus types (BUS)
- BUS_ADB = 23¶
- BUS_AMIGA = 22¶
- BUS_ATARI = 27¶
- BUS_BLUETOOTH = 5¶
- BUS_GAMEPORT = 20¶
- BUS_GSC = 26¶
- BUS_HIL = 4¶
- BUS_HOST = 25¶
- BUS_I2C = 24¶
- BUS_I8042 = 17¶
- BUS_ISA = 16¶
- BUS_ISAPNP = 2¶
- BUS_PARPORT = 21¶
- BUS_PCI = 1¶
- BUS_RS232 = 19¶
- BUS_SPI = 28¶
- BUS_USB = 3¶
- BUS_VIRTUAL = 6¶
- BUS_XTKBD = 18¶
devinput.capabilities module¶
- class devinput.capabilities.Capabilities(path: str, ioctl: IoctlInterface)¶
Bases:
object- abs_cap_code: int¶
- abs_path: str¶
- ev_path: str¶
- event_types_code: int¶
- ff_path: str¶
- has_cap(cap: EventType | SynEvent | KeyEvent | RelEvent | AbsEvent | MscEvent | SwEvent | LedEvent | SndEvent) bool¶
Checks for a capability
- Parameters:
cap – the capability to check
- ioctl: IoctlInterface¶
- key_cap_code: int¶
- key_path: str¶
- led_cap_code: int¶
- led_path: str¶
- list(cap_type: EventType) set[SynEvent | KeyEvent | RelEvent | AbsEvent | MscEvent | SwEvent | LedEvent | SndEvent]¶
- msc_cap_code: int¶
- msc_path: str¶
- path: str¶
- rel_cap_code: int¶
- rel_path: str¶
- snd_cap_code: int¶
- snd_path: str¶
- sw_cap_code: int¶
- sw_path: str¶
- property syn_cap_code: int¶
The bitmask of all SYN capabilities. (the reason this is a property is that it requires an ioctl call)
- devinput.capabilities.get_cap_set(cap_code: int, cap_enum: type[EventType | SynEvent | KeyEvent | RelEvent | AbsEvent | MscEvent | SwEvent | LedEvent | SndEvent]) set[EventType | SynEvent | KeyEvent | RelEvent | AbsEvent | MscEvent | SwEvent | LedEvent | SndEvent]¶
- devinput.capabilities.parse_cap(content: str) int¶
- devinput.capabilities.parse_cap_file(filename: str) int¶
devinput.const module¶
devinput.device module¶
- class devinput.device.Device(event_path: str)¶
Bases:
object- property capabilities: Capabilities¶
The device capabilities
- close()¶
Closes the device
- closed: bool¶
- event_code: str¶
- event_path: str¶
- fd: int | None¶
- flush_async() list[Event]¶
Returns a list of all the events since last read. Events are read immediately and asynchronously
- classmethod from_event(event_code)¶
Creates a Device object from an event code (e.g. “event0” -> “/dev/input/event0”)
- get_absolute(abs_type: AbsEvent) InputAbsInfo¶
Returns information on an absolute event type.
- Parameters:
abs_type – the event type to check for. Must be in device capabilities
- get_event_async(timeout: float | int | None = None) Event | None¶
Reads one event from the device asynchronously. If no event is available within the specified timeout, returns None.
- Parameters:
timeout – if set to None, waits until an event is available
- get_keycode(scancode_or_index: int | Iterable[int], by_index: bool = False) int¶
Gets the keycode from a scancode or index
- Parameters:
scancode_or_index – the scancode or index
by_index – interpret scancode_or_index as an index
- get_keys(interesting: Container[KeyEvent] | None = None) set[KeyEvent]¶
Returns the currently active keys on a device. EventType.EV_KEY must be in device capabilities.
- Parameters:
interesting – Only check these keys. If set to None, all key events in device capababilities are checked.
- get_leds(interesting: Container[LedEvent] | None = None) set[LedEvent]¶
Returns the currently active LEDs on a device. EventType.EV_LED must be in device capabilities.
- Parameters:
interesting – Only check these LEDs. If set to None, all LEDs in device capababilities are checked.
- get_multi_touch_state(num_slots: int = 8) dict[AbsEvent, list[int]]¶
Gets the multi-touch values for all MT events in device capabilities
- Parameters:
num_slots – the number of MT slots to extract per event
- get_multi_touch_values(mt_code: AbsEvent, num_slots: int = 8) list[int]¶
Gets the multi-touch values for a given MT event
- Parameters:
num_slots – the number of MT slots to extract
- get_repeat_settings() RepeatSettings¶
Gets repeat settings for the device. EventTypes.EV_REP must be in device capabilities
- get_sounds(interesting: Container[SndEvent] | None = None) set[SndEvent]¶
Returns the currently active sounds on a device. EventType.EV_SND must be in device capabilities.
- Parameters:
interesting – Only check these sounds. If set to None, all sound events in device capababilities are checked.
- get_switches(interesting: Container[SwEvent] | None = None) set[SwEvent]¶
Returns the currently active switches on a device. EventType.EV_SW must be in device capabilities.
- Parameters:
interesting – Only check these switches. If set to None, all switch events in device capababilities are checked.
- grab()¶
Grabs device
- grabbed() Iterator[None]¶
A context manager for device grabbing. On enter, grab() is called. On exit, ungrab() is called.
- has_cap(cap: EventType | SynEvent | KeyEvent | RelEvent | AbsEvent | MscEvent | SwEvent | LedEvent | SndEvent) bool¶
Checks for a device capability
- Parameters:
cap – the capability to check
- info_path: str¶
- ioctl: IoctlInterface | None¶
- is_grabbed: False¶
- iter_events() Generator[Event, None, None]¶
Returns an iterator over events. Stops when no events are available
- iter_events_async() AsyncGenerator[Event, None, None]¶
Returns an asynchronous iterator over events. Stops when no events are available
- modalias: str¶
- modalias_path: str¶
- name: str¶
- name_path: str¶
- open() None¶
Opens the device
- poll(timeout: float | int | None = 0.0) bool¶
Returns True if an event is available within a timeout, False otherwise.
- Parameters:
timeout – timeout for the poll. 0 by default. If set to None, waits until an event is available
- poll_async(timeout: float | int | None = 0.0) bool¶
Asynchronous. Returns True if an event is available within a timeout, False otherwise.
- Parameters:
timeout – timeout for the poll. 0 by default. If set to None, waits until an event is available
- send_event(event: Event) int¶
Sends an event to the device. Returns the number of bytes written
- Parameters:
event – the Event object to send
- send_event_async(event: Event) int¶
Sends an event to the device asynchronously. Returns the number of bytes written
- Parameters:
event – the Event object to send
- set_repeat_settings(settings: RepeatSettings)¶
Sets repeat settings for the device. EventTypes.EV_REP must be in device capabilities
- ungrab()¶
Releases grab on device
- wait() None¶
Waits until an event is available. Equivalent to poll(None)
- async wait_async() None¶
Waits asynchronously until an event is available. Equivalent to poll_async(None)
devinput.event module¶
- class devinput.event.Event(code: SynEvent | KeyEvent | RelEvent | AbsEvent | MscEvent | SwEvent | LedEvent | SndEvent, value: int, timestamp: float | None = None)¶
Bases:
Structure- property code: SynEvent | KeyEvent | RelEvent | AbsEvent | MscEvent | SwEvent | LedEvent | SndEvent¶
- property datetime: datetime¶
- property timestamp: float¶
- value: int¶
Structure/Union member
- write(fd: int) int¶
- async write_async(fd: int, timeout: int | float | None = None) int¶
devinput.event_types module¶
Some huge enums. Taken from https://elixir.bootlin.com/linux/v4.3/source/include/uapi/linux/input.h
- class devinput.event_types.AbsEvent(*values)¶
Bases:
IntEnumAbsolute axes (ABS)
- ABS_BRAKE = 10¶
- ABS_DISTANCE = 25¶
- ABS_GAS = 9¶
- ABS_HAT0X = 16¶
- ABS_HAT0Y = 17¶
- ABS_HAT1X = 18¶
- ABS_HAT1Y = 19¶
- ABS_HAT2X = 20¶
- ABS_HAT2Y = 21¶
- ABS_HAT3X = 22¶
- ABS_HAT3Y = 23¶
- ABS_MISC = 40¶
- ABS_MT_BLOB_ID = 56¶
- ABS_MT_DISTANCE = 59¶
- ABS_MT_ORIENTATION = 52¶
- ABS_MT_POSITION_X = 53¶
- ABS_MT_POSITION_Y = 54¶
- ABS_MT_PRESSURE = 58¶
- ABS_MT_SLOT = 47¶
- ABS_MT_TOOL_TYPE = 55¶
- ABS_MT_TOOL_X = 60¶
- ABS_MT_TOOL_Y = 61¶
- ABS_MT_TOUCH_MAJOR = 48¶
- ABS_MT_TOUCH_MINOR = 49¶
- ABS_MT_TRACKING_ID = 57¶
- ABS_MT_WIDTH_MAJOR = 50¶
- ABS_MT_WIDTH_MINOR = 51¶
- ABS_PRESSURE = 24¶
- ABS_PROFILE = 33¶
- ABS_RESERVED = 46¶
- ABS_RUDDER = 7¶
- ABS_RX = 3¶
- ABS_RY = 4¶
- ABS_RZ = 5¶
- ABS_SND_PROFILE = 34¶
- ABS_THROTTLE = 6¶
- ABS_TILT_X = 26¶
- ABS_TILT_Y = 27¶
- ABS_TOOL_WIDTH = 28¶
- ABS_VOLUME = 32¶
- ABS_WHEEL = 8¶
- ABS_X = 0¶
- ABS_Y = 1¶
- ABS_Z = 2¶
- class devinput.event_types.EventType(*values)¶
Bases:
IntEnumEvent types (EV)
- EV_ABS = 3¶
- EV_FF = 21¶
- EV_FF_STATUS = 23¶
- EV_KEY = 1¶
- EV_LED = 17¶
- EV_MSC = 4¶
- EV_PWR = 22¶
- EV_REL = 2¶
- EV_REP = 20¶
- EV_SND = 18¶
- EV_SW = 5¶
- EV_SYN = 0¶
- class devinput.event_types.KeyEvent(*values)¶
Bases:
IntEnumKey and button events (KEY)
- BTN_0 = 256¶
- BTN_1 = 257¶
- BTN_2 = 258¶
- BTN_3 = 259¶
- BTN_4 = 260¶
- BTN_5 = 261¶
- BTN_6 = 262¶
- BTN_7 = 263¶
- BTN_8 = 264¶
- BTN_9 = 265¶
- BTN_BACK = 278¶
- BTN_BASE = 294¶
- BTN_BASE2 = 295¶
- BTN_BASE3 = 296¶
- BTN_BASE4 = 297¶
- BTN_BASE5 = 298¶
- BTN_BASE6 = 299¶
- BTN_C = 306¶
- BTN_DEAD = 303¶
- BTN_DIGI = 320¶
- BTN_DPAD_DOWN = 545¶
- BTN_DPAD_LEFT = 546¶
- BTN_DPAD_RIGHT = 547¶
- BTN_DPAD_UP = 544¶
- BTN_EAST = 305¶
- BTN_EXTRA = 276¶
- BTN_FORWARD = 277¶
- BTN_GAMEPAD = 304¶
- BTN_GEAR_DOWN = 336¶
- BTN_GEAR_UP = 337¶
- BTN_GRIPL = 548¶
- BTN_GRIPL2 = 550¶
- BTN_GRIPR = 549¶
- BTN_GRIPR2 = 551¶
- BTN_JOYSTICK = 288¶
- BTN_LEFT = 272¶
- BTN_MIDDLE = 274¶
- BTN_MISC = 256¶
- BTN_MODE = 316¶
- BTN_MOUSE = 272¶
- BTN_NORTH = 307¶
- BTN_PINKIE = 293¶
- BTN_RIGHT = 273¶
- BTN_SELECT = 314¶
- BTN_SIDE = 275¶
- BTN_SOUTH = 304¶
- BTN_START = 315¶
- BTN_STYLUS = 331¶
- BTN_STYLUS2 = 332¶
- BTN_STYLUS3 = 329¶
- BTN_TASK = 279¶
- BTN_THUMB = 289¶
- BTN_THUMB2 = 290¶
- BTN_THUMBL = 317¶
- BTN_THUMBR = 318¶
- BTN_TL = 310¶
- BTN_TL2 = 312¶
- BTN_TOOL_AIRBRUSH = 324¶
- BTN_TOOL_BRUSH = 322¶
- BTN_TOOL_DOUBLETAP = 333¶
- BTN_TOOL_FINGER = 325¶
- BTN_TOOL_LENS = 327¶
- BTN_TOOL_MOUSE = 326¶
- BTN_TOOL_PEN = 320¶
- BTN_TOOL_PENCIL = 323¶
- BTN_TOOL_QUADTAP = 335¶
- BTN_TOOL_QUINTTAP = 328¶
- BTN_TOOL_RUBBER = 321¶
- BTN_TOOL_TRIPLETAP = 334¶
- BTN_TOP = 291¶
- BTN_TOP2 = 292¶
- BTN_TOUCH = 330¶
- BTN_TR = 311¶
- BTN_TR2 = 313¶
- BTN_TRIGGER = 288¶
- BTN_TRIGGER_HAPPY = 704¶
- BTN_TRIGGER_HAPPY1 = 704¶
- BTN_TRIGGER_HAPPY10 = 713¶
- BTN_TRIGGER_HAPPY11 = 714¶
- BTN_TRIGGER_HAPPY12 = 715¶
- BTN_TRIGGER_HAPPY13 = 716¶
- BTN_TRIGGER_HAPPY14 = 717¶
- BTN_TRIGGER_HAPPY15 = 718¶
- BTN_TRIGGER_HAPPY16 = 719¶
- BTN_TRIGGER_HAPPY17 = 720¶
- BTN_TRIGGER_HAPPY18 = 721¶
- BTN_TRIGGER_HAPPY19 = 722¶
- BTN_TRIGGER_HAPPY2 = 705¶
- BTN_TRIGGER_HAPPY20 = 723¶
- BTN_TRIGGER_HAPPY21 = 724¶
- BTN_TRIGGER_HAPPY22 = 725¶
- BTN_TRIGGER_HAPPY23 = 726¶
- BTN_TRIGGER_HAPPY24 = 727¶
- BTN_TRIGGER_HAPPY25 = 728¶
- BTN_TRIGGER_HAPPY26 = 729¶
- BTN_TRIGGER_HAPPY27 = 730¶
- BTN_TRIGGER_HAPPY28 = 731¶
- BTN_TRIGGER_HAPPY29 = 732¶
- BTN_TRIGGER_HAPPY3 = 706¶
- BTN_TRIGGER_HAPPY30 = 733¶
- BTN_TRIGGER_HAPPY31 = 734¶
- BTN_TRIGGER_HAPPY32 = 735¶
- BTN_TRIGGER_HAPPY33 = 736¶
- BTN_TRIGGER_HAPPY34 = 737¶
- BTN_TRIGGER_HAPPY35 = 738¶
- BTN_TRIGGER_HAPPY36 = 739¶
- BTN_TRIGGER_HAPPY37 = 740¶
- BTN_TRIGGER_HAPPY38 = 741¶
- BTN_TRIGGER_HAPPY39 = 742¶
- BTN_TRIGGER_HAPPY4 = 707¶
- BTN_TRIGGER_HAPPY40 = 743¶
- BTN_TRIGGER_HAPPY5 = 708¶
- BTN_TRIGGER_HAPPY6 = 709¶
- BTN_TRIGGER_HAPPY7 = 710¶
- BTN_TRIGGER_HAPPY8 = 711¶
- BTN_TRIGGER_HAPPY9 = 712¶
- BTN_WEST = 308¶
- BTN_WHEEL = 336¶
- BTN_Z = 309¶
- KEY_0 = 11¶
- KEY_1 = 2¶
- KEY_102ND = 86¶
- KEY_10CHANNELSDOWN = 441¶
- KEY_10CHANNELSUP = 440¶
- KEY_2 = 3¶
- KEY_3 = 4¶
- KEY_3D_MODE = 623¶
- KEY_4 = 5¶
- KEY_5 = 6¶
- KEY_6 = 7¶
- KEY_7 = 8¶
- KEY_8 = 9¶
- KEY_9 = 10¶
- KEY_A = 30¶
- KEY_AB = 406¶
- KEY_ACCESSIBILITY = 590¶
- KEY_ADDRESSBOOK = 429¶
- KEY_AGAIN = 129¶
- KEY_ALL_APPLICATIONS = 204¶
- KEY_ALS_TOGGLE = 560¶
- KEY_ALTERASE = 222¶
- KEY_ANGLE = 371¶
- KEY_APOSTROPHE = 40¶
- KEY_APPSELECT = 580¶
- KEY_ARCHIVE = 361¶
- KEY_ASPECT_RATIO = 375¶
- KEY_ASSISTANT = 583¶
- KEY_ATTENDANT_OFF = 540¶
- KEY_ATTENDANT_ON = 539¶
- KEY_ATTENDANT_TOGGLE = 541¶
- KEY_AUDIO = 392¶
- KEY_AUDIO_DESC = 622¶
- KEY_AUTOPILOT_ENGAGE_TOGGLE = 637¶
- KEY_AUX = 390¶
- KEY_B = 48¶
- KEY_BACK = 158¶
- KEY_BACKSLASH = 43¶
- KEY_BACKSPACE = 14¶
- KEY_BASSBOOST = 209¶
- KEY_BATTERY = 236¶
- KEY_BLUE = 401¶
- KEY_BLUETOOTH = 237¶
- KEY_BOOKMARKS = 156¶
- KEY_BREAK = 411¶
- KEY_BRIGHTNESSDOWN = 224¶
- KEY_BRIGHTNESSUP = 225¶
- KEY_BRIGHTNESS_AUTO = 244¶
- KEY_BRIGHTNESS_CYCLE = 243¶
- KEY_BRIGHTNESS_MAX = 593¶
- KEY_BRIGHTNESS_MENU = 649¶
- KEY_BRIGHTNESS_MIN = 592¶
- KEY_BRL_DOT1 = 497¶
- KEY_BRL_DOT10 = 506¶
- KEY_BRL_DOT2 = 498¶
- KEY_BRL_DOT3 = 499¶
- KEY_BRL_DOT4 = 500¶
- KEY_BRL_DOT5 = 501¶
- KEY_BRL_DOT6 = 502¶
- KEY_BRL_DOT7 = 503¶
- KEY_BRL_DOT8 = 504¶
- KEY_BRL_DOT9 = 505¶
- KEY_BUTTONCONFIG = 576¶
- KEY_C = 46¶
- KEY_CALC = 140¶
- KEY_CALENDAR = 397¶
- KEY_CAMERA = 212¶
- KEY_CAMERA_ACCESS_DISABLE = 588¶
- KEY_CAMERA_ACCESS_ENABLE = 587¶
- KEY_CAMERA_ACCESS_TOGGLE = 589¶
- KEY_CAMERA_DOWN = 536¶
- KEY_CAMERA_FOCUS = 528¶
- KEY_CAMERA_LEFT = 537¶
- KEY_CAMERA_RIGHT = 538¶
- KEY_CAMERA_UP = 535¶
- KEY_CAMERA_ZOOMIN = 533¶
- KEY_CAMERA_ZOOMOUT = 534¶
- KEY_CANCEL = 223¶
- KEY_CAPSLOCK = 58¶
- KEY_CD = 383¶
- KEY_CHANNEL = 363¶
- KEY_CHANNELDOWN = 403¶
- KEY_CHANNELUP = 402¶
- KEY_CHAT = 216¶
- KEY_CLEAR = 355¶
- KEY_CLEARVU_SONAR = 646¶
- KEY_CLOSE = 206¶
- KEY_CLOSECD = 160¶
- KEY_COFFEE = 152¶
- KEY_COMMA = 51¶
- KEY_COMPOSE = 127¶
- KEY_COMPUTER = 157¶
- KEY_CONFIG = 171¶
- KEY_CONNECT = 218¶
- KEY_CONTEXT_MENU = 438¶
- KEY_CONTROLPANEL = 579¶
- KEY_COPY = 133¶
- KEY_CUT = 137¶
- KEY_CYCLEWINDOWS = 154¶
- KEY_D = 32¶
- KEY_DATA = 631¶
- KEY_DATABASE = 426¶
- KEY_DELETE = 111¶
- KEY_DELETEFILE = 146¶
- KEY_DEL_EOL = 448¶
- KEY_DEL_EOS = 449¶
- KEY_DEL_LINE = 451¶
- KEY_DICTATE = 586¶
- KEY_DIGITS = 413¶
- KEY_DIRECTORY = 394¶
- KEY_DISPLAYTOGGLE = 431¶
- KEY_DISPLAY_OFF = 245¶
- KEY_DOCUMENTS = 235¶
- KEY_DOLLAR = 434¶
- KEY_DOT = 52¶
- KEY_DOWN = 108¶
- KEY_DO_NOT_DISTURB = 591¶
- KEY_DUAL_RANGE_RADAR = 643¶
- KEY_DVD = 389¶
- KEY_E = 18¶
- KEY_EDIT = 176¶
- KEY_EDITOR = 422¶
- KEY_EJECTCD = 161¶
- KEY_EJECTCLOSECD = 162¶
- KEY_EMAIL = 215¶
- KEY_EMOJI_PICKER = 585¶
- KEY_END = 107¶
- KEY_ENTER = 28¶
- KEY_EPG = 365¶
- KEY_EPRIVACY_SCREEN_OFF = 595¶
- KEY_EPRIVACY_SCREEN_ON = 594¶
- KEY_EQUAL = 13¶
- KEY_ESC = 1¶
- KEY_EURO = 435¶
- KEY_EXIT = 174¶
- KEY_F = 33¶
- KEY_F1 = 59¶
- KEY_F10 = 68¶
- KEY_F11 = 87¶
- KEY_F12 = 88¶
- KEY_F13 = 183¶
- KEY_F14 = 184¶
- KEY_F15 = 185¶
- KEY_F16 = 186¶
- KEY_F17 = 187¶
- KEY_F18 = 188¶
- KEY_F19 = 189¶
- KEY_F2 = 60¶
- KEY_F20 = 190¶
- KEY_F21 = 191¶
- KEY_F22 = 192¶
- KEY_F23 = 193¶
- KEY_F24 = 194¶
- KEY_F3 = 61¶
- KEY_F4 = 62¶
- KEY_F5 = 63¶
- KEY_F6 = 64¶
- KEY_F7 = 65¶
- KEY_F8 = 66¶
- KEY_F9 = 67¶
- KEY_FASTFORWARD = 208¶
- KEY_FASTREVERSE = 629¶
- KEY_FAVORITES = 364¶
- KEY_FILE = 144¶
- KEY_FINANCE = 219¶
- KEY_FIND = 136¶
- KEY_FIRST = 404¶
- KEY_FISHING_CHART = 641¶
- KEY_FN = 464¶
- KEY_FN_1 = 478¶
- KEY_FN_2 = 479¶
- KEY_FN_B = 484¶
- KEY_FN_D = 480¶
- KEY_FN_E = 481¶
- KEY_FN_ESC = 465¶
- KEY_FN_F = 482¶
- KEY_FN_F1 = 466¶
- KEY_FN_F10 = 475¶
- KEY_FN_F11 = 476¶
- KEY_FN_F12 = 477¶
- KEY_FN_F2 = 467¶
- KEY_FN_F3 = 468¶
- KEY_FN_F4 = 469¶
- KEY_FN_F5 = 470¶
- KEY_FN_F6 = 471¶
- KEY_FN_F7 = 472¶
- KEY_FN_F8 = 473¶
- KEY_FN_F9 = 474¶
- KEY_FN_RIGHT_SHIFT = 485¶
- KEY_FN_S = 483¶
- KEY_FORWARD = 159¶
- KEY_FORWARDMAIL = 233¶
- KEY_FRAMEBACK = 436¶
- KEY_FRAMEFORWARD = 437¶
- KEY_FRONT = 132¶
- KEY_FULL_SCREEN = 372¶
- KEY_G = 34¶
- KEY_GAMES = 417¶
- KEY_GOTO = 354¶
- KEY_GRAPHICSEDITOR = 424¶
- KEY_GRAVE = 41¶
- KEY_GREEN = 399¶
- KEY_H = 35¶
- KEY_HANGEUL = 122¶
- KEY_HANGUP_PHONE = 446¶
- KEY_HANJA = 123¶
- KEY_HELP = 138¶
- KEY_HENKAN = 92¶
- KEY_HIRAGANA = 91¶
- KEY_HOME = 102¶
- KEY_HOMEPAGE = 172¶
- KEY_HP = 211¶
- KEY_I = 23¶
- KEY_IMAGES = 442¶
- KEY_INFO = 358¶
- KEY_INSERT = 110¶
- KEY_INS_LINE = 450¶
- KEY_ISO = 170¶
- KEY_J = 36¶
- KEY_JOURNAL = 578¶
- KEY_K = 37¶
- KEY_KATAKANA = 90¶
- KEY_KATAKANAHIRAGANA = 93¶
- KEY_KBDILLUMDOWN = 229¶
- KEY_KBDILLUMTOGGLE = 228¶
- KEY_KBDILLUMUP = 230¶
- KEY_KBDINPUTASSIST_ACCEPT = 612¶
- KEY_KBDINPUTASSIST_CANCEL = 613¶
- KEY_KBDINPUTASSIST_NEXT = 609¶
- KEY_KBDINPUTASSIST_NEXTGROUP = 611¶
- KEY_KBDINPUTASSIST_PREV = 608¶
- KEY_KBDINPUTASSIST_PREVGROUP = 610¶
- KEY_KBD_LAYOUT_NEXT = 584¶
- KEY_KBD_LCD_MENU1 = 696¶
- KEY_KBD_LCD_MENU2 = 697¶
- KEY_KBD_LCD_MENU3 = 698¶
- KEY_KBD_LCD_MENU4 = 699¶
- KEY_KBD_LCD_MENU5 = 700¶
- KEY_KEYBOARD = 374¶
- KEY_KP0 = 82¶
- KEY_KP1 = 79¶
- KEY_KP2 = 80¶
- KEY_KP3 = 81¶
- KEY_KP4 = 75¶
- KEY_KP5 = 76¶
- KEY_KP6 = 77¶
- KEY_KP7 = 71¶
- KEY_KP8 = 72¶
- KEY_KP9 = 73¶
- KEY_KPASTERISK = 55¶
- KEY_KPCOMMA = 121¶
- KEY_KPDOT = 83¶
- KEY_KPENTER = 96¶
- KEY_KPEQUAL = 117¶
- KEY_KPJPCOMMA = 95¶
- KEY_KPLEFTPAREN = 179¶
- KEY_KPMINUS = 74¶
- KEY_KPPLUS = 78¶
- KEY_KPPLUSMINUS = 118¶
- KEY_KPRIGHTPAREN = 180¶
- KEY_KPSLASH = 98¶
- KEY_L = 38¶
- KEY_LANGUAGE = 368¶
- KEY_LAST = 405¶
- KEY_LEFT = 105¶
- KEY_LEFTALT = 56¶
- KEY_LEFTBRACE = 26¶
- KEY_LEFTCTRL = 29¶
- KEY_LEFTMETA = 125¶
- KEY_LEFTSHIFT = 42¶
- KEY_LEFT_DOWN = 617¶
- KEY_LEFT_UP = 616¶
- KEY_LIGHTS_TOGGLE = 542¶
- KEY_LINEFEED = 101¶
- KEY_LINK_PHONE = 447¶
- KEY_LIST = 395¶
- KEY_LOGOFF = 433¶
- KEY_M = 50¶
- KEY_MACRO = 112¶
- KEY_MACRO1 = 656¶
- KEY_MACRO10 = 665¶
- KEY_MACRO11 = 666¶
- KEY_MACRO12 = 667¶
- KEY_MACRO13 = 668¶
- KEY_MACRO14 = 669¶
- KEY_MACRO15 = 670¶
- KEY_MACRO16 = 671¶
- KEY_MACRO17 = 672¶
- KEY_MACRO18 = 673¶
- KEY_MACRO19 = 674¶
- KEY_MACRO2 = 657¶
- KEY_MACRO20 = 675¶
- KEY_MACRO21 = 676¶
- KEY_MACRO22 = 677¶
- KEY_MACRO23 = 678¶
- KEY_MACRO24 = 679¶
- KEY_MACRO25 = 680¶
- KEY_MACRO26 = 681¶
- KEY_MACRO27 = 682¶
- KEY_MACRO28 = 683¶
- KEY_MACRO29 = 684¶
- KEY_MACRO3 = 658¶
- KEY_MACRO30 = 685¶
- KEY_MACRO4 = 659¶
- KEY_MACRO5 = 660¶
- KEY_MACRO6 = 661¶
- KEY_MACRO7 = 662¶
- KEY_MACRO8 = 663¶
- KEY_MACRO9 = 664¶
- KEY_MACRO_PRESET1 = 691¶
- KEY_MACRO_PRESET2 = 692¶
- KEY_MACRO_PRESET3 = 693¶
- KEY_MACRO_PRESET_CYCLE = 690¶
- KEY_MACRO_RECORD_START = 688¶
- KEY_MACRO_RECORD_STOP = 689¶
- KEY_MAIL = 155¶
- KEY_MARK_WAYPOINT = 638¶
- KEY_MEDIA = 226¶
- KEY_MEDIA_REPEAT = 439¶
- KEY_MEDIA_TOP_MENU = 619¶
- KEY_MEMO = 396¶
- KEY_MENU = 139¶
- KEY_MESSENGER = 430¶
- KEY_MHP = 367¶
- KEY_MICMUTE = 248¶
- KEY_MINUS = 12¶
- KEY_MODE = 373¶
- KEY_MOVE = 175¶
- KEY_MP3 = 391¶
- KEY_MSDOS = 151¶
- KEY_MUHENKAN = 94¶
- KEY_MUTE = 113¶
- KEY_N = 49¶
- KEY_NAV_CHART = 640¶
- KEY_NAV_INFO = 648¶
- KEY_NEW = 181¶
- KEY_NEWS = 427¶
- KEY_NEXT = 407¶
- KEY_NEXTSONG = 163¶
- KEY_NEXT_ELEMENT = 635¶
- KEY_NEXT_FAVORITE = 624¶
- KEY_NOTIFICATION_CENTER = 444¶
- KEY_NUMERIC_0 = 512¶
- KEY_NUMERIC_1 = 513¶
- KEY_NUMERIC_11 = 620¶
- KEY_NUMERIC_12 = 621¶
- KEY_NUMERIC_2 = 514¶
- KEY_NUMERIC_3 = 515¶
- KEY_NUMERIC_4 = 516¶
- KEY_NUMERIC_5 = 517¶
- KEY_NUMERIC_6 = 518¶
- KEY_NUMERIC_7 = 519¶
- KEY_NUMERIC_8 = 520¶
- KEY_NUMERIC_9 = 521¶
- KEY_NUMERIC_A = 524¶
- KEY_NUMERIC_B = 525¶
- KEY_NUMERIC_C = 526¶
- KEY_NUMERIC_D = 527¶
- KEY_NUMERIC_POUND = 523¶
- KEY_NUMERIC_STAR = 522¶
- KEY_NUMLOCK = 69¶
- KEY_O = 24¶
- KEY_OK = 352¶
- KEY_ONSCREEN_KEYBOARD = 632¶
- KEY_OPEN = 134¶
- KEY_OPTION = 357¶
- KEY_P = 25¶
- KEY_PAGEDOWN = 109¶
- KEY_PAGEUP = 104¶
- KEY_PASTE = 135¶
- KEY_PAUSE = 119¶
- KEY_PAUSECD = 201¶
- KEY_PAUSE_RECORD = 626¶
- KEY_PC = 376¶
- KEY_PERFORMANCE = 701¶
- KEY_PHONE = 169¶
- KEY_PICKUP_PHONE = 445¶
- KEY_PLAY = 207¶
- KEY_PLAYCD = 200¶
- KEY_PLAYER = 387¶
- KEY_PLAYPAUSE = 164¶
- KEY_POWER = 116¶
- KEY_POWER2 = 356¶
- KEY_PRESENTATION = 425¶
- KEY_PREVIOUS = 412¶
- KEY_PREVIOUSSONG = 165¶
- KEY_PREVIOUS_ELEMENT = 636¶
- KEY_PRINT = 210¶
- KEY_PRIVACY_SCREEN_TOGGLE = 633¶
- KEY_PROG1 = 148¶
- KEY_PROG2 = 149¶
- KEY_PROG3 = 202¶
- KEY_PROG4 = 203¶
- KEY_PROGRAM = 362¶
- KEY_PROPS = 130¶
- KEY_PVR = 366¶
- KEY_Q = 16¶
- KEY_QUESTION = 214¶
- KEY_R = 19¶
- KEY_RADAR_OVERLAY = 644¶
- KEY_RADIO = 385¶
- KEY_RECORD = 167¶
- KEY_RED = 398¶
- KEY_REDO = 182¶
- KEY_REFRESH = 173¶
- KEY_REFRESH_RATE_TOGGLE = 562¶
- KEY_REPLY = 232¶
- KEY_RESERVED = 0¶
- KEY_RESTART = 408¶
- KEY_REWIND = 168¶
- KEY_RFKILL = 247¶
- KEY_RIGHT = 106¶
- KEY_RIGHTALT = 100¶
- KEY_RIGHTBRACE = 27¶
- KEY_RIGHTCTRL = 97¶
- KEY_RIGHTMETA = 126¶
- KEY_RIGHTSHIFT = 54¶
- KEY_RIGHT_DOWN = 615¶
- KEY_RIGHT_UP = 614¶
- KEY_RO = 89¶
- KEY_ROOT_MENU = 618¶
- KEY_ROTATE_DISPLAY = 153¶
- KEY_ROTATE_LOCK_TOGGLE = 561¶
- KEY_S = 31¶
- KEY_SAT = 381¶
- KEY_SAT2 = 382¶
- KEY_SAVE = 234¶
- KEY_SCALE = 120¶
- KEY_SCREENSAVER = 581¶
- KEY_SCROLLDOWN = 178¶
- KEY_SCROLLLOCK = 70¶
- KEY_SCROLLUP = 177¶
- KEY_SEARCH = 217¶
- KEY_SELECT = 353¶
- KEY_SELECTIVE_SCREENSHOT = 634¶
- KEY_SEMICOLON = 39¶
- KEY_SEND = 231¶
- KEY_SENDFILE = 145¶
- KEY_SETUP = 141¶
- KEY_SHOP = 221¶
- KEY_SHUFFLE = 410¶
- KEY_SIDEVU_SONAR = 647¶
- KEY_SINGLE_RANGE_RADAR = 642¶
- KEY_SLASH = 53¶
- KEY_SLEEP = 142¶
- KEY_SLOW = 409¶
- KEY_SLOWREVERSE = 630¶
- KEY_SOS = 639¶
- KEY_SOUND = 213¶
- KEY_SPACE = 57¶
- KEY_SPELLCHECK = 432¶
- KEY_SPORT = 220¶
- KEY_SPREADSHEET = 423¶
- KEY_STOP = 128¶
- KEY_STOPCD = 166¶
- KEY_STOP_RECORD = 625¶
- KEY_SUBTITLE = 370¶
- KEY_SUSPEND = 205¶
- KEY_SWITCHVIDEOMODE = 227¶
- KEY_SYSRQ = 99¶
- KEY_T = 20¶
- KEY_TAB = 15¶
- KEY_TAPE = 384¶
- KEY_TASKMANAGER = 577¶
- KEY_TEEN = 414¶
- KEY_TEXT = 388¶
- KEY_TIME = 359¶
- KEY_TITLE = 369¶
- KEY_TOUCHPAD_OFF = 532¶
- KEY_TOUCHPAD_ON = 531¶
- KEY_TOUCHPAD_TOGGLE = 530¶
- KEY_TRADITIONAL_SONAR = 645¶
- KEY_TUNER = 386¶
- KEY_TV = 377¶
- KEY_TV2 = 378¶
- KEY_TWEN = 415¶
- KEY_U = 22¶
- KEY_UNDO = 131¶
- KEY_UNKNOWN = 240¶
- KEY_UNMUTE = 628¶
- KEY_UP = 103¶
- KEY_UWB = 239¶
- KEY_V = 47¶
- KEY_VCR = 379¶
- KEY_VCR2 = 380¶
- KEY_VENDOR = 360¶
- KEY_VIDEO = 393¶
- KEY_VIDEOPHONE = 416¶
- KEY_VIDEO_NEXT = 241¶
- KEY_VIDEO_PREV = 242¶
- KEY_VOD = 627¶
- KEY_VOICECOMMAND = 582¶
- KEY_VOICEMAIL = 428¶
- KEY_VOLUMEDOWN = 114¶
- KEY_VOLUMEUP = 115¶
- KEY_W = 17¶
- KEY_WAKEUP = 143¶
- KEY_WLAN = 238¶
- KEY_WORDPROCESSOR = 421¶
- KEY_WPS_BUTTON = 529¶
- KEY_WWAN = 246¶
- KEY_WWW = 150¶
- KEY_X = 45¶
- KEY_XFER = 147¶
- KEY_Y = 21¶
- KEY_YELLOW = 400¶
- KEY_YEN = 124¶
- KEY_Z = 44¶
- KEY_ZENKAKUHANKAKU = 85¶
- KEY_ZOOMIN = 418¶
- KEY_ZOOMOUT = 419¶
- KEY_ZOOMRESET = 420¶
- class devinput.event_types.LedEvent(*values)¶
Bases:
IntEnumLEDs (LED)
- LED_CAPSL = 1¶
- LED_CHARGING = 10¶
- LED_COMPOSE = 3¶
- LED_KANA = 4¶
- LED_MAIL = 9¶
- LED_MISC = 8¶
- LED_MUTE = 7¶
- LED_NUML = 0¶
- LED_SCROLLL = 2¶
- LED_SLEEP = 5¶
- LED_SUSPEND = 6¶
- class devinput.event_types.MscEvent(*values)¶
Bases:
IntEnumMisc events (MSC)
- MSC_GESTURE = 2¶
- MSC_PULSELED = 1¶
- MSC_RAW = 3¶
- MSC_SCAN = 4¶
- MSC_SERIAL = 0¶
- MSC_TIMESTAMP = 5¶
- class devinput.event_types.RelEvent(*values)¶
Bases:
IntEnumRelative axes (REL)
- REL_DIAL = 7¶
- REL_HWHEEL = 6¶
- REL_HWHEEL_HI_RES = 12¶
- REL_MISC = 9¶
- REL_RESERVED = 10¶
- REL_RX = 3¶
- REL_RY = 4¶
- REL_RZ = 5¶
- REL_WHEEL = 8¶
- REL_WHEEL_HI_RES = 11¶
- REL_X = 0¶
- REL_Y = 1¶
- REL_Z = 2¶
- class devinput.event_types.RepEvent(*values)¶
Bases:
IntEnumRepeat events (REP)
- REP_DELAY = 0¶
- REP_PERIOD = 1¶
- class devinput.event_types.SndEvent(*values)¶
Bases:
IntEnumSound events (SND)
- SND_BELL = 1¶
- SND_CLICK = 0¶
- SND_TONE = 2¶
- class devinput.event_types.SwEvent(*values)¶
Bases:
IntEnumSwitch events (SW)
- SW_CAMERA_LENS_COVER = 9¶
- SW_DOCK = 5¶
- SW_FRONT_PROXIMITY = 11¶
- SW_HEADPHONE_INSERT = 2¶
- SW_JACK_PHYSICAL_INSERT = 7¶
- SW_KEYPAD_SLIDE = 10¶
- SW_LID = 0¶
- SW_LINEIN_INSERT = 13¶
- SW_LINEOUT_INSERT = 6¶
- SW_MACHINE_COVER = 16¶
- SW_MICROPHONE_INSERT = 4¶
- SW_MUTE_DEVICE = 14¶
- SW_PEN_INSERTED = 15¶
- SW_RFKILL_ALL = 3¶
- SW_ROTATE_LOCK = 12¶
- SW_TABLET_MODE = 1¶
- SW_USB_INSERT = 17¶
- SW_VIDEOOUT_INSERT = 8¶
- class devinput.event_types.SynEvent(*values)¶
Bases:
IntEnumSynchronisation events (SYN)
- SYN_CONFIG = 1¶
- SYN_DROPPED = 3¶
- SYN_MT_REPORT = 2¶
- SYN_REPORT = 0¶
- class devinput.event_types.UnknownEvent(*values)¶
Bases:
IntEnum
devinput.ioctl module¶
- class devinput.ioctl.FfConditionEffect¶
Bases:
Structure- center¶
Structure/Union member
- deadband¶
Structure/Union member
- left_coeff¶
Structure/Union member
- left_saturation¶
Structure/Union member
- right_coeff¶
Structure/Union member
- right_saturation¶
Structure/Union member
- class devinput.ioctl.FfConstantEffect¶
Bases:
Structure- envelope¶
Structure/Union member
- level¶
Structure/Union member
- class devinput.ioctl.FfEffect¶
Bases:
Structure- direction¶
Structure/Union member
- id¶
Structure/Union member
- replay¶
Structure/Union member
- trigger¶
Structure/Union member
- type¶
Structure/Union member
- u¶
Structure/Union member
- class devinput.ioctl.FfEnvelope¶
Bases:
Structure- attack_length¶
Structure/Union member
- attack_level¶
Structure/Union member
- fade_length¶
Structure/Union member
- fade_level¶
Structure/Union member
- class devinput.ioctl.FfPeriodicEffect¶
Bases:
Structure- custom_data¶
Structure/Union member
- custom_len¶
Structure/Union member
- envelope¶
Structure/Union member
- magnitude¶
Structure/Union member
- offset¶
Structure/Union member
- period¶
Structure/Union member
- phase¶
Structure/Union member
- waveform¶
Structure/Union member
- class devinput.ioctl.FfRampEffect¶
Bases:
Structure- end_level¶
Structure/Union member
- envelope¶
Structure/Union member
- start_level¶
Structure/Union member
- class devinput.ioctl.FfReplay¶
Bases:
Structure- delay¶
Structure/Union member
- length¶
Structure/Union member
- class devinput.ioctl.FfRumbleEffect¶
Bases:
Structure- strong_magnitude¶
Structure/Union member
- weak_magnitude¶
Structure/Union member
- class devinput.ioctl.FfTrigger¶
Bases:
Structure- button¶
Structure/Union member
- interval¶
Structure/Union member
- class devinput.ioctl.InputAbsInfo¶
Bases:
Structure- flat: c_int¶
Structure/Union member
- fuzz: c_int¶
Structure/Union member
- maximum: c_int¶
Structure/Union member
- minimum: c_int¶
Structure/Union member
- resolution: c_int¶
Structure/Union member
- value: c_int¶
Structure/Union member
- class devinput.ioctl.InputId¶
Bases:
Structure- product: c_ushort¶
Structure/Union member
- vendor: c_ushort¶
Structure/Union member
- version: c_ushort¶
Structure/Union member
- class devinput.ioctl.InputKeymapEntry¶
Bases:
Structure- flags: c_ubyte¶
Structure/Union member
- index: c_ubyte¶
Structure/Union member
- keycode: c_uint¶
Structure/Union member
- len: c_ubyte¶
Structure/Union member
- scancode: c_ubyte_Array_32¶
Structure/Union member
- class devinput.ioctl.IoctlInterface(fd)¶
Bases:
object- GABS(abs_code)¶
- GBIT(ev, length)¶
- GEFFECTS()¶
- GID()¶
- GKEY(size)¶
- GKEYCODE()¶
- GKEYCODE_V2(buffer)¶
- GLED(size)¶
- GMTSLOTS(code, num_slots)¶
- GNAME(size)¶
- GPHYS(size)¶
- GPROP(size)¶
- GRAB(what)¶
- GREP()¶
- GSND(size)¶
- GSW(size)¶
- GUNIQ(size)¶
- GVERSION()¶
- REVOKE(what)¶
- RMFF(what)¶
- SABS(abs_code, absinfo)¶
- SCLOCKID(what)¶
- SFF(what)¶
- SKEYCODE(what)¶
- SKEYCODE_V2(what)¶
- SREP(what)¶
- fileno()¶
- class devinput.ioctl.RepeatSettings¶
Bases:
Structure- delay: c_uint¶
Structure/Union member
- period: c_uint¶
Structure/Union member
- devinput.ioctl.build_ev_read_request(nr, size)¶
- devinput.ioctl.build_ev_write_request(nr, size)¶
- devinput.ioctl.build_ioctl_request(dir, type, nr, size)¶
devinput.mt_tool module¶
devinput.props module¶
devinput.utils module¶
- class devinput.utils.UnknownEnumMember(enum_cls, value)¶
Bases:
object
- class devinput.utils.UnknownEnumMeta(cls, bases, classdict, *, boundary=None, _simple=False, **kwds)¶
Bases:
EnumType
- devinput.utils.read_file_safe(filename, binary=False)¶