hag is a hotkey aggregator, it tries its best to extract the hotkeys of your software and display them.
It does so by parsing the config files, man pages, command outputs, ... depending on the software.
Bellow is a list of implemented hotkey parsers:
- Alacritty
- Bash
- Gimp
- Inkscape
- Lf
- Mpv
- Neovim
- Qutebrowser
- Rofi
- Sioyek
- Sxhkd
- Sxiv
- Termite
- Vim
- Vimiv
- Zathura
- Zsh
hag is meant to be minimal, however some parsers require optional dependencies, which can be individually installed:
- Mpv:
python-mpv->pip install 'hag[mpv]' - Neovim:
pynvim->pip install 'hag[neovim]' - Alacritty:
pyyaml->pip install 'hag[alacritty]'
To install hag with all the parser dependencies:
pip install 'hag[all]'
If you just want to use the CLI interface, consider using pipx.
pipx install 'hag[all]'
$ hag -h
usage: hag [-h] [-lp | -ld] [-d {json,roff,text}] [-m MODE] [-v]
[{alacritty,bash,gimp,inkscape,lf,mpv,neovim,qutebrowser,rofi,sioyek,sxhkd,sxiv,termite,vim,vimiv,zathura,zsh}]
Hotkey aggregator. All your hotkeys in one place.
positional arguments:
{alacritty,bash,gimp,inkscape,lf,mpv,neovim,qutebrowser,rofi,sioyek,sxhkd,sxiv,termite,vim,vimiv,zathura,zsh}
Extract hotkeys using parser.
optional arguments:
-h, --help show this help message and exit
-lp, --list-parsers List available hotkey parsers.
-ld, --list-displays List available display methods.
-d {json,roff,text}, --display {json,roff,text}
Display method.
-m MODE, --modes MODE
Filter by mode, if supported by parser.
-v, --version Show hag version and exit.
A few example uses:
- List
sxhkdhotkeys:hag sxhkd
- Display
sxhkdhotkeys in json format and format withjq:hag sxhkd -d json | jq - Show
vimNormal and Visual mode hotkeys inrofi:hag vim -m Normal -m Visual | rofi -dmenu - Use
rofito select hotkey parser and show hotkeys:parser="$(hag -le | rofi -dmenu)" && hag "$parser" | rofi -dmenu
- List your normal and visual mode
neovimhotkeys in a man page:hag neovim -m Normal -m Visual -d roff | man -l - - Create a pdf of your
sxhkdhotkeys:hag sxhkd -d roff | groff -T ps -m mandoc - | ps2pdf - hotkeys.pdf
If you want to add support for your favourite software, feel free to open issues/PRs!