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).

  • Linux doesn’t seem to report media keys.

  • Currently no way to suppress keys.

  • 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.6.zip (36.5 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.6.win-amd64.zip (83.6 kB view details)

Uploaded Source

keyboard-0.9.6.win-amd64.exe (626.7 kB view details)

Uploaded Source

keyboard-0.9.6-py2.py3-none-any.whl (33.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file keyboard-0.9.6.zip.

File metadata

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

File hashes

Hashes for keyboard-0.9.6.zip
Algorithm Hash digest
SHA256 04e2069e536f01818de13e9c2fe7deb9e31edfc74021c395a431ecc4c3017a5b
MD5 1399d044f94feb371b1b0572a0f09246
BLAKE2b-256 c31f323b730027bc4787df868bdafc051051b4f1f21ae9873f3a9a4d21f8c900

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.6.win-amd64.zip
Algorithm Hash digest
SHA256 12a59e6f3e19027fe510e9ddb6ea80c8e36d190585c671576ccc917b8babec55
MD5 4e08e88bbfb87d999ae43be5225530f1
BLAKE2b-256 6426ca72567b63abebfd051058064ec366ee7af5edfa501a44e216297d484760

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.6.win-amd64.exe
Algorithm Hash digest
SHA256 5edecc5a19766068ad46699f02bbf3c7861ca4d98ed6a9c7fbde6784acdb62bb
MD5 c1a4787da8e4dfb0ec998c3b03954ea9
BLAKE2b-256 76e088c0d0724c68e8e90cee43c3d6d8034e3058bdedeb20c1e9f40f4cff8e3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6e575314b4029428f58ea6d293d7bc8d99a7c363131315257210a245658500a3
MD5 96440b50a3ade93958994409227b7850
BLAKE2b-256 dccdf7e059646c02b8b26b301ed1d3276e315ebef5b7725998f341a4ea11e7ac

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