lefteros_by SomniusX
EL ↗Say hello

LEFTEROS / PERSONAL ARCHIVE

Beta

Oma 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.

Oma Top Menu: your app's menu on the Omarchy top bar

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, dbusmenu and 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.

Floorp's menu on the bar

Kotatogram's menu on the bar

Omamail's menu on the bar

A generic menu for an app with none of its own

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.

Oma Top Menu optionsThe settings preview

The menu dragged along the bar

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