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.
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:
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 ofregex_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 beC:\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 withFirefox
(Linux) as well as withFirefox.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 withregex_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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.