Skip to main content

Display context-sensitive keyboard shortcuts or other hints on Linux and Windows

Project description


Display context-sensitive keyboard shortcuts or other hints on Linux and Windows.

Tests passing License: MIT Code style: black Coverage Status


The tool can be started by python -m keyhint or simply keyhint. But as the keyhint displays hints based on the currently active window, you probably want to configure a global hotkey to trigger it on demand.

Based on the process name and window title of the active window, different sets of hints are displayed.

Screenshots of some hints:

General Firefox Shortcuts


pip install keyhint


Look & Behavior

  • You can configure colors, font and closing behavior by modifying the file


  • You can also configure the hints to show for different applications by modifying or adding section in the file

  • The hints to display are selected by going through all sections from top to bottom and comparing the value of regex_process with the process name of the active window and the value of regex_title with the title of the active window. The first section, where both values are found, gets displayed.

  • Both of those regex_ values are interpreted as case insensitive regular expressions.)


  • The <CONFIG_PATH> can be different from system to system. On Linux it's usually ~/.config, on Windows it should be C:\Users\<YOURNAME>\AppData\Roaming.

  • You can reset configuration or hints to the shipped version by deleting the yaml files from the configuration folder.


Differentiate Websites:

  • For showing different browser-hints depending on the current website, you might want to use a browser extension like "Add URL To Window Title" and then configure the sections in hints.yaml to look for the URL in the window title.

Differentiate Multi Platform:

  • Sometimes the hints you want to show are the same for e.g. Linux and Windows. In that case, you might want to set e.g. regex_process: firefox.* to match with Firefox (Linux) as well as with Firefox.exe (Windows).

  • If you want to show different hints for the same tool depending on the platform, use two sections, one with regex_process: firefox(?!\.exe) (Linux) and one with regex_process: firefox\.exe (Windows).


I'm happy about any contribution! Especially I would appreciate submissions to improve the shipped hints. (The current set are the hints I personally use).

Design Principles

  • Multi-Platform
    Should work on Linux, Mac (not yet achieved) & Windows.
  • Don't run as service
    It shouldn't consume resources in the background, even if this leads to slower start-up time.
  • No network connection
    Everything should run locally without any network communication.
  • Dependencies
    The fewer dependencies, the better.
  • Chain of Responsibility as main design pattern
    See description on
  • Multi-Monitors
    Supports setups with two or more displays



Project details

Download files

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

Files for keyhint, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size keyhint-0.1.0-py3-none-any.whl (16.0 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size keyhint-0.1.0.tar.gz (15.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page