Skip to main content

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

Project description

keyhint

Display keyboard shortcuts or other hints based on the process name and window title of the active window. (Linux/Windows)


Tests passing License: MIT Code style: black Coverage Status

Usage

  • Install: pip install keyhint
  • Execute: keyhint
  • Tip: Configure a global hotkey to start keyhint on demand!

Keyhint showing shortcuts for VS Code:

General Firefox Shortcuts

Configuration

Look & Behavior

  • You can configure colors, font and closing behavior by modifying the file
    <CONFIG_PATH>/keyhint/config.yaml

Hints

  • You can also configure the hints to show for different applications by modifying or adding section in the file
    <CONFIG_PATH>/keyhint/hints.yaml

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

Notes

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

Tips

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

Contribute

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 refactoring.guru
  • Multi-Monitors
    Supports setups with two or more displays

Certification

WOMM

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

keyhint-0.1.3.tar.gz (15.0 kB view hashes)

Uploaded Source

Built Distribution

keyhint-0.1.3-py3-none-any.whl (16.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page