Top Bar Dock
A pinned-app launcher dock and running-window taskbar, combined into one Omarchy bar widget.
Running apps appear as chips, grouping multiple windows of the same app together; right-click to pin an app so its icon stays put as a launcher even when nothing is running. Left-click runs/restores, middle-click+drag reorders, right-click opens an action menu, and hovering shows live thumbnail previews — all inside your Omarchy top bar, inheriting your theme automatically.
Built from the dock half of OmaHarbor, which was itself built on window-shelf; this version has been heavily rewritten, hardened, and extended (see Improvements over OmaHarbor).
Features
- Launcher and taskbar in one — pinned apps and running windows live together in your bar. Pinned apps stay ready to launch even when closed.
- Per-app window grouping — multiple windows of the same app share a single icon. Hover for live previews, or click to switch to or close any window.
- Click to launch or switch — click to launch a pinned app, minimize/restore an open window, or instantly jump to a window on another workspace.
- Drag to rearrange — middle-click and drag pinned icons to reorder your dock; changes are saved automatically.
- Right-click quick actions — access instant actions to open a new instance, pin or unpin, maximize, minimize, or close windows.
- Smart app matching — web apps and Steam games appear with their own proper names and icons, separate from the browser or Steam client.
- Status at a glance — clean visual indicators highlight the focused app, dim minimized windows, and show workspace numbers for windows on other desktops.
- Adapts to your setup — matches your active Omarchy theme automatically and works smoothly on both horizontal and vertical bars.
Interaction quick reference
| Gesture | Pinned chip | Running-window chip |
|---|---|---|
| Left click | Launch | Minimize / restore & focus |
| Middle click + drag | Reorder | — (drag is available from its pinned host) |
| Right click | Context menu | Context menu |
| Hover | Tooltip with app name | Live preview thumbnail |
Install
omarchy plugin add https://github.com/hogar1977/top-bar-dock.git --enable --yes
Placing the widget (defaults to the left bar section):
omarchy bar move io.github.hogar1977.top-bar-dock --section left
# or: center / right
If you skipped --enable, enable it afterwards:
omarchy plugin enable io.github.hogar1977.top-bar-dock
Update
omarchy plugin update io.github.hogar1977.top-bar-dock
Remove
omarchy plugin remove io.github.hogar1977.top-bar-dock --yes
Configuration
Configure from the bar widget's settings panel, or the CLI:
omarchy bar set io.github.hogar1977.top-bar-dock <key> <value>
| Key | Default | Description |
|---|---|---|
maxTitleLength |
18 |
Window titles longer than this are truncated with an ellipsis. |
previewDelay |
350 |
Milliseconds to hover a chip before the live preview appears. |
Your pins are stored in ~/.local/state/omarchy/top-bar-dock/pinned.json
(created on first pin). An older pinned.json inside the plugin folder is
migrated automatically the first time the new path is used.
Editing anything under ~/.config/omarchy/plugins/ hot-reloads the plugin automatically.
Requirements
- Omarchy (Hyprland + the Omarchy Quickshell bar)
- Nothing else — no extra packages.
Improvements over OmaHarbor
Built as a standalone dock widget from the dock half of OmaHarbor (omitting the workspace switcher). Key functional additions include:
- Smarter app identity (Web-apps & Steam) — a layered identity engine with domain-bonus scoring resolves web-app windows (e.g.
vivaldi-…photocrowd…) to their own web-app desktop entry instead of the parent browser. Dedicated Steam integration matches games by App ID/title tokens and launchessteam-app-<id>pins viasteam://rungameid. - Per-app window grouping — multiple windows of the same app merge into a single chip featuring a multi-tile live preview grid, per-window Focus and Close actions, and a "Close all instances" option (OmaHarbor creates a separate chip per window with single previews).
- Direct on-bar pin reordering — middle-click + drag pinned chips directly on the bar with a visual drop indicator, or use right-click
Move left/Move rightmenu actions, replacing OmaHarbor's separate hamburger dock-menu popup. - Leaves compositor gaps alone — minimize and restore never rewrite
general:gaps_out/gaps_in, so your Hyprland spacing stays as you set it.
Changelog
1.3.3
- The bar stays fast even when a lot of windows are open
1.3.2
- Saved pins load more safely, so a damaged pin file can no longer freeze the bar
1.3.1
- Steam client windows (Store, Friends & Chat, Settings) no longer collapse under a game chip when Steam itself was started via a game shortcut — single-instance Steam used to propagate that game's desktop file to every child window
- Native Steam games (e.g. Tabletop Simulator) no longer group under the wrong game chip for the same reason; Steam game identity is now only trusted with a matching App ID
1.3.0
- Running apps are now matched to their pins more reliably, so the right icon lights up for the right app — including terminal tools that share a single window
- Right-clicking a pinned app now also shows that app's background menu items (for example Steam, chat or VPN apps) whenever the app provides them, so there is no need to hunt for its tray icon
1.2.1
- Steam-related app recognition is now more accurate
1.2.0
- Chip highlight was reworked: selected and running apps use a clearer accent underline, hover is a light wash, and idle chips stay clean on a transparent bar
- Uses less background work, so the bar stays lighter with several monitors
- Pins are saved outside the plugin folder, so updates no longer risk wiping them
- Minimize and restore no longer change your window gaps
- Pinned apps remember themselves more reliably after a restart
- Same dock as before: web apps stay separate from the browser, Steam games stay separate from Steam
Acknowledgements
- OmaHarbor (
anelcelik/omaharbor, MIT) — the dock half of this plugin started as a fork of OmaHarbor's dock code. - window-shelf (
gardnmi/window-shelf, MIT) — via OmaHarbor, which took its dock half from here ("Minimize" trick). - Omarchy (
basecamp/omarchy, MIT) — the bar widget framework, popup/theming tokens, and theomarchyplugin tooling this runs on. - Quickshell (
outfoxxed/quickshell, LGPL-3.0) — the shell framework everything is built with. - Big Pickle — the AI engineering partner who did the heavy lifting: the identity rewrite, the web-app/Steam matching, the gap-preservation fix, the performance pass, and the polish and bug-hunting that turned the fork into something publishable. 😄
License
MIT — the same license as OmaHarbor and Omarchy. See the LICENSE file for copyright and the upstream attribution.