前言¶
DSH 的 Web GUI 按桌面布局设计:左侧栏常驻,主区占剩余宽度。在手机上打开时,侧栏会被挤压成很窄的一列,内容区也跟着变窄,点按输入框还可能触发 iOS 的聚焦放大。直接缩放或者用手机浏览器的桌面模式都不好用。
下面介绍的 dsh-mobile 就是针对这个场景的插件。它只做一件事:在窄屏下重排 Web GUI,桌面宽度下完全不介入。
这是什么¶
dsh-mobile 由 cyilin36 维护,属于客户端类插件,定位是「Phone-responsive layout for the DeepSeek Harness(DSH)Web GUI」。它解决三个具体问题:
- 窄屏下侧栏占掉太多宽度,主内容区无法正常阅读和输入;
- 刘海屏和手势条遮挡页面边缘内容;
- 触屏上的双击缩放延迟、输入框聚焦放大等浏览器默认行为干扰操作。
插件在 DSH「一切皆插件」的思路下以 bundle 形式提供,按需装入 profile 的 package.json 依赖。
核心功能¶
侧栏变抽屉。 视口宽度 ≤ 1023px 时,侧栏离开网格变成可滑出的抽屉,主内容占满整屏。会话页左上角的 ☰ 打开抽屉;点遮罩、按 Esc、点会话行后自动收起。没有会话头的页面(插件页等)用左上角的悬浮按钮打开。
安全区留白。 插件补上 viewport-fit=cover,用 env(safe-area-inset-*) 让刘海屏状态栏、底部手势条不再压住内容。
触屏优化。 去掉双击缩放延迟,隐藏桌面拖拽调宽手柄,输入框设置为 16px 以避免 iOS 聚焦时自动放大页面。
设置页变单列。 顶部「设置」标题加一行可横滑的分类标签,选项全宽显示。第三方设置页(例如插件市场的设置)也保留这排标签,不会出现点进去之后没有返回入口的情况。
桌面惰性。 在 ≥ 1024px 宽度下,插件不注入布局样式、不运行 DOM 观察器,只保留一个未被使用的样式表和插槽条目。开发者在桌面浏览器上修改或调试 GUI 时不会受到插件影响。
安装与启用¶
安装有两种等价方式。第一种是在 DSH 的插件管理器里安装 GitHub 包:
install_bundle target: github:cyilin36/dsh-mobile
第二种是在 DSH Web 的「设置 → 插件」里添加依赖 github:cyilin36/dsh-mobile。安装完成后,插件列表中会出现「手机响应式适配 / Mobile Responsive Layout」。
profile 的 package.json 依赖和 bundle 列表由 DSH 插件管理器维护,不要把上面的命令手写进配置。
典型用法¶
插件不需要配置项。手机或窄窗口打开 GUI 后即生效。
如果临时需要桌面布局,在页面 URL 上加 ?dsh-mobile=off 即可恢复,适合在手机上排查 GUI 问题时对比两种布局。不需要继续使用时,在插件列表里禁用或卸载 dsh-mobile。
适用场景与注意¶
适合在手机上使用 DSH Web GUI、需要随时查看会话或调整设置的开发者和运维人员;也适合用窄窗口调试响应式行为的前端同学。
有几点需要注意:
- 插件只在 ≤ 1023px 生效,桌面宽度下不会改变布局。
- 不要和其他接管窄屏布局的插件同时开启,例如 dsh-pocket 的移动端适配,两者会互相覆盖样式。
- 插件依赖宿主 DOM 结构(AppFrame、
data-sidebar-collapsed、data-*会话钩子)。DSH 大版本升级后若这些钩子变动,需要跟随插件更新;类名后缀兜底的装饰规则失配时只会少一条装饰,不会破坏布局。 - iOS Safari 的地址栏收放、软键盘遮挡属于浏览器自身行为,插件只保证安全区和视口宽度正确。
- 插件以当前 DSH 进程的权限运行。安装前应先查看源码(仓库公开)和许可证(MIT),确认依赖和行为符合你的部署要求。
小结¶
dsh-mobile 做的事很窄:把 DSH Web GUI 在窄屏下重排成抽屉布局,补上安全区和触屏细节,桌面宽度下完全惰性。没有配置项,装上即用。
- 目录页:https://www.skillhub.cn/plugins/cyilin36/dsh-mobile
- GitHub:https://github.com/cyilin36/dsh-mobile