Omahub
← All plugins
W

Flat Tray

by WhiteWebDev

System tray with every icon shown directly in the bar, with no collapsible drawer to click open.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
a9735a0
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

None
AI risk level
None
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
a9735a0
Reviewed
1 month ago

The plugin is a display-only QML tray widget that clones Omarchy's stock tray and forces every status-notifier item into the pinned bucket; it has no install scripts, no shell execution, and no network behavior. Tooltips from the session bus are length-capped and HTML-escaped, and the only notable logic is hiding LocalSend/Dropbox icons by name, which is a visibility choice rather than a security risk. The deterministic scan's "none" finding matches this review.

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/WhiteWebDev/omarchy-flat-tray --enable
Widgets #bar #quickshell #system

Flat Tray

A drop-in replacement for Omarchy's system tray that shows every status-notifier icon directly in the bar, with no drawer to click open first.

The right of the bar with Flat Tray installed: the tray item sits directly in the row, with no expand arrow

<sub>The leftmost icon above is the status-notifier item drawn by this plugin; the rest are Omarchy's own bar widgets.</sub>

Companion plugin. Flat Tray pairs with Better Notifications, which adds a visible dismiss button to every toast and an unread bell to the bar. They are independent and either works alone, but they are designed together and installing both is recommended: the tray handles what is already running, the bell handles what arrives. They stay separate plugins on purpose, so each can be placed anywhere in the bar on its own.

The problem

Omarchy's stock tray sorts icons into two buckets: pinned, always visible, and drawer, hidden behind an expand arrow. Anything that lands in the drawer costs a click to reach and, more to the point, costs you the glance. A tray icon's whole job is to be seen without being asked for, and on a bar with room to spare the drawer hides icons for no reason.

There is a second, smaller bug underneath. The expand arrow's visibility check does not account for the case where the drawer has nothing left in it, so the arrow can sit in the bar pointing at an empty drawer.

The solution

Treat every icon as pinned. That is the whole change.

This is a clone of Omarchy's own tray widget with one rule inverted: the bucket that sorts icons into pinned and drawer always returns pinned. Nothing is ever hidden, the drawer is empty by construction, and the expand arrow's visibility check, now correct because with everything pinned there is genuinely nothing to reveal, resolves to hidden and the arrow disappears.

Everything else is Omarchy's own code: the same icons, the same menus, the same submenu handling, the same theming. It looks native because it is, minus one collapsing behaviour.

Install

omarchy plugin add https://github.com/WhiteWebDev/omarchy-flat-tray.git --enable

That is the whole install. Because the plugin declares clonedFrom: omarchy.tray, enabling it takes the stock tray's exact place in the bar and retires it, with no layout fiddling and no leftover duplicate icon.

To put it somewhere else:

omarchy bar move whitewebdev.flat-tray --section right

Dependencies

None beyond Omarchy itself. This plugin installs nothing and pulls in nothing.

Uninstall

omarchy plugin disable whitewebdev.flat-tray
omarchy restart shell

Disabling restores Omarchy's stock tray to the same slot automatically, which is the clonedFrom link working in reverse. To remove the files as well:

omarchy plugin remove whitewebdev.flat-tray

What this plugin does and does not do

Stated plainly, for your peace of mind and for reviewers:

  • The repository is public and contains both installation and removal instructions.
  • The license is MIT and there are no external dependencies to document.
  • All code here is Omarchy's own first-party tray widget, redistributed under its license, with one behavioural rule changed by the author, who has the right to publish it.
  • It does not overwrite your configuration without your consent. It keeps no state of its own and writes no files. Enabling or disabling the plugin changes shell.json only through Omarchy's own omarchy plugin commands, the same as any other plugin, and disabling it hands the stock tray back its exact slot with no stray entries left behind.
  • It reads the status-notifier items already published on your session bus. It does not add, remove, or modify them, and it does not talk to the network.
  • Listing on the Omarchy plugin marketplace is a listing decision, not a security audit. Read the source before you install it.

Credit

Derivative work of Omarchy's own omarchy.tray widget (part of Omarchy by David Heinemeier Hansson / Basecamp), redistributed under the MIT License. See LICENSE.