Skip to content

Let hidden sidebar peek without resizing terminals - #280

Draft
OpenSource03 wants to merge 1 commit into
thdxg:mainfrom
OpenSource03:fix/sidebar-autohide-overlay
Draft

Let hidden sidebar peek without resizing terminals#280
OpenSource03 wants to merge 1 commit into
thdxg:mainfrom
OpenSource03:fix/sidebar-autohide-overlay

Conversation

@OpenSource03

Copy link
Copy Markdown
Contributor

What

Adds an overlay peek style for the hidden sidebar alongside the existing resize behavior. The overlay is resizable, keeps the terminal geometry fixed, and uses a rounded Liquid Glass surface on macOS 26+ with a native material fallback.

Why

The existing hover peek opens the NavigationSplitView column, which resizes and reflows the terminal every time the sidebar appears. The overlay option keeps terminal content stable while preserving the normal pinned sidebar.

How

  • Keeps the native sidebar column hidden during overlay peeks, preventing duplicate sidebars.
  • Uses a 24pt activation zone and a 440ms dismissal grace period so edge overshoot does not immediately close it.
  • Derives panel roundness from the live NSWindow corner radius with concentric inset geometry.
  • Adds a native AppKit resize band and persists width through the existing sidebar preference.
  • Adds a Peek style picker while retaining the existing resize mode as the default.

Verified

  • mise run format, mise run lint, and mise run test all pass
  • Built and ran the change in the app (mise run run) and confirmed the behavior
  • Added tests for corner-radius geometry and resize clamping

Notes for reviewers

The head branch is based directly on upstream main at 0218e8c.

@github-actions github-actions Bot added area:ui Views, Settings UI area:tests Test changes area:docs Documentation labels Aug 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Window-state benchmark

State Metric main (median of 10 runs) this branch Δ
focused CPU % 1.00 1.00 +0%
Memory (RSS MB) 110.7 110.0 -1%
CPU ms/s (powermetrics) 9.7 9.7 +1%
Wakeups/s (powermetrics) 166.9 166.8 -0%
workload-focused CPU % 2.50 2.20 -12%
Memory (RSS MB) 167.0 167.5 +0%
CPU ms/s (powermetrics) 23.9 22.0 -8%
Wakeups/s (powermetrics) 264.6 286.1 +8%
workload-unfocused CPU % 2.50 2.50 +0%
Memory (RSS MB) 170.1 172.1 +1%
CPU ms/s (powermetrics) 24.5 22.9 -6%
Wakeups/s (powermetrics) 272.1 284.5 +5%

Reported value is the median of 3×10s windows per state (splitting the window and taking the median keeps one co-scheduled spike from skewing a state); CPU % is the process CPU-time delta over a window. Runs land on different shared runners, so treat small deltas as noise — 🔺/🔻 marks changes ≥25% that also clear the metric's absolute noise floor (CPU % ≥0.5, Memory (RSS MB) ≥25, CPU ms/s ≥5, Wakeups/s ≥50); CPU deltas off a noise-dominated baseline aren't flagged (CPU % baseline ≥1.5, CPU ms/s baseline ≥15). The benchmark:regression / benchmark:improvement label needs corroboration — ≥2 flagged metrics in the same direction, at least one under workload — so a lone noisy cell shows its arrow here without tagging the PR.

The baseline column pools the last 10 successful main runs (newest main@0218e8cc0) as a per-metric median, so one anomalous main run can't skew the reference.

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

Labels

area:docs Documentation area:tests Test changes area:ui Views, Settings UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant