Skip to main content

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

Project description

keyhint

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


Tests passing License: MIT Code style: black Coverage Status

Usage

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

Installation

pip install keyhint

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.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

keyhint-0.1.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file keyhint-0.1.0.tar.gz.

File metadata

  • Download URL: keyhint-0.1.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for keyhint-0.1.0.tar.gz
Algorithm Hash digest
SHA256 29652ad99d3f8034d5a639bf81171db0c21d7172fc90b52ac81dcb8c1ea5869f
MD5 d9fa695f959a751f7f5d858b01abe997
BLAKE2b-256 818b91e9627379f6ab1d517bd00e7b19d2d85b8eaa6afdd30d4e64d1baacbf6e

See more details on using hashes here.

File details

Details for the file keyhint-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: keyhint-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for keyhint-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6dae19426fafa2729581d2f87e24690eefc0c16cb05e07c7c9237dc3f6a62aa7
MD5 915ef466c414363c27d2f6be16d93bc6
BLAKE2b-256 3665c54536c315e9cb1ebe9adb1b64701e697bcd51e742796c3bb659d3e8fda0

See more details on using hashes here.

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