Skip to content

Text size and zoom for the window - #127

Merged
HarryCordewener merged 1 commit into
mainfrom
claude/project-thread-qkzq7v
Nov 10, 2026
Merged

HarryCordewener merged 1 commit into
mainfrom
claude/project-thread-qkzq7v

Conversation

@HarryCordewener

Copy link
Copy Markdown
Member

Requested by Grave · project thread

What this does

Users can now set font sizes per area and zoom the window the way a browser does.

  • Zoom (window only): 50–300% in browser steps. Ctrl+= / Ctrl+- / Ctrl+0, Ctrl+wheel, the output's right-click menu, and ⌃P (zoom in, out, reset). The zoom is saved in config.json (display.zoom).
  • Text size & zoom page (Client BuiltInSettings.TextSize, ⌃P ▸ Text size & zoom…): output points, plus four areas: composer text, interface (header, sidebar, tabs, status row, toasts), panels (vitals, who-here, quick bar, map) and menus & dialogs.
  • Cells keep a real font size (points × zoom). Glyphs stay crisp, panes are re-measured, and NAWS follows. Native views are scaled (NativeScale.Cover / Wrap). Chrome insets grow on the 4 px grid and are exact at 100%, so nothing moves at the default sizes. Hairlines stay one device pixel.
  • Panels drawn larger keep their layout:
    • The vitals card takes the rows its gauges need at the panel scale.
    • The map's look buttons wrap.
    • The docked composer drops Preview (F1 still has it) rather than squeezing it.
  • Terminal: lists none of this, because its text belongs to the emulator. /help ▸ Text size points to the terminal's own zoom. --emulated keeps the zoom and has no page.

Screenshots: https://claude.ai/artifact/NkdNQt9s44VWG5uy7ZBxsU

Tests

  • New: DisplaySettingsTests (Core), TextSizeTests (Tui), TextScaleTests (Avalonia). TerminalZoomTests was updated for the stepped zoom.
  • The parity harness sets TextSize = null, the same way it handles the other window-only hosts.
  • Ran all seven suites locally and they are green, except Core's AReadOnlyCacheDirectory_DegradesToMemoryOnly, which fails only when tests run as root.

Not done

A dialog or floating window that is open during a zoom change keeps its old scale until it is reopened.


Generated by Claude Code

The window zooms as a browser does (50-300%; Ctrl+= / Ctrl+- / Ctrl+0,
Ctrl+wheel, the right-click menu and the command palette), saved in the
configuration. A Text size & zoom settings page sets the output's point
size and four areas: composer text, interface, panels, menus & dialogs.
The cells keep a real font size, so glyphs stay crisp and NAWS follows;
native views are scaled and the chrome insets grow on the 4 px grid.

The terminal lists none of it: its text is the emulator's. Help says to
use the terminal's own zoom. --emulated keeps the zoom, with no page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rqqt7TCdBPKDhhi63cHux3
@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Explain Change →

Caution

Review failed

The pull request is closed.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@HarryCordewener
HarryCordewener marked this pull request as ready for review November 10, 2026 23:53
@HarryCordewener
HarryCordewener merged commit d2eea30 into main Nov 10, 2026
4 checks passed
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