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 <#keyboard.record>`__ and `play <#keyboard.play>`__, `add_abbreviation <#keyboard.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).

  • Media keys are not hooked (neither Linux nor Windows report them as normal keys).

  • Currently no way to suppress keys.

  • Requires root on Linux.

  • 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.5.zip (35.9 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.5.win-amd64.zip (82.0 kB view details)

Uploaded Source

keyboard-0.9.5.win-amd64.exe (626.1 kB view details)

Uploaded Source

keyboard-0.9.5-py2.py3-none-any.whl (32.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file keyboard-0.9.5.zip.

File metadata

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

File hashes

Hashes for keyboard-0.9.5.zip
Algorithm Hash digest
SHA256 2cd835c7caee108d1b01dff88d29f3b074d632d6d0eb9ea2d9269a8ea6ca8387
MD5 41779db54d05d0f26139ebe40b0300de
BLAKE2b-256 29a984da99a68d52c3e35920b6f55312d82c5647df0555720a05b5846647be07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.5.win-amd64.zip
Algorithm Hash digest
SHA256 3e3d6fd374dba7d47b87ce067c5167366d73e2b523459c4fd83ec3f371141cc3
MD5 531b26d58f866ac16ad27cfbe6059dac
BLAKE2b-256 12202fd23bdcc4a5b7e2b8154549cd043440b02304934a1e05437030435ac1d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.5.win-amd64.exe
Algorithm Hash digest
SHA256 0a9191fd38481c55f824db331e324b7534cbb152c6159d0b438d06cc7178fe9b
MD5 3c91680094964224cb0753ae95096dd0
BLAKE2b-256 cea77be03de96938b7b0f1fab85b94ef74cc250ef8fcfb1469bf240eeb777a9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for keyboard-0.9.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9ab41c3ec539d8c328c230cb956aabaa2ff2924a1550507749060c9d33c22a3b
MD5 fb699213aa0485253a7c60aab3cdd853
BLAKE2b-256 017ae0e27764fa2161f4b3bb923742e7700e8c1becc0f673ef537d392a8ee401

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