Skip to main content

A hotkey aggregator. All your hotkeys in one place.

Project description

hag

A Hotkey AGgregator.

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.

⌨️ Hotkey parsers

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

📦 Installation

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]'

📖 Usage

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

🔎 Examples

A few example uses:

  • List sxhkd hotkeys:
    hag sxhkd
    
  • Display sxhkd hotkeys in json format and format with jq:
    hag sxhkd -d json | jq
    
  • Show vim Normal and Visual mode hotkeys in rofi:
    hag vim -m Normal -m Visual | rofi -dmenu
    
  • Use rofi to select hotkey parser and show hotkeys:
    parser="$(hag -le | rofi -dmenu)" && hag "$parser" | rofi -dmenu
    
  • List your normal and visual mode neovim hotkeys in a man page:
    hag neovim -m Normal -m Visual -d roff | man -l -
    
  • Create a pdf of your sxhkd hotkeys:
    hag sxhkd -d roff | groff -T ps -m mandoc - | ps2pdf - hotkeys.pdf
    

🥳 Contributing

If you want to add support for your favourite software, feel free to open issues/PRs!

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

hag-0.4.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hag-0.4.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file hag-0.4.0.tar.gz.

File metadata

  • Download URL: hag-0.4.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Linux/6.1.12-arch1-1

File hashes

Hashes for hag-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d6c22ef9fe80d5b0263d4dd1722cfad85ee84b570420161de96fbf4eacad78ce
MD5 7e35cb163c08aed320b736d2e794f70e
BLAKE2b-256 d7d64170c8e0e8cc314c5ca4b14f007e24becec23d69628c42e1278af3ac513b

See more details on using hashes here.

File details

Details for the file hag-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: hag-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Linux/6.1.12-arch1-1

File hashes

Hashes for hag-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9fe776d5fee64893ccfe1d715e15323e98f3ae5cf81c6b90231ff4672ef59665
MD5 219cc69870d816d6fce8241e0e299e37
BLAKE2b-256 9c5237ae658529b316f3bfb328d2b3fa78b79c37afb9e9b8546dcdc80640db0c

See more details on using hashes here.

Supported by

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