Hyprsidekick
An Omarchy bar widget for mnemonic named workspaces, AeroSpace-style (the macOS tiling window manager) adapted to Hyprland. Shows the workspace you're on as a pill, opens a dropdown of all your workspaces (named + numbered) to click-jump, and gives you a visual Settings panel to manage them and their Hyprland keybinds. No JSON editing required.
<p align="center"> <img src="hyprsidekick-dropdown.png" alt="Workspace dropdown" height="300"> <img src="hyprsidekick-dropdown-2.png" alt="Workspace dropdown" height="300"> <img src="hyprsidekick-settings.png" alt="Settings panel" height="300"> </p>Replaces the stock
omarchy.workspaceswidget, which only shows numeric workspaces and hides named ones.
How it works
You give each workspace a one-letter mnemonic and a name (and, optionally, an icon). Hyprsidekick then:
- binds a modifier + letter shortcut to jump to that workspace, and modifier + Shift + letter to send the focused window there. The modifier defaults to Alt (Omarchy already uses Super for its numbered workspaces and Super + letter for apps, so Alt stays out of the way); choose Alt / Super / Ctrl / Super+Alt in Settings → Modifier.
- shows the workspace you're currently on as a pill in the bar, by name,
letter,
letter·name, or icon (your choice).
Example: a workspace with key C and name Coding, using the default Alt
modifier →
Alt + Cjumps to it (on a Mac-style keyboard remapped with keyd, yourOption/Cmdkey acts asAlt, so it'sCmd + C),- the bar pill reads
C·Coding(orCoding, orC, or its icon ).
So instead of remembering "workspace 4", you press the letter that means something to you. Click the pill to see them all and jump with the mouse.
Reading the dropdown
- Highlighted row = the workspace you're on now.
- Dot on the right = that workspace has open windows (occupied); no dot / dimmed = empty.
- Named mnemonics are listed first, then your numbered workspaces.
- Settings (gear, bottom) opens the visual editor.
Features
- Pill showing the active workspace, by mnemonic, name,
key·name, or icon. - Dropdown of every workspace (named mnemonics + numbered), with the active one highlighted and an occupied dot; click a row to jump.
- Settings panel (in-shell, no config files): add / remove / edit workspaces (key, name, icon picker), choose label format and numbered-workspace behavior, move the widget between bar sections, and hide the stock widget.
- Hyprland integration: generates
~/.config/hypr/hyprsidekick.luawith the<mod>+<key>switch /<mod>+Shift+<key>move binds for your workspaces (modifier configurable, Alt by default) and reloads Hyprland in one click. - Live preview while editing; Cancel (or Escape / click-away) reverts, Done commits.
- Durable config: your workspaces persist to
~/.config/hyprsidekick/config.json, so disabling/re-enabling or updating the plugin never loses them.
Install
omarchy plugin add https://github.com/kconfesor/hyprsidekick.git --enable
omarchy bar move kconfesor.hyprsidekick --section left
One-time keybind setup. So Hyprland loads the generated shortcuts, add this
line to ~/.config/hypr/bindings.lua once:
require("hypr.hyprsidekick")
(Hyprsidekick never edits your bindings.lua itself; if the line is missing it
just sends a reminder. It only writes its own ~/.config/hypr/hyprsidekick.lua.)
Then open the widget's Settings (dropdown → gear), set up your workspaces, and hit Done. Whenever you add/remove a workspace or change its key, name, or modifier, Hyprsidekick regenerates the binds and reloads Hyprland automatically. (A manual Apply to Hyprland button is there too, to force a re-apply.)
Plugins run unsandboxed. Review the source before enabling.
Usage
- Left-click the pill → open the dropdown. Click any workspace to jump to it (empty numbered workspaces are created on click).
- Dropdown footer → Settings → open the editor.
<mod> + <key>switches to a workspace,<mod> + Shift + <key>moves the focused window there, where<mod>is your configured modifier (Alt by default; set it in Settings → Modifier). Binds update automatically when you edit workspaces. On a keyboard remapped with keyd, yourOption/Cmdkey isAlt.
Configure
Everything is editable in the Settings panel (its footer's gear). It persists
to ~/.config/hyprsidekick/config.json (the durable source of truth) and mirrors
into the widget's entry in ~/.config/omarchy/shell.json:
| Key | Values | Default | Meaning |
|---|---|---|---|
workspaces |
[{ "key", "name", "icon" }] |
none | Your named workspaces + mnemonics. |
labelFormat |
key · name · key-name · icon |
key-name |
How the pill renders the active workspace. |
numberedMode |
range · active · hidden |
active |
Numbered workspaces in the dropdown: fixed 1..N, only active, or none. |
numberedCount |
integer | 9 |
N, when numberedMode is range. |
hideStockWidget |
bool | true |
Remove the stock omarchy.workspaces from the bar. |
barSection |
left · center · right |
left |
Which bar section the widget sits in. |
bindMod |
ALT · SUPER · CTRL · SUPER + ALT |
ALT |
Modifier for the generated <mod>+<key> binds (Omarchy uses Super for numbers/apps, so Alt is the safe default). |
accentActive |
bool | false |
Color the pill with the theme accent instead of the neutral bar color. |
Placement: use the Settings Position selector, or
omarchy bar move kconfesor.hyprsidekick --section <left|center|right>.
Remove
omarchy plugin remove kconfesor.hyprsidekick
omarchy plugin enable omarchy.workspaces # restore the stock widget
Then remove the require("hypr.hyprsidekick") line from
~/.config/hypr/bindings.lua, and delete ~/.config/hypr/hyprsidekick.lua (the
generated binds) and ~/.config/hyprsidekick/ (the saved config) if you no longer
want them.
License
MIT © Kelvin Confesor