Omahub
← All plugins
P

Floating Waybar

by pramillay

Floating pill status bar with widgets (docked gap, frosted glass, hover glider)

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
d68a3f3
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
d68a3f3
Reviewed
1 month ago

The plugin is a straightforward QML/JavaScript bar fork with a small bash/Python style CLI. The code is readable, uses bounded nonblocking file reads and atomic writes, and contains no install-time destructive actions, obfuscation, or credential handling. The only notable items are that the style CLI and Bar.qml invoke python3 and various omarchy/hyprctl commands, which is normal for this environment and not a security concern.

  • The style loader in Bar.qml and bin/floating-waybar invoke python3 to read style.json; the read is guarded with O_NONBLOCK|O_NOFOLLOW, a regular-file check, and a 64 KiB cap, so the risk is minimal.
  • The CLI writes style.json atomically via mktemp+rename with 0600 permissions, which is a safe pattern.
  • Widgets execute external commands (hyprctl, omarchy-*, pgrep, xkbcli) but these are standard, user-visible bar actions and status checks, not hidden or destructive.
  • No install hooks, network calls, persistence, or credential access were found in the sampled files.
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/TECHNOCRAFT27/floating-waybar --enable
Appearance #quickshell

Floating Waybar

A floating-pill status bar for Omarchy (Quickshell). Drop-in bar plugin for omarchy-shell that detaches the strip from the screen edge, rounds it into a pill, and turns the bar surface into a frosted-glass panel that blurs the wallpaper behind it. All of your existing bar widgets keep working untouched — it is a drop-in replacement for the stock omarchy.bar.

Features

  • Floating pill — the bar hovers off the chosen screen edge with a configurable gap, rounded corners, and its own slide-in entrance animation.
  • Frosted glass — pill fill painted at ~60% alpha; Hyprland's layer blur on the omarchy-bar namespace turns the wallpaper behind it into frosted glass.
  • Theme-aware — pulls Style / Color from the active Omarchy theme, so it matches whatever theme you switch to (no extra theming to maintain).
  • Gliding hover capsule — an accent pill eases under whichever widget your pointer is over; hover them to see it glide between slots.
  • Press bounce — widgets squash-and-pop on click so interactions feel physical.
  • Style CLI — tweak the look live from the terminal with floating-waybar (gap, opacity, frosted on/off, hover glider, floating on/off). No manual QML editing needed for day-to-day styling.
  • All widgets omarchy.bar supports — workspaces, clock, tray, audio, network, power, media, and any custom command/qml modules from your shell.json bar layout.

Requirements

  • Omarchy 4.0.0+ (omarchy-shell / Quickshell)
  • Hyprland layer blur rule for the bar namespace (default Omarchy ships it in looknfeel.lua):
    hl.layer_rule({ match = { namespace = "omarchy-bar" }, blur = true, ignore_alpha = 0.2 })
    
    If your setup lacks it, the pill still works — it just reads as a slightly transparent solid color instead of frosted glass.

Install

The plugin is a git repo with manifest.json at its root, so it installs straight from the marketplace-ish omarchy plugin add flow:

omarchy plugin add https://github.com/TECHNOCRAFT27/floating-waybar --enable --yes

Or without --yes to review the code before enabling:

omarchy plugin add https://github.com/TECHNOCRAFT27/floating-waybar
omarchy plugin enable floating-waybar

After enabling, point the bar at the plugin. The plugin is selected by the bar.id key in ~/.config/omarchy/shell.json:

{
  "version": 1,
  "bar": {
    "id": "floating-waybar",
    "position": "top",
    "layout": { "left": [/* ... */], "center": [/* ... */], "right": [/* ... */] }
  }
}

The bar hot-reloads on save. floating-waybar replaces whatever bar provider was active; your existing widgets, popups, and omarchy bar ... gestures all keep working.

By hand

Prefer the git install above. To install from a checkout:

mkdir -p ~/.config/omarchy/plugins
cp -a /path/to/floating-waybar ~/.config/omarchy/plugins/
omarchy-shell shell rescanPlugins
# then set bar.id to "floating-waybar" in shell.json

Updating

omarchy plugin update floating-waybar

Uninstalling

omarchy plugin disable floating-waybar    # bar falls back to omarchy.bar
omarchy plugin remove floating-waybar

Style CLI

Ship bin/floating-waybar (also symlinked to ~/.local/bin on this machine). It reads and writes style.json in the plugin directory and the bar applies changes live — no restarts.

floating-waybar get [key]         # show all (defaults + overrides) or one key
floating-waybar set <key> <value> # change a property, applied instantly
floating-waybar reset             # delete style.json, back to built-in defaults
floating-waybar path              # print the style file being written
floating-waybar help              # usage and property list

Properties

Key Type Default Description
floating true/false true Detach the bar as a floating pill (false = docked stock)
frosted true/false true Frosted-glass fill (false = solid theme background)
opacity 0.0 – 1.0 0.6 Pill fill alpha when frosted
gap 0 – 200 px 10 Distance between the pill and its screen edge
hover-glider true/false true Accent capsule gliding under the hovered widget

Examples

floating-waybar set opacity 0.75   # a more solid pill
floating-waybar set gap 16         # float further from the edge
floating-waybar set frosted false  # solid colored pill
floating-waybar set hover-glider false
floating-waybar get

Values live in <plugin-dir>/style.json:

{
  "floating": true,
  "frosted": true,
  "opacity": 0.6,
  "gap": 10,
  "hover-glider": true
}

Missing keys fall back to the built-in defaults compiled into Bar.qml, so the plugin works with no style file at all. style.example.json documents every key.

Customization

Anything beyond the CLI knobs is QML. All the floating behavior lives in the // ---- Floating bar ---- block near the top of Bar.qml:

  • floatRadius — pill corner radius (derived from the theme by default)
  • chrome entrance ParallelAnimation — slide + fade timings
  • hoverGlider — accent color / inset / easing of the hover capsule

Change these in your clone — the plugin dir is a plain git checkout, so future omarchy plugin update runs will show you a diff before fast-forwarding.

How it works

Bar.qml is a fork of the stock omarchy.bar engine with one structural change: the layer window is always transparent and everything visual lives in a rounded Rectangle (chrome) behind the widget rows, so the pill's corners cut out cleanly against the wallpaper. The gap is folded into every PanelWindow margin (including the off-screen parking offset used when hiding the bar), which keeps tiled windows' exclusion zones stable. Style properties are watched from style.json via FileView + a Process, so CLI writes reflow the bar live.

Layout

floating-waybar/
├── manifest.json          # plugin manifest (id: floating-waybar, kind: bar)
├── Bar.qml                # floating-pill bar engine (fork of omarchy.bar)
├── BarModel.js
├── bin/floating-waybar    # style CLI
├── style.example.json     # documented default values
├── indicators/            # first-party bar indicator widgets
└── widgets/               # manifest-backed bar widgets

License

MIT © 2026 TECHNOCRAFT27