Continuously verified by E2E smoke tests.
| Platform | Status |
|---|---|
| macOS 15 (Sequoia) | ✅ Pass |
| macOS 26 (Tahoe) | ✅ Pass |
| macOS 27 (Golden Gate) | ✅ Pass |
| Ubuntu 22.04 (Jammy Jellyfish) | ✅ Pass |
| Ubuntu 24.04 (Noble Numbat) | ✅ Pass |
| Ubuntu 26.04 (Resolute Raccoon) | ✅ Pass |
| Windows Server 2022 | ✅ Pass |
| Windows Server 2025 | ✅ Pass |
Continuously verified by visual tray rendering tests. Each run boots the menubar fixture, screenshots the OS panel, and asserts both the tray icon and the popover window are painted. These checks confirm rendering, not tray-anchored placement. See Window positioning on Linux.
| Platform | Tray + Window | Screenshot |
|---|---|---|
| Linux (Budgie) | ✅ Pass | |
| Linux (Cinnamon) | ✅ Pass | |
| Linux (GNOME) | ✅ Pass | |
| Linux (KDE Plasma) | ✅ Pass | |
| Linux (LXQt) | ✅ Pass | |
| Linux (MATE) | ✅ Pass | |
| Linux (Sway/Waybar) | ✅ Pass | |
| Linux (Tint2) | ✅ Pass | |
| Linux (Xfce) | ✅ Pass | |
| macOS 15 (Sequoia) | ✅ Pass | |
| macOS 26 (Tahoe) | ✅ Pass | |
| macOS 27 (Golden Gate) | ✅ Pass | |
| Windows Server 2022 | ✅ Pass | |
| Windows Server 2025 | ✅ Pass |
The checks above confirm that the tray icon and popover window render. They do not assert that the popover is positioned next to the tray icon.
On native Wayland, tray-anchored positioning is not possible, and there is nothing the library can do about it. Two protocol limitations stack up: an application cannot set the position of its own window (setPosition is a no-op, getPosition reads back [0, 0]), and the tray icon, hosted by the panel via StatusNotifierItem, reports no coordinates. The compositor decides where the popover appears, which is usually the center of the screen. menubar logs a one-time warning when it detects the window could not be positioned.
Under X11 / XWayland, an application can position its own window, so the popover is placed where menubar computes it. (Some Linux panels still report no tray-icon coordinates over StatusNotifierItem, in which case the window falls back to a screen corner rather than sitting exactly under the icon.)
If a Wayland session places the popover in the wrong spot, running under XWayland with --ozone-platform=x11 restores positioning.













