dsh-mobile:把 DSH Web 界面搬到手机上的客户端插件

前言

DSH 的 Web GUI 按桌面布局设计:左侧栏常驻,主区占剩余宽度。在手机上打开时,侧栏会被挤压成很窄的一列,内容区也跟着变窄,点按输入框还可能触发 iOS 的聚焦放大。直接缩放或者用手机浏览器的桌面模式都不好用。

下面介绍的 dsh-mobile 就是针对这个场景的插件。它只做一件事:在窄屏下重排 Web GUI,桌面宽度下完全不介入。

这是什么

dsh-mobile 由 cyilin36 维护,属于客户端类插件,定位是「Phone-responsive layout for the DeepSeek Harness(DSH)Web GUI」。它解决三个具体问题:

  1. 窄屏下侧栏占掉太多宽度,主内容区无法正常阅读和输入;
  2. 刘海屏和手势条遮挡页面边缘内容;
  3. 触屏上的双击缩放延迟、输入框聚焦放大等浏览器默认行为干扰操作。

插件在 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜