Skip to content

feat(desktop): add persistent UI scaling - #99

Open
katulevskiy wants to merge 2 commits into
mirror/upstream-mainfrom
mirror/upstream-pr/705
Open

katulevskiy wants to merge 2 commits into
mirror/upstream-mainfrom
mirror/upstream-pr/705

Conversation

@katulevskiy

Copy link
Copy Markdown
Owner

Upstream mirror

Source: zeronsh#705
Original author: @katulevskiy
Original revision: fedfdd8e5737925db442bacfeb24ac5d9ae60850

This PR is an isolated Contribution Manager pilot mirror. Its reviews, checks and merge state are separate from upstream. An empty [skip ci] commit suppresses automatic bulk CI; the code tree matches the imported upstream revision.


Add persistent whole-interface scaling in Settings → Appearance → Interface scale. The minus/plus controls and Ctrl+Shift+Plus / Ctrl+Shift+Minus adjust the UI from 50% to 200% in 10-point steps; Ctrl+Shift+0 resets to 100%. macOS also accepts Command equivalents.

Text, icons, spacing, and panes scale together without changing font preferences or native window dimensions. The device-local preference saves immediately and restores on startup. Pointer hit testing, pixel scrolling, IME coordinates, and native browser placement follow the selected scale. Reserved zoom shortcuts survive keymap edits and work from settings and a focused conversation composer.

Supporting dependency

Depends on zeronsh/zui#14, which adds independent GPUI window scaling. A temporary pinned Cargo patch makes this branch build and keeps GPUI and gpui-base on the same types. After that change merges, replace the patch with the upstream revision before merging this PR.

Validation

  • All 1,433 Zeron UI tests passed (cargo test --locked -p zeron-ui --lib -- --test-threads=1).
  • Both supporting GPUI scale regression tests passed.
  • Desktop cargo check --locked -p zeron passed.
  • Native Linux fixture checks shortcuts, immediate persistence, retained zoom after native bounds updates, and reset; captures use an isolated profile without engine/model calls.
  • macOS/Windows live platform verification remains outstanding.

Screenshots

The same 1440 × 1080 native app window at each scale. Captured from the production shell using the reproducible fixture documented in docs/ui-scale.md.

Dark · 100% Dark · 150%
Appearance at 100% Appearance at 150%

Light · 120%:

Appearance in light mode at 120%


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@contribution-manager-katulevskiy

Copy link
Copy Markdown

Contribution Manager

needs triage · medium risk · untriaged

Open review workspace · Revision aafc256f

Next actions:

  • Direction decision needed
  • Scope, risk, and platform triage needed
  • Independent code review needed
  • Required check: core-tests (missing)

This summary is maintained by the review app. Decisions and test evidence are recorded in the workspace; the app does not merge PRs.

@contribution-manager-katulevskiy contribution-manager-katulevskiy Bot added review:needs-triage Managed by Contribution Manager cm:inbox Contribution Manager: waiting for triage and removed review:needs-triage Managed by Contribution Manager labels Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cm:inbox Contribution Manager: waiting for triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant