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.7.zip (36.6 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.7.win-amd64.zip (83.8 kB view details)

Uploaded Source

keyboard-0.9.7.win-amd64.exe (627.0 kB view details)

Uploaded Source

keyboard-0.9.7-py2.py3-none-any.whl (33.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file keyboard-0.9.7.zip.

File metadata

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

File hashes

Hashes for keyboard-0.9.7.zip
Algorithm Hash digest
SHA256 bffd5635d2f8a3ef266e25d3ff9e25bddb7c64bfa67bdeabd2b47b2b87cd08ea
MD5 6dc24a109b99374501ad57d4d8806631
BLAKE2b-256 613aa4f7d1b482a7d990862d759b212ef600b22459cb410a2bf12c48a5d99e4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.7.win-amd64.zip
Algorithm Hash digest
SHA256 12e0ba17cdc551136e44004e0e3d87056612e19e0781a2bd3c7d5d5ff777c824
MD5 c8a650f547388332f368020bba2642f2
BLAKE2b-256 93d3e8b8ed8b61d7db23255a22872244534e88b473f51649b97775dfadb1a68d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.7.win-amd64.exe
Algorithm Hash digest
SHA256 cc78564c7551970d3270aa9d3261503ea1ea6ab1420460f445d50392b15d25b7
MD5 6929a42808ee62db983ce7744d1747fc
BLAKE2b-256 c303163025bfb7c99dcd4b139ae1eac1bb4232caaa9a00d2b437b67d7a9c9ae1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bc61334977abaa7b34352f91b2c5bddcb58ea680e424f0f4a09519eddddc289a
MD5 f2f8e82582a2f5481d01615d466a2aca
BLAKE2b-256 f5adeb86c6788059482f11207dd09ecd2217b8a169d7c741718980f3b52f94a6

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