Cheat-sheets for shortcuts & commands at your fingertips.
Project description
KeyHint
Utility to display keyboard shortcuts or other hints based on the active window on Linux. (GTK 4.6+ required!)
Prerequisites
- Python 3.11+
- GTK 4.6+ (shipped since Ubuntu 22.04) + dev packages:
sudo apt-get install \ libgirepository1.0-dev \ libcairo2-dev \ python3-gi \ gobject-introspection \ libgtk-4-dev
Installation
pipx install keyhint
(recommended, requires pipx)- or
pip install keyhint
Usage
- Configure a global hotkey (e.g.
Ctrl + F1
) via your system settings to launchkeyhint
. - If KeyHint is launched via hotkey, it detects the current active application and shows the appropriate hints.
CLI Options
Application Options:
-c, --cheatsheet=SHEET-ID Show cheatsheet with this ID on startup
-d, --default-cheatsheet=SHEET-ID Cheatsheet to show in case no cheatsheet is found for active application
-f, --no-fullscreen Launch window in normal window state instead of fullscreen mode
-s, --no-section-sort Do not sort sections by size, keep order from config toml file
-o, --orientation=horizontal|vertical Orientation and scroll direction. Default: 'vertical'
-v, --verbose Verbose log output for debugging
Configuration
- The config directory is
~/.config/keyhint/
. - To customize existing cheatsheets, copy
the corresponding .toml-file
into the config directory. Make your changes in a text editor. As long as you don't
change the
id
it will overwrite the defaults. - To create new cheatsheets, I suggest you also start with
one of the existing .toml-file:
- Place it in the config directory and give it a good file name.
- Change the value
id
to something unique. - Adjust
regex_process
andregex_title
so it will be selected based on the active window. (See Tips) - Add the
shortcuts
&label
to asection
. - If you think your cheatsheet might be useful for others, please consider opening a pull request or an issue.
- You can always reset a configuration to the shipped version by deleting the
.toml
files from the config folder. - You can include shortcuts from other cheatsheets add
include = ["<Cheatsheet ID>"]
- You can hide a cheatsheet by add
hidden = true
in the top block (same level asid
andtitle
).
Tips
Cheatsheet selection:
- The cheatsheet to be displayed on startup are selected by comparing the value of
regex_process
with the wm_class of the active window and the value ofregex_title
with the title of the active window. - The potential cheatsheets are processed alphabetically by filename, the first file that matches both wm_class and title are getting displayed.
- Both of
regex_
values are interpreted as case in-sensitive regular expressions. - Check "Debug Info" in the application menu to get insights about the active window and the selected cheatsheet file.
Available cheatsheets:
- Check the included toml-files to see which applications are available by default.
- Feel free submit additional
toml-files
for further applications.
Differentiate cheatsheets per website:
- For showing different browser-cheatsheets 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
<cheatsheet>.toml
to look for the URL in the window title.
KeyHint's shortcuts:
Ctrl+F
: Start filteringCtrl+S
: Focus sheet selection dropdown (pressEnter
to open it)Esc
: Exit KeyHint→
,↓
,l
ork
: scroll forward←
,↑
,h
orj
: scroll backwardPageDown
: scroll page forwardPageUP
: scroll page backward
Contribute
I'm happy about any contribution! Especially I would appreciate submissions to improve the shipped cheatsheets. (The current set are the cheatsheets I personally use).
Design Principles
- 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. - 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.
Source Distribution
keyhint-0.4.1.tar.gz
(653.3 kB
view details)
Built Distribution
keyhint-0.4.1-py3-none-any.whl
(654.1 kB
view details)
File details
Details for the file keyhint-0.4.1.tar.gz
.
File metadata
- Download URL: keyhint-0.4.1.tar.gz
- Upload date:
- Size: 653.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b395f53da00661152da3145218ccd508ad53d462c1667a2a30848b7847bb789 |
|
MD5 | 1130d044f93c7a8641b6061f58773bfb |
|
BLAKE2b-256 | bf0e33fd82da9115ea0e4bed48f8b86a5e6e07116342dcf590b996838b768c65 |
File details
Details for the file keyhint-0.4.1-py3-none-any.whl
.
File metadata
- Download URL: keyhint-0.4.1-py3-none-any.whl
- Upload date:
- Size: 654.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd99d50304aa367c38d18a04fb2657600d7111cd5081b8ed5d13d9020ee44f9a |
|
MD5 | 536520b0b64581ba6b05392260522919 |
|
BLAKE2b-256 | 80ce21c12d4ca0d7dd776f001ed933799a9c231ac4d2c5d0d41479f7a8e206b8 |