Description
With the macOS menu bar set to auto-hide, opening the panel while the bar is hidden (e.g. via the global shortcut) renders it partially above the top edge of the screen — the panel header row gets clipped.
Root cause
position_panel_at_tray_icon in src-tauri/src/panel.rs anchors the panel's top edge to the bottom of the tray icon rect:
let nudge_up: f64 = 6.0;
let panel_y = icon_logical_y + icon_logical_h - nudge_up;
When the menu bar auto-hides, the bar — and the status item in it — slides above the visible screen, so tray.rect() reports a rect above the monitor's top edge. The computed panel_y then lands off-screen, and nothing clamps the panel to the visible area (NSPanels positioned via setFrameTopLeftPoint: aren't constrained by the system).
Steps to Reproduce
- System Settings → Control Center → "Automatically hide and show the menu bar" → Always
- Set a global shortcut in OpenUsage
- With the menu bar hidden, press the shortcut
Expected Behavior
Panel fully visible, pinned at or below the top of the screen.
Actual Behavior
The top of the panel (provider header row) is clipped off-screen, as if glued to the hidden menu bar's position.
Proposed fix
Clamp the panel's top edge to the monitor's top. Visible-menu-bar behavior is unchanged, since the anchor already lands below the bar in that case:
let panel_y = (icon_logical_y + icon_logical_h - nudge_up).max(mon_logical_y);
Verified locally on the setup below — with the menu bar hidden the panel now pins to the top edge fully visible, and with the bar visible it sits in the usual spot. PR incoming.
OpenUsage Version
0.6.26
Operating System
macOS 26.5 (Tahoe), Mac Studio (Apple Silicon)
Description
With the macOS menu bar set to auto-hide, opening the panel while the bar is hidden (e.g. via the global shortcut) renders it partially above the top edge of the screen — the panel header row gets clipped.
Root cause
position_panel_at_tray_iconinsrc-tauri/src/panel.rsanchors the panel's top edge to the bottom of the tray icon rect:When the menu bar auto-hides, the bar — and the status item in it — slides above the visible screen, so
tray.rect()reports a rect above the monitor's top edge. The computedpanel_ythen lands off-screen, and nothing clamps the panel to the visible area (NSPanels positioned viasetFrameTopLeftPoint:aren't constrained by the system).Steps to Reproduce
Expected Behavior
Panel fully visible, pinned at or below the top of the screen.
Actual Behavior
The top of the panel (provider header row) is clipped off-screen, as if glued to the hidden menu bar's position.
Proposed fix
Clamp the panel's top edge to the monitor's top. Visible-menu-bar behavior is unchanged, since the anchor already lands below the bar in that case:
Verified locally on the setup below — with the menu bar hidden the panel now pins to the top edge fully visible, and with the bar visible it sits in the usual spot. PR incoming.
OpenUsage Version
0.6.26
Operating System
macOS 26.5 (Tahoe), Mac Studio (Apple Silicon)