Omahub
← All plugins
H

Keybinds

by harbefas

Searchable keybinding reference for Hyprland and the terminal tools you use

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
3d8e392
Scanned
1 month ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
3d8e392
Reviewed
1 month ago

The plugin is a keybinding reference that reads live data from Hyprland and Neovim, plus bundled JSON tables. It performs no destructive actions, writes no files outside its own directory, and sanitizes all displayed strings to prevent markup injection. The only external command execution is a bounded headless Neovim dump with a fixed Lua chunk, which is safe.

  • The nvim-keymap-dump script passes a Lua chunk to nvim via the command line; if that chunk were ever constructed from untrusted input it could become an injection vector, but it is currently a fixed internal string.
  • The plugin reads user config files (bindings.lua, bindings.conf, herdr config) but only to detect keybind configuration and overrides; no data is exfiltrated.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/harbefas/omarchy-keybinds --enable
Productivity #Hyprland #bar #quickshell

Omarchy Keybinds

Native Omarchy keybinding reference for the tools you actually use. One tab per app, opening on the tab matching whatever window was focused, with free-text search across all of them.

Two surfaces, sharing one service so the binds are read once:

  • a bar widget — click the icon for a compact keys-and-actions popup you can still tab through and search
  • a full overlay — adds the sections column and the rest of the keys, reached from the popup with Enter, the Full view button, or a right-click on the bar icon

A hardcoded list of keybindings is a second copy of a fact the config already knows, and second copies drift. The tabs that can be read live are read live, straight from the compositor or a headless dump, never a table someone has to remember to update.

Sources

Tab Source
Hyprland live — hyprctl binds -j, grouped by submap
Neovim live — headless dump of vim.api.nvim_get_keymap(), loaded in the background
Herdr bundled defaults + live overrides from ~/.config/herdr/config.toml
Tridactyl bundled (config lives in browser sync storage, no local file to read)
Spotify (spotify_player) bundled
Lazygit bundled
Yazi bundled (defaults are compiled into the binary)
Glow bundled
Tuicr bundled

Bundled tables are hand-copied from each tool's documented defaults and live in data/*.json, read by the plugin itself. Nothing outside Hyprland, Quickshell, and an optional nvim is involved.

Reading Hyprland through hyprctl rather than parsing ~/.config/hypr/*.conf means binds pulled in through any include show up too, along with the submap each belongs to.

Tabs only appear for tools you actually have: each bundled table names the binaries it belongs to, and one which at startup decides. Hyprland and Neovim name none and always show.

Keys

Key Action
h / l, ← / →, Tab previous / next tab
j / k, ↑ / ↓ move selection
Ctrl+d / Ctrl+u half page down / up (overlay)
gg / G top / bottom
/ search the active tab
w which-key narrowing: type the chord to filter by it (overlay)
@name jump to a tab by name or alias, e.g. @vim scroll (overlay)
Enter, Full view button open the full overlay (popup)
Esc leave search or which-key, then close
q close

Both surfaces use the same modal scheme as the terminal build: normal keys navigate and / opens search, so h/j/k/l stay reachable.

Search matches multiple words in any order, as substrings or fuzzily, so "tab next", "next tab", and "nxt tb" all find "Next tab".

Install

omarchy plugin add https://github.com/harbefas/omarchy-keybinds
omarchy bar put harbefas.keybinds --section right
omarchy restart shell

Install without --enable and let bar put do the enabling. Passing --enable first registers the plugin on its own, and bar put then reports success while leaving it off the bar. If that already happened, remove the plugin's entry from plugins[] in ~/.config/omarchy/shell.json and run bar put again.

That is all it takes to use it: click the bar icon for the popup, right-click for the full view.

A shortcut, if you want one

Nothing is written to your Hyprland config, so there is no keybind unless you add one, and you may not want one at all since the bar icon works on its own.

Both surfaces answer IPC, so bind whichever key you prefer. On Omarchy Quattro the bindings live in ~/.config/hypr/bindings.lua:

-- the popup, which hands off to the full view with Enter
o.bind("SUPER + SHIFT + H", "Keybinds", "omarchy-shell harbefas.keybinds.widget toggle")

-- or the full view directly
o.bind("SUPER + SHIFT + K", "Keybinds full", "omarchy-shell shell summon harbefas.keybinds")

On setups still using ~/.config/hypr/bindings.conf:

bindd = SUPER SHIFT, H, Keybinds, exec, omarchy-shell harbefas.keybinds.widget toggle

SUPER + SHIFT + H is only a suggestion. The popup mentions it for the first few opens and stops once any binding references the plugin.

Without the bar icon

omarchy plugin enable harbefas.keybinds
omarchy-shell shell summon harbefas.keybinds

Requirements

Hyprland, Quickshell, timeout, and head, all of which Omarchy already provides. nvim is optional: without it the Neovim tab says so and every other tab still works.

The Neovim keymaps are dumped in the background on the first open of a shell session and read straight off a bounded stdout pipe — nothing is written to disk.

Terminal version

keybinds-tui is the same idea as a ratatui TUI, for people not running Omarchy. The two share no code and neither needs the other installed; the bundled tables started from the same research.

Remove

omarchy plugin remove harbefas.keybinds

The plugin writes no files at all outside its own directory.

License

MIT

Preview

The bar popup, the everyday surface:

Keybinds popup

The full overlay, one press away:

Keybinds overlay