Omahub
← All plugins
S

Flush bar

by Scott Jones

Let a transparent bar sit flush over the windows below it

Install
$ omarchy plugin add https://github.com/scottjones/omarchy-flush-bar --enable
Appearance #Hyprland #bar #quickshell

Flush bar

An Omarchy shell plugin that lets a transparent bar sit flush over the windows below it — no widget overlap, no new setting, and no change to any default. Works on any edge, live, and multi-monitor. This lets the text of the workspaces and icons be centered in the "empty" space above your windows rather than offset by the gap.

This is the plugin form of basecamp/omarchy#6381.

https://github.com/user-attachments/assets/b6d59de0-2c69-44bf-aee7-5dd97a167948

How it works

The bar already reserves only its own thickness (its layer-shell exclusive zone), so it never overlaps a window. What's missing is the window gap under it: this plugin keeps the gap on the bar's edge in step with the bar — 0 when the bar is transparent (windows flush) or the same as the other edges when opaque.

It ships as a headless service plugin. The shell persists every bar change (edge moves and the transparency toggle) into shell.json, which the service observes through shell.barConfig, so it reacts to the same state the bar itself renders — on change, once at startup, and on a Hyprland config reload (which resets gaps_out, so the service re-asserts it). Startup also re-asserts for a few seconds and again after monitor add/remove, so a late boot-time hyprctl reload (e.g. clamshell/monitor reconciliation) cannot strand the gap.

The gap logic lives in gaps.sh. It reads the current gaps_out and only ever touches two edges: the bar's own edge, and the edge the bar just moved off of (restored to the window gap so a moved-away edge isn't stranded at 0). Every other edge is left exactly as configured, so per-edge custom gaps, a hand-set zero, and toggles like window-no-gaps are preserved.

Install

omarchy plugin add https://github.com/scottjones/omarchy-flush-bar.git
omarchy plugin enable scottjones.flush-bar

Or by hand:

git clone https://github.com/scottjones/omarchy-flush-bar.git ~/.config/omarchy/plugins/scottjones.flush-bar
omarchy-shell shell rescanPlugins
omarchy plugin enable scottjones.flush-bar

Making the bar transparent

The transparent bar is an existing Omarchy feature, not something this plugin adds — the plugin only supplies the missing gap while it's on. Two ways to turn it on:

  • Double-click an empty spot on the bar (left button) to toggle it.
  • omarchy bar transparent toggle — or pass true / false outright.

Either path writes bar.transparent into shell.json, which is the state the service watches, so the gap follows on the same change. Dragging the bar to another screen edge works the same way: it persists bar.position, and the gap moves with it.

Remove

omarchy plugin disable scottjones.flush-bar   # stop the syncing
omarchy plugin remove scottjones.flush-bar    # delete the checkout

If your bar was transparent and flush, reload Hyprland or set general:gaps_out to restore the gap on the bar's edge. The plugin changes gaps_out only at runtime — it never writes to your configuration files.

Test

./test/gaps-test.sh