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.

<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.jsononly through Omarchy's ownomarchy plugincommands, 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.