Skip to content

feat(desktop): let the status bar be hidden - #72960

Merged
OutThisLife merged 2 commits into
mainfrom
bb/desktop-statusbar-toggle
Jul 27, 2026
Merged

feat(desktop): let the status bar be hidden#72960
OutThisLife merged 2 commits into
mainfrom
bb/desktop-statusbar-toggle

Conversation

@OutThisLife

@OutThisLife OutThisLife commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

The status bar is always-on chrome today. This makes it something you can put
away, defaulting on and remembering the choice per window profile.

Three doors, matching the set VS Code offers: ⌘⇧S (rebindable in the keybinds
panel), the ⌘K palette, and a "Hide status bar" row at the bottom of the bar's
own right-click menu. The palette entry matters more than it looks — hiding the
bar removes the surface that would otherwise offer it back, so it's the
guaranteed way in. The context-menu row carries a live keybind hint for the same
reason, and that menu now renders even when no item opted into the existing
show/hide checkbox list.

On the keybinding: VS Code ships workbench.action.toggleStatusbarVisibility
with no default at all, because their ⌘K layout commands are two-stroke chords
and ⌘K ⌘S is already Keyboard Shortcuts. Hermes has no chord dispatcher, so
this takes the nearest free single combo instead. mod+shift+s is Cmd on macOS
and Ctrl elsewhere, and collides with nothing on either platform — worth noting
that canonicalizeCombo folds literal ctrl+* bindings into mod+* off macOS,
so a ctrl+shift+s elsewhere in the map would have collided on Windows/Linux
but not on a Mac. There isn't one. It sits with the other view.toggle* singles
(⌘B, ⌘J, ⌘G).

Hidden unmounts the bar rather than hiding it with CSS, so its 15s status poll
and the per-turn readouts stop along with it.

Pane tab strips

Second commit, same surface-level theme. The pane tab strips painted with
--theme-card-seed — the raw, unmixed seed rather than a surface token — so
they read as their own band beside the sidebar and titlebar, which share
--ui-bg-sidebar.

This is fixed at the default in PaneTab rather than per strip, because the
right-rail preview strip never set the vars at all: its container was already on
the sidebar surface while its inactive tabs fell through to the seed. Correcting
the fallback fixes that strip for free and keeps the next one from regressing.
With the default right, the two zone strips no longer need to redeclare the var
and paint the token directly.

Active tabs stay legible on the flattened strip — the horizontal ones keep the
2px --theme-primary underline and text-foreground, and the vertical rail's
active tab still sits on the editor surface.

Test plan

  • npm run typecheck clean
  • npx eslint clean on changed files
  • npx vitest run src/app/shell/statusbar-visibility.test.tsx src/components/ui/pane-tab.test.tsx — 13/13
  • hgui: ⌘⇧S hides the bar and the workspace grows into the row; ⌘K "status bar" brings it back; right-click row shows the live hint
  • hgui: pane header, collapsed vertical rail, and right-rail preview strip all read as one surface with the sidebar and titlebar

The bar is always-on chrome today. Hiding it is `⌘⇧S`, the ⌘K palette, or
the bottom row of its own right-click menu — VS Code's set of doors, minus
their unbound default (they ship `toggleStatusbarVisibility` with no
keybinding and Hermes has no chord dispatcher for a `⌘K ⌘S` two-stroke).

Hidden unmounts the bar rather than hiding it, so the 15s status poll and
the per-turn readouts stop with it. Visibility persists per window profile
and defaults on.
@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have comp/desktop Electron desktop app (apps/desktop/*) needs-decision Awaiting maintainer decision before any implementation labels Jul 27, 2026
@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

૮ >ﻌ< ა ci review

ran on f4e042f

ℹ️ Info

Desktop E2E visual evidence · View test artifacts · View job

1 visual diff.

inline evidence is publishing...

The strips painted with `--theme-card-seed` — the raw, unmixed seed rather
than a surface token — so they read as their own band beside the sidebar and
titlebar, which share `--ui-bg-sidebar`.

Fixed at the default in `PaneTab` rather than per strip. The right-rail
preview strip never set the vars at all, so its inactive tabs fell through
to the seed even though its container was already on the sidebar surface;
correcting the fallback fixes that one for free and keeps the next strip
from regressing. With the default right, the two zone strips no longer need
to redeclare the var and paint the token directly.
@OutThisLife
OutThisLife enabled auto-merge July 27, 2026 23:03
@OutThisLife
OutThisLife merged commit a19cfa4 into main Jul 27, 2026
31 checks passed
@OutThisLife
OutThisLife deleted the bb/desktop-statusbar-toggle branch July 27, 2026 23:10
randlee pushed a commit to randlee/hermes-agent that referenced this pull request Aug 11, 2026
…atusbar-toggle

feat(desktop): let the status bar be hidden
33hodl pushed a commit to 33hodl/hermes-agent that referenced this pull request Aug 12, 2026
…atusbar-toggle

feat(desktop): let the status bar be hidden
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/desktop Electron desktop app (apps/desktop/*) needs-decision Awaiting maintainer decision before any implementation P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants