Skip to main content

Hook and simulate keyboard events on Windows and Linux

Project description

Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.

Features

  • Global event hook on all keyboards (captures keys regardless of focus).

  • Listen and sends keyboard events.

  • Works with Windows and Linux (requires sudo).

  • Pure Python, no C modules to be compiled.

  • Zero dependencies. Trivial to install and deploy, just copy the files.

  • Python 2 and 3.

  • Complex hotkey support (e.g. Ctrl+Shift+M, Ctrl+Space) with controllable timeout.

  • Includes high level API (e.g. record and play, add_abbreviation).

  • Maps keys as they actually are in your layout, with full internationalization support (e.g. Ctrl+ç).

  • Events automatically captured in separate thread, doesn’t block main program.

  • Tested and documented.

  • Doesn’t break accented dead keys (I’m looking at you, pyHook).

  • Mouse support coming soon.

This program makes no attempt to hide itself, so don’t use it for keyloggers.

Usage

Install the PyPI package:

$ sudo pip install keyboard

or clone the repository (no installation required, source files are sufficient):

$ git clone https://github.com/boppreh/keyboard

Then check the API docs to see what features are available.

Example

import keyboard

# Press PAGE UP then PAGE DOWN to type "foobar".
keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar'))

keyboard.press_and_release('shift+s, space')

# Blocks until you press esc.
keyboard.wait('esc')

# Record events until 'esc' is pressed.
recorded = keyboard.record(until='esc')
# Then replay back at three times the speed.
keyboard.play(recorded, speed_factor=3)

Known limitations:

  • Events generated under Windows don’t report device id (event.device == None). #21

  • Linux doesn’t seem to report media keys. #20

  • Currently no way to suppress keys (‘catch’ events and block them). #22

  • To avoid depending on X the Linux parts reads raw device files (/dev/input/input*) but this requries root.

  • Other applications, such as some games, may register hooks that swallow all key events. In this case keyboard will be unable to report events.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

keyboard-0.9.8.zip (37.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

keyboard-0.9.8.win-amd64.zip (84.2 kB view details)

Uploaded Source

keyboard-0.9.8.win-amd64.exe (627.4 kB view details)

Uploaded Source

keyboard-0.9.8-py2.py3-none-any.whl (33.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file keyboard-0.9.8.zip.

File metadata

  • Download URL: keyboard-0.9.8.zip
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for keyboard-0.9.8.zip
Algorithm Hash digest
SHA256 bf65c5f4badd63ef5f8311d76c7375d11cfa930168f3bbe228adb512acc1389f
MD5 8ebffb859e5c6496ec251b844b0cd212
BLAKE2b-256 f4a710e5d1ac6127973e994f79603d8505969b9c13843c7c4aabbf82081b5a8c

See more details on using hashes here.

File details

Details for the file keyboard-0.9.8.win-amd64.zip.

File metadata

File hashes

Hashes for keyboard-0.9.8.win-amd64.zip
Algorithm Hash digest
SHA256 172d7617614697a6bdb39e5d2d6d7c3e2b00d9c6cfb43306e81e96b39e510f1a
MD5 5b33226375ad3c84d9a1bcbb61739425
BLAKE2b-256 0a7e75eecd5de93102bdf85ee6257356131df1eecbe7e0176289bb99e65ac668

See more details on using hashes here.

File details

Details for the file keyboard-0.9.8.win-amd64.exe.

File metadata

File hashes

Hashes for keyboard-0.9.8.win-amd64.exe
Algorithm Hash digest
SHA256 68260ae462c9d10af5be26c6277948dfbb0b92ad56d2cc703cdeb8cb442bfbe1
MD5 e3e472fd8f4acdb47a3cba6cbb46cc1d
BLAKE2b-256 69db7099ee540eb246fa6de3b0ae359c5ec89c83e48318c505ac858bc2bc4b98

See more details on using hashes here.

File details

Details for the file keyboard-0.9.8-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for keyboard-0.9.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 188d50f73e30beb53aadd60efd8440872c135e3bd7bdf725ff036869e61cbb69
MD5 0cf51a203d415e6020efebac5fc8882c
BLAKE2b-256 4c681c6a2b6c94aa80fa94a530170ee5de95b347184882651aad3bdfcce5c2b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page