-
feat(linux): hybrid titlebar mode for clickable in-app topbar (#538)
发布于
2026-05-01 06:47:16 +00:00 - feat(linux): hybrid titlebar mode for clickable in-app topbar
Default
CLAUDE_TITLEBAR_STYLEis nowhybrid: native OS frame
plus a BrowserView preload shim that convinces claude.ai's bundle
to render its in-app topbar (hamburger / sidebar / search / nav /
Cowork ghost). Stacked layout instead of Windows's combined bar,
but every button is clickable.Why not the upstream
frame:false+ WCO config: investigation
(see docs/learnings/linux-topbar-shim.md) ruled out
titleBarOverlay,titleBarStyle:'hidden', and the.draggable
CSS class as the source of the topbar click-eating drag region.
The remaining cause is a Chromium-level implicit drag region for
frame:falsewindows that exists on both X11 and Wayland and has
no Electron-API knob. Withframe:truethe OS handles dragging
and Chromium pushes no drag-region map, so the buttons receive
mouse events normally.Modes:
hybrid(default) — system frame + shim, topbar visible and
clickablenative— system frame, no shim, no in-app topbarhidden— frameless + WCO config, matches Windows/macOS
upstream; topbar visible but not clickable on Linux. Kept for
Wayland comparison and future investigation
Tests: tests/launcher-common.bats grew 16 cases covering
_resolve_titlebar_style,build_electron_argsflag selection
per mode, andsetup_electron_envenv-var wiring per mode.
claude-desktop --doctornow reports the resolved mode and
warns whenhiddenis set.Co-Authored-By: Claude claude@anthropic.com
- docs(learnings): add hybrid-mode screenshot
Visual reference of the stacked layout: DE-drawn titlebar on top
with native window controls, claude.ai's in-app topbar
(hamburger / search / back-forward) immediately below it.Co-Authored-By: Claude claude@anthropic.com
- docs(learnings): fix codespell hit (Pre-emptive → Preemptive)
Codespell flags hyphenated "Pre-emptive" as a misspelling of
"Preemptive". Drops the hyphen to clear the spellcheck CI gate
on PR #538.Co-Authored-By: Claude claude@anthropic.com
Co-authored-by: Claude claude@anthropic.com
下载附件