Skip to content

dsh-plugin-ui-zoom

Verified

dsh-plugin-ui-zoom · v0.1.2 · MIT · Web UI

Whole-interface zoom for DeepSeek Harness: 70%–160% via Ctrl+wheel, the DSH shortcut center, or an inline pill — with content-width compensation so zooming out shows more text instead of a narrower strip.

Install

dsh plugin add dsh-plugin-ui-zoom

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Readme

dsh-plugin-ui-zoom

DeepSeek Harness(DSH)的整界面缩放插件:侧栏、菜单、弹层、图标、文字一起放大缩小,范围 70%–160%。

DSH 内置的「正文字号」只影响会话正文;这个插件缩放整个界面,并且做了版面补偿 —— 缩小时是一行塞进更多字,而不是把阅读栏缩成一条窄带。

功能

  • Ctrl+滚轮连续缩放,每档 5%;触控板的小 delta 会累积,双指一划不会跳十档
  • 快捷键注册进 DSH 自己的快捷键中心(桌面端 Mod+= / Mod+- / Mod+0,Web 端加 Alt),因此会出现在 Mod+/ 面板里,用户可以自己改键
  • 输入框旁一枚 胶囊控件:− 100% +,点中间的百分比回到 100%
  • 范围 70%–160%,按源记在 localStorage(键 dsh-ui-zoom)
  • 正文栏宽度补偿:宿主把阅读栏上限写死成 920px,插件按 1 / 缩放 放大这个上限,保持栏的物理宽度不变
  • 卸载即还原:摘掉所有监听、注销所有命令、把文档恢复原样

安装

在 DSH 的插件页搜索包名安装,或者:

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

装完重启 dsh web。

用法

操作 桌面端 Web
放大 Ctrl/⌘ + 滚轮、Mod+= Ctrl+Alt+=
缩小 Ctrl/⌘ + 滚轮、Mod+- Ctrl+Alt+-
回到 100% 点百分比、Mod+0 Ctrl+Alt+0

Mod 在 macOS 是 ⌘、在 Windows/Linux 是 Ctrl。三条命令都能在 DSH 的快捷键面板(Mod+/)里改;插件走 ctx.shortcuts 注册,所以重复或重叠的键位会被宿主拒绝,而不是静默地触发两次。

怎么做的

DSH 的字号大多是硬编码像素,没有 rem 阶梯,所以改设计 token 覆盖不到整个界面。zoom 参与布局,命中测试和固定元素都会跟着走 —— 而 transform: scale() 会造出一个假的包含块,把 fixed 元素困在里头。

所以缩放加在 document.documentElement 上(布局只有这一种做法是正确的),然后单独把浮层抵消掉:

  • 宿主的浮层全部 portal 到 document.body(MenuSurface → createPortal(list, document.body)、HoverCard → createPortal(content, document.body)),第三方插件复用同一套组件,也在其中。
  • 它们用 getBoundingClientRect() 拿到已含缩放的屏幕像素,再写回 left/top;如果写入落在缩放坐标系里,会被二次放大 —— 120% 时菜单往右下偏 20%,跑出屏幕。
  • 插件注入一条规则让 body 直接挂的浮层容器反向缩放 1/zoom,有效缩放回到 1,坐标数学恢复正常。

试过的错误方向:只缩放 #root 再补 width/height: calc(100%/zoom)。zoom 不缩放元素自身的盒子,补宽高反而把可见尺寸压成 1/zoom —— 放大时整块界面贴向左上、缩小时溢出右下。别再往那个方向改。

兼容性

  • engines.dsh:>=0.2.0-rc.2 <0.3.0-0
  • peer:@deepseek-ai/cordis ^4.0.1
  • 无构建步骤、无运行时依赖

已知限制

  • 浮层不跟着缩放。 菜单、下拉、悬停卡片保持 100% 尺寸(位置是对的);在没有宿主级页面缩放的前提下,「位置正确」和「尺寸一致」不可兼得,这里选位置正确。
  • 手动拖过会话列宽后,宿主会写自己的内联宽度,优先级高于本插件的补偿;那时缩小仍会等比缩放。
  • 在真实浏览器标签页里(Web 模式),Ctrl+滚轮 是浏览器的页面缩放,页面拦不住;那种环境请用带 Alt 的键位。

许可

MIT