LEFTEROS / PERSONAL ARCHIVE
BetaOma Top Menu — your app's menu on the Omarchy bar
7 November 2026 / Lef
Oma Top Menu is an Omarchy plugin that puts the menu of the app you're using (File, Edit, View...) on the left of the top bar, like the macOS or GNOME global menu. The workspace numbers can move to the right. It's free software under GPL-2.0.
Status: version 0.1.0, still early. Not on the Omarchy plugin marketplace yet. Tested on Omarchy 4.5.0-3 with Hyprland 0.56.2.

What it does
- Shows the window's menu on the bar, and you click through it as usual.
- One menu per monitor: the one you're working on shows the focused window, the others show the window on the workspace they're displaying.
- Reads the menu from
org.gtk.Menus,dbusmenuand the accessibility tree (AT-SPI), in that order, so it works with GTK and Qt apps. Apps with no menu of their own get a generic one, or nothing. - With two windows of the same app, it takes the menu of the window whose title matches.
- Drag it anywhere along the bar, or lock it in place.




Options
Right-click the menu to open the options: service status with a Restart service button, focus (System, Hover, Click, Off), where the workspaces go, free or locked position, dividers, spacing, the app icon, and what happens with apps that have no menu. If you add the widget a second time next to the tray, it becomes a small icon: a left-click shows a preview of the settings.
I recommend Click for focus. With Omarchy's hover, the menu changes as the pointer crosses other windows on the way to the bar. The plugin applies it with hyprctl and doesn't touch any Hyprland file.



Install
Needs Omarchy with the Quattro shell, Hyprland, and the python-gobject and at-spi2-core packages from Arch's official repos.
omarchy plugin add https://github.com/Somnius/oma.top.menu
omarchy bar put com.lefteros.somnius.oma-top-menu --section left
Remove
bin/oma-top-menu-uninstall # shows what it would clean
bin/oma-top-menu-uninstall --apply # cleans it (backs up shell.json first)
omarchy plugin remove com.lefteros.somnius.oma-top-menu
A plain omarchy plugin remove is safe too: the service stops with the plugin, nothing was written to your Hyprland files, and its state lives in a folder that's cleared at logout. If you added the second copy as an icon, a harmless entry stays in shell.json; oma-top-menu-uninstall removes it. Every action and how to undo it: docs/actions.md.
Limits and what hasn't been tested
- While it runs, the service turns accessibility on for the whole session, to read menus from Qt and GTK4. Its cost hasn't been measured.
- Firefox-style browsers (tested: Floorp) fill a menu only after it's been opened once. The plugin looks again after a click; that has tests, but I haven't seen it live yet.
- LibreOffice isn't solved yet.
- Apps that were running before the service started need a restart.
- A real second monitor: not yet, only a virtual one.
- Not confirmed by hand yet: the app icon and generic menu buttons, the icon in the tray drawer, and the GitHub button.
In detail: ROADMAP and docs/compatibility.md.
Credits & licences
GPL-2.0. A fork of primo.global-menu by PrimoGameStudio (GPL-2.0). The idea came from the Global Menu for GNOME by Unmade760; I took no code from it, only inspiration.
Posts
- Oma Top Menu: your app's menu on the Omarchy top bar, 7 November 2026