DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Centaurea5547196 /

Centaurea5547196/dsh-page-zoom

Verified

Page zoom for DeepSeek Harness: Ctrl + mouse wheel scales the whole UI in 5 percent steps (30-200), with a magnifier percentage readout in the bottom-right corner.

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@67eb6d69

dsh-page-zoom

Page zoom for DeepSeek Harness / DSH Desktop.

Hold Ctrl and scroll the mouse wheel to scale the entire interface — sidebar, menus, settings, overlays and conversation alike. A magnifier glyph with the current percentage sits in the bottom-right corner.

English | 简体中文

Controls

Gesture Result
Ctrl + mouse wheel up Zoom in one step
Ctrl + mouse wheel down Zoom out one step
  • Step: 5% per wheel notch
  • Range: 30% – 200%
  • The level is remembered (localStorage), so it survives a reload.

There are no buttons, no menus and no keyboard shortcuts — the readout is display-only.

The readout

  • Bottom-right corner, 12px / 10px from the edges.

  • A magnifier glyph, then the number. A bare 100% in a corner means nothing on its own; the glyph is the convention browsers and phones already use for this exact reading.

  • Display only: pointer-events: none, so it never intercepts a click and never gets in the way of the UI underneath.

  • No box, no border, no background — it borrows the app's own font stack (--dsw-font-family) and its muted tertiary label colour (--dsw-alias-label-tertiary), so it reads as part of the chrome rather than as a floating widget.

  • Scaled with the page, not against it. The readout grows and shrinks with everything else, and so does its gap from the corner, so it stays proportional to the app's own layout: 47×13 at 100%, 93×26 at 200%, 12×4 at 30%. Whatever it does not cover at 100%, it does not cover at 200% either.

    This works without any arithmetic because a fixed box's visual offset is the declared value multiplied by its own zoom and by every ancestor zoom. Keeping the element's zoom at 1 and the declared inset constant is therefore already linear in the page zoom. Multiplying the value by the level as well makes it quadratic — a declared 24px renders as 48px at 200%.

  • role="img" with an aria-label, deliberately not role="status". status is a live region, so a screen reader would interrupt with "Page zoom 105%", "Page zoom 110%" on every wheel notch.

Install

dsh plugin --profile desktop add github:Centaurea5547196/dsh-page-zoom
dsh plugin --profile web     add github:Centaurea5547196/dsh-page-zoom

If git is not available on the machine, install from the release tarball instead — dsh accepts a remote archive spec:

dsh plugin --profile desktop add https://github.com/Centaurea5547196/dsh-page-zoom/archive/refs/heads/main.tar.gz

How it works

Zoom is the CSS zoom property set on the document element, not transform: scale. zoom reflows layout exactly like the browser's own zoom, so fixed-position chrome keeps working. transform would leave fixed elements clipped and would additionally turn the root into a containing block for every position: fixed descendant.

DeepSeek Harness ships no page zoom of its own: the only typography setting is ui-theme.fontSize, which affects conversation body text only — sidebar labels, menus and settings chrome are fixed pixel sizes. This plugin adds the missing gesture.

The listener sits on window in the bubble phase with { passive: false }, and it yields to any surface that already claimed the event (event.defaultPrevented). That ordering matters: the sidebar's document preview binds its own cursor-anchored Ctrl+wheel zoom on its scrollport and calls preventDefault(). A capture-phase listener on document would fire before that handler ever ran, and stopPropagation() there would kill the preview's zoom outright. Being last in line keeps the preview working while every other surface still falls through to page zoom. It also overrides the browser's native zoom when the Harness is opened in a plain browser tab.

The whole thing is plain DOM — no React surface, no host-side code, no network access, no storage beyond one localStorage key.

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 67eb6d69a37f

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout