Mudra (मुद्रा) is Sanskrit for "gesture": a gesture with a meaning, which is what a key binding is.
mudra is keybinding search for Vyom: one keyboard-driven panel that opens instantly, with live data, a preview and a key for everything. It runs on any compositor with the layer-shell protocol (sway, Hyprland, river, niri, Wayfire, labwc…). In Vayu, the desktop it was built for, it replaces keybind-search.py's wofi popup.
#Features
- Every keybinding by what it does ("kill window", "volume"), with real key caps and chords (
Ctrl A then &). - Grouped by app, with a tab per app (sway, tmux, kitty, zed, rmpc, Vyom…).
Enterruns the binding: sway ones through swaymsg, tmux ones replayed into your most recent tmux client; anything else copies its keys.- Bindings come from a command printing JSON (Vayu's
keybind-search.py --json); without one it reads sway's own config. - Keyboard first: every action has a key, shown in the footer; the mouse works too.
- Never freezes the panel: slow commands run in the background.
#Install
#Requirements
- Vyom 0.2.5 or newer (Python 3.11+, PyGObject, GTK 4, gtk4-layer-shell, a Nerd Font)
- optional: swaymsg, tmux (running bindings)
#Install
git clone https://github.com/Theyashsawarkar/mudra ~/.local/share/vyom/plugins/mudra
vyom reload # pick it up (or log out and in)
vyom mudra # open it; run it again to close
Give it a key in your compositor, e.g. sway:
bindsym $mod+<key> exec vyom mudra
#Update and uninstall
git -C ~/.local/share/vyom/plugins/mudra pull && vyom reload # update
rm -rf ~/.local/share/vyom/plugins/mudra && vyom reload # uninstall
#Usage
Open it with vyom mudra (or your key). Type to search; the footer always shows the keys for what's selected.
| Key | Action |
|---|---|
Enter | Run the selected keybinding (sway and tmux), else copy its keys |
Ctrl+C | Copy the selected keybinding's keys |
Ctrl+1..9 | Show all, or one app's keybindings |
Esc | Close the panel |
Every Vyom panel also has Up/Down (or Ctrl+K/Ctrl+J) to move, Page Up/Page Down to jump and Tab to switch to the next tool.
#Configuration
Everything is optional, in ~/.config/vyom/config.toml under [plugin.mudra]:
| Setting | Default | What it does |
|---|---|---|
source_command | keybind-search.py --json (if installed) | Command printing the bindings as JSON |
Run vyom reload after editing.
#Troubleshooting
- Nothing opens.
vyom listshows every installed tool, and why one is skipped (a missing requirement, or a Vyom that's too old). - It opened, then something failed. Look for a
Tracebackin~/.local/state/vyom/daemon.log, and open an issue with it. - No blur or rounded corners. That's the compositor: on SwayFX, add
layer_effects "vyom" { blur enable; corner_radius 20; shadows enable }.
#The Vyom family
Each tool is its own repository, so you install only the ones you want:
| Tool | What it does | |
|---|---|---|
| dvara | द्वार, gateway | The app launcher |
| ganit | गणित, mathematics | The calculator and converter |
| smriti | स्मृति, memory | Clipboard history |
| bhava | भाव, feeling, emotion | The emoji picker |
| tarang | तरंग, wave | Wi‑Fi and the hotspot |
| setu | सेतु, bridge | Bluetooth |
| doot | दूत, messenger | Your phone, through KDE Connect |
| patra | पात्र, vessel | Docker containers |
| suchana | सूचना, notice | Notifications |
| raga | राग, melody | YouTube music and video |
| mudra (this one) | मुद्रा, gesture | Keybinding search |
| urja | ऊर्जा, energy | The battery at a glance |
| vishram | विश्राम, rest | The power menu |
| kendra | केन्द्र, centre | Quick settings |
#Contributing
Bug reports, ideas and pull requests are welcome: see CONTRIBUTING.md for the development setup and the few rules every tool follows, and CHANGELOG.md for what changed in each release. Please report security issues privately (SECURITY.md).
#License
MIT.