dsh-plugin-ui-zoom
Verifieddsh-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