Skip to content

menu bar: c11 glyph, drop integrations submenu, surface-aware tooltip - #106

Merged
BenevolentFutures merged 1 commit into
mainfrom
menu-bar-icon
May 3, 2026
Merged

BenevolentFutures merged 1 commit into
mainfrom
menu-bar-icon

Conversation

@BenevolentFutures

Copy link
Copy Markdown
Contributor

Summary

Three scoped changes to the macOS menu bar extra (MenuBarExtraController + MenuBarIconRenderer):

  • Glyph. Replace the cmux right-pointing chevron with an Open-Center Plus derived from the c11 app icon. Single-fill path, template-image friendly, still leaves the badge corner clear. Glyph rect retuned from (1.2, 1.5, 11.6, 15.0) to a square (1.0, 1.0, 11.0, 11.0) so the symmetric plus reads square.
  • Drop Integrations submenu. The "Install Claude Code / Codex / OpenCode / Kimi" submenu pointed at c11 install <tui>, a direction the project CLAUDE.md explicitly rejects. Removes the menu items, the rebuild + filesystem-marker scan helpers, and the openIntegrationInstallSurface AppDelegate helper that only the submenu called.
  • Enrich status-item tooltip. With unread notifications, append deduplicated surface titles below the count on a second line: c11: 3 unread notifications\nTitle A · Title B · Title C. Capped to maxInlineNotificationItems; trailing ellipsis if more.

Why these three together

  • The cmux glyph was the actual brand conflict (drawGlyph literally hardcoded the cmux center-mark path).
  • The Integrations submenu is dead UI for a non-feature, and lives in the same controller, so a single "rebrand + simplify + new glyph" commit is cleaner than three separate touches.
  • The tooltip enrichment uses surface-title metadata that agents already write via the c11 skill (set-status / surface manifest) so the hover signal becomes self-documenting at zero menu real-estate cost.

What stays unchanged (deliberate, per upstream-compatibility lean for cmux migrants): badge, inline last-6 notification list, Show Notifications, Jump to Latest Unread, Mark All Read, Clear All, "No unread" state hint, Check for Updates, Preferences, Quit.

Follow-ups

  • Three menu.integrations* entries in Resources/Localizable.xcstrings are now orphaned. Left for a follow-up sweep so this PR doesn't co-mingle with About-panel xcstrings work already in flight on that file.

Test plan

  • Build with ./scripts/reload.sh --tag menubar-glyph → succeeds. (Verified locally.)
  • Menu bar icon renders the Open-Center Plus glyph at 1× and 2× retina.
  • Click the icon: menu has no Integrations submenu, no orphaned separators.
  • Hover with no unreads: tooltip is c11.
  • Hover with unreads: tooltip shows the count line followed by surface titles joined with ·, capped at six with … if more.
  • Existing badge rendering, debug controls, and the rest of the menu items unaffected.

🤖 Generated with Claude Code

…, surface-aware tooltip

Three changes scoped to MenuBarExtraController and MenuBarIconRenderer.

1. Replace the menu bar glyph. The status-item icon was rendering the
   canonical cmux right-pointing chevron from `Icon Center Image
   Artwork.svg`, a brand conflict for c11 users. Swap it for an
   "Open-Center Plus": a four-armed cardinal cross with a centered
   square cutout, derived from the c11 app icon's four-fold tile motif.
   Retune the glyph rect from `(1.2, 1.5, 11.6, 15.0)` to a square
   `(1.0, 1.0, 11.0, 11.0)` so the symmetric plus reads square. Stays a
   single fill path with template-image recoloring; badge draw on top
   is unchanged.

2. Remove the Integrations submenu. The "Install Claude Code / Codex /
   OpenCode / Kimi" submenu pointed at `c11 install <tui>`, a direction
   the project doc explicitly rejects. Pure delete of `integrationsItem`,
   `integrationsSubmenu`, `rebuildIntegrationsSubmenu`,
   `currentInstalledIntegrations`, `installIntegrationAction`, and the
   `openIntegrationInstallSurface` AppDelegate helper that only the
   submenu called.

3. Enrich the status-item hover tooltip. With unread notifications,
   append the deduplicated surface titles below the count on a second
   line: "c11: 3 unread notifications\\nTitle A · Title B · Title C".
   Capped to maxInlineNotificationItems entries with a trailing ellipsis
   when there are more.

Three `menu.integrations*` entries in `Resources/Localizable.xcstrings`
are now orphaned. Cleanup left for a follow-up sweep alongside other
xcstrings maintenance to avoid co-mingling with About-panel work
already in flight on that file.

Build: tag `menubar-glyph` succeeds; running instance verified to load
and draw the new glyph. Visual verification of the menu (Integrations
gone) and tooltip (surface titles on second line) is the operator's
test plan.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@BenevolentFutures
BenevolentFutures merged commit e8335c7 into main May 3, 2026
4 of 6 checks passed
@BenevolentFutures BenevolentFutures mentioned this pull request May 4, 2026
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant