Skip to content

macOS RivetMenuBarController: no separators, items fixed at install, title-only (no icon/click action) #119

Description

@turinglambdaai

Dogfooding notes from two app rewrites (brainfuel, movebit):

  1. install(title:menuItems:) takes a flat [(String, String, () -> Void)] — no separator support, so tray menus lose their grouping (old apps had \─\ separators).
  2. Items are fixed at install time: movebit needs to swap 暂停提醒 1 小时 ↔ 恢复提醒 (and localized labels) on pause-state change, so it re-installs the whole controller. A small update/replace API (by key) or a menu-builder closure would avoid the churn.
  3. Title-only: parity apps want an icon (template NSImage) in the status bar plus a tooltip; and the old tray behavior maps left-click to "show the window", which a status item's menu-at-click doesn't express.

Suggestion: evolve RivetMenuBarController with: separators (a reserved key or an enum item type), update(items:) / setItem(_:title:), optional button.image, optional button.action for click-without-menu, and button.toolTip. Also worth mirroring on the backend side: set-tray-menu! currently can't express separators either.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions