Skip to main content
1

dsh-plugin-ui-zoom

1700563146/dsh-plugin-ui-zoom

Whole-interface zoom for the DSH Web UI from 70% to 160%, driven by Ctrl+wheel, DSH's shortcut center or an inline pill, with content-width compensation so zooming out fits more text instead of narrowing the column.

Install

dsh plugin --profile web add github:1700563146/dsh-plugin-ui-zoom

README

dsh-plugin-ui-zoom

Whole-interface zoom for DeepSeek Harness (DSH): scale the entire Web UI — sidebar, menus, modals, icons and text — from 70% to 160%.

Built-in DSH font size only affects conversation prose. This plugin scales everything, and compensates the layout so zooming out shows more text per line instead of a narrower reading column.

Features

  • Ctrl+wheel zoom, 5% per notch, accumulated over trackpads so a two-finger swipe does not jump ten steps
  • Keyboard shortcuts registered with DSH's own shortcut center (Mod+= / Mod+- / Mod+0 on Desktop, Mod+Alt+… on Web), so they appear in Mod+/ and users can rebind them
  • Inline pill next to the composer: − 100% +, click the percentage to reset
  • Range 70%–160%, remembered per origin in localStorage (dsh-ui-zoom)
  • Content-width compensation: the host caps the reading column at 920px, so the cap is scaled by 1 / zoom, keeping the column's physical width stable
  • Cleans up after itself: removing the plugin restores the document and drops every listener and command

Install

Install it from the Plugins page in DSH (search the npm name), or:

dsh plugin --profile <profile> add dsh-plugin-ui-zoom

Restart dsh web afterwards.

Usage

ActionDesktopWeb
Zoom inCtrl/⌘ + wheel, Mod+=Ctrl+Alt+=
Zoom outCtrl/⌘ + wheel, Mod+-Ctrl+Alt+-
Reset to 100%click the percentage, Mod+0Ctrl+Alt+0

Mod is ⌘ on macOS and Ctrl on Windows/Linux. All three bindings are editable in DSH's keyboard shortcut panel (Mod+/); the plugin registers through ctx.shortcuts, so duplicate or overlapping bindings are rejected by the harness instead of silently double-firing.

Why it scales the document root

Most DSH font sizes are hard-coded pixels with no rem ladder, so overriding design tokens cannot scale the whole interface. zoom on document.documentElement participates in layout, so the layout viewport, position: fixed menus and overlays, and hit testing all follow — unlike transform: scale(), which creates a containing block that traps fixed elements.

Compatibility

  • engines.dsh: >=0.2.0-rc.2 <0.3.0-0
  • Peer: @deepseek-ai/cordis ^4.0.1
  • No build step, no runtime dependencies

Known limitations

  • If you have dragged the conversation width handle, the host stores its own inline width and it wins over this plugin's compensation; zooming out then scales the column proportionally.
  • On Web (a real browser tab), Ctrl+wheel is the browser's page zoom and cannot be intercepted; use the Alt bindings there.
  • The plugin scales the document root, so host controls are scaled as well — same as browser zoom.

License

MIT

Related plugins