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.9.zip (37.1 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.9.win-amd64.zip (84.4 kB view details)

Uploaded Source

keyboard-0.9.9.win-amd64.exe (627.5 kB view details)

Uploaded Source

keyboard-0.9.9-py2.py3-none-any.whl (33.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file keyboard-0.9.9.zip.

File metadata

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

File hashes

Hashes for keyboard-0.9.9.zip
Algorithm Hash digest
SHA256 3e66c65f95503d2099d56700dc477e714799b2bd89d7c094ededb1a0697fe1c4
MD5 4bcea8b07326f1eda7d6699cf145d425
BLAKE2b-256 9b7166280de3dae878f5db58f8c3b4771392bfd6e791bfcac0113b2b0bbc2336

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.9.win-amd64.zip
Algorithm Hash digest
SHA256 138aea5aed6f5e9ab894b06f63c217297e566710f16a7bd7ccb09ae76e6cd45d
MD5 e0291bead03f5b85c3f41bcd18f245cb
BLAKE2b-256 e44cebe939669fef295da7e2643ea1927550076745926ac07b7331e22c0e3ef2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.9.win-amd64.exe
Algorithm Hash digest
SHA256 f96c9a026a8c0cdbb7f49892312ae2934bf2ad27a91d237daacdd2d00c5e3723
MD5 2cae4e04d316d0516139c199bc4f92f1
BLAKE2b-256 eca90dab720380ec6021783e09e5bddc5e59dc5318475c69b758899fcd31975f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f80e33726af6aa1501506cba7b2a4227edf4a63a0b8a2512ba18284c3ba34a8e
MD5 f3e69581e8e5e8fd8e7c0f99a0752487
BLAKE2b-256 b87a6ee0e4d26121f766f3d68b2a6f1652f3680753c2988ffeb44d90727a9696

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