Skip to content

feat(mac): add a text size menu and open the panel with a click on the bar - #90

Merged
dcolinmorgan merged 3 commits into
dcolinmorgan:mainfrom
null1979:pr/mac-panel-size-click
Oct 16, 2026
Merged

dcolinmorgan merged 3 commits into
dcolinmorgan:mainfrom
null1979:pr/mac-panel-size-click

Conversation

@null1979

@null1979 null1979 commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Change

  • Text Size submenu: Larger, Smaller, and presets from 100% to 200% in steps of 10%. The value goes in herdi_ui_scale, and the panel rebuilds with no relaunch. The default is 120%.
  • reloadLayout() uses the same path as a screen change: a new view tree and a new window frame.
  • A click on the bar opens the panel. A click while it is open closes it, and closes an open approval card. The click cancels a pending hover timer, so the panel does not open again.

Screenshot

The status menu with the Text Size submenu open.

pr90-text-size

Test: herdi-mac/test.sh and tests/run.sh pass.

Merge note: this PR and #89 both add items above "Launch at Login" in the status menu. The second one to merge needs a rebase there. Keep one separator between the two groups.

A bar click on an open approval card closes it the way main closes a dismissed card. #88 adds collapse(dismissing:), which also gives the keyboard back. Whichever of #88 and #90 merges second must change the bar click to call controller.collapse(dismissing: agentId).

@null1979
null1979 force-pushed the pr/mac-panel-size-click branch from 4ead1e8 to 9e25e2f Compare October 15, 2026 18:02
@null1979
null1979 marked this pull request as ready for review October 15, 2026 18:02
@null1979
null1979 force-pushed the pr/mac-panel-size-click branch from 9e25e2f to 6b2946b Compare October 15, 2026 19:12
The status menu gets a Text Size submenu. It has Larger, Smaller, and
presets from 100% to 200% in steps of 10%. The menu stores the value in
herdi_ui_scale. Then it rebuilds the panel, so you see the change with
no relaunch.

reloadLayout() on the panel controller uses the same path as a screen
change. It makes a new view tree and sets a new window frame. Each size
that the scale touches gets measured again.

When no value is stored, the scale is 120%.
A click on the bar opens the panel at once. A click while the panel is
open closes it, and an open approval card closes as if waved away. Hover
still opens the panel as before. The click cancels a pending hover timer,
so the timer does not reopen the panel after the click closes it.
@dcolinmorgan
dcolinmorgan force-pushed the pr/mac-panel-size-click branch from 6b2946b to 03d8b34 Compare October 16, 2026 09:27
… stick

The menu stored herdi_ui_scale and nothing read it: the panel kept its fixed
580x420 frame and its literal font sizes, so every percentage redrew the same
panel. TextSize now owns the key, the clamp and the steps, the window grows
with the scale, and the content below the notch is magnified as laid out. The
notch bar is left alone so it still lines up with the hardware.

Closing the session list with a click also marks what is blocked, or the
one-second poll reopened the panel as an approval card straight away, and
reloadLayout now replaces the root view in place rather than the hosting view,
which used to drop the panel's state and leave a hover timer behind.
@dcolinmorgan
dcolinmorgan force-pushed the pr/mac-panel-size-click branch from 03d8b34 to 4e56ce2 Compare October 16, 2026 09:29
@dcolinmorgan
dcolinmorgan merged commit 21e292b into dcolinmorgan:main Oct 16, 2026
3 checks passed
@null1979
null1979 deleted the pr/mac-panel-size-click branch October 20, 2026 16:14
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.

2 participants