前言¶
在手机上打开 DSH Web 并切到终端标签时,系统软键盘通常没有 Esc、Tab、Ctrl 和方向键。vim、less、readline 补全和命令历史都依赖这些键,缺了它们终端几乎没法正常用。桌面浏览器自带完整键盘,一般不需要额外 UI;触控设备则是另一类问题。
下面介绍社区插件 dsh-terminal-keybar(维护者 miiy,分类:客户端)。它在触控设备上、且仅在终端标签激活时,在屏幕右侧浮出一列半透明按键,把缺失的键直接写入当前可见的 Web 终端。
这是什么¶
dsh-terminal-keybar 是面向 DSH Web 终端的触控键栏:纯浏览器端 bundle,不复制终端代码、不修改 DSH 本体;通过公开的 webTerminals 服务向当前终端写入字节。README 说明其仅在 touch 设备 且 终端 tab 处于活动状态 时出现,桌面端不受影响;软键盘弹出时会在可见区域内居中,避免 iOS 把键栏顶出屏幕。
当前 package 版本为 1.0.1,许可证 MIT,仓库:https://github.com/miiy/dsh-terminal-keybar。目录页:https://www.skillhub.cn/plugins/miiy/dsh-terminal-keybar。
核心功能¶
键位与发送内容¶
| 按钮 | 发送 | 典型用途 |
|---|---|---|
Esc |
\x1b |
退出 vim 插入模式、关闭 less 等 |
Tab |
\t |
路径与命令补全 |
↵ |
\r |
执行命令 |
^C |
\x03 |
中断正在运行的命令 |
↑ ↓ |
ESC [ A / ESC [ B |
历史、菜单、vim 移动 |
← → |
ESC [ D / ESC [ C |
行内移动 |
交互设计¶
- 竖排、半透明,尽量不挡住终端底部内容。
- 使用
pointerdown并preventDefault(),终端保持焦点,软键盘可保持打开,便于同一 session 里既打字又点方向键。 - 键栏约占终端最右侧约 46px;可在
client.js的styles.bar调整opacity/right。
平台范围¶
package.json 中 dsh.client.platform 为 web;仅影响 Web 端,DSH Desktop 原生窗口不受影响。
安装与启用¶
插件以当前 DSH 进程权限运行;安装前建议自行查看仓库源码与 MIT 许可证。DSH 社区目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系。
方式一:Host installBundle(安装并启用)¶
在对话里让 Agent 执行,或在 Settings → Plugins 的安装框粘贴同一 spec:
install the plugin `github:miiy/dsh-terminal-keybar`
或安装 spec:
github:miiy/dsh-terminal-keybar
上述方式会调用 Host 的 installBundle:安装包、写入 dsh.profile.bundles 并热生效,一步完成。
方式二:CLI(仅安装,需手动开启)¶
dsh plugin --profile <profile> add github:miiy/dsh-terminal-keybar
dsh plugin 会把参数转给 profile 目录内的 pnpm,不会自动 compose。安装后 Settings → Plugins 里会显示为已安装但关闭;打开开关才会加入 dsh.profile.bundles。若开关未即时生效,可重启 dsh web。
纯 JavaScript bundle 无 build 脚本,git 安装一般不需要 allowBuilds 审批。接受的 spec 形式包括常见的 github:user/repo、git+https://…、绝对本地路径或 npm 包名。
方式三:本地 checkout(开发)¶
plugin_manager install_bundle /absolute/path/to/dsh-terminal-keybar
典型用法¶
- 在手机上打开 DSH Web。
- 在右侧边栏打开一个终端标签。
- 屏幕右缘出现键列,点击即可输入;软键盘收起时同样可用。
适用场景与已知限制¶
适合:经常在手机或平板浏览器里用 DSH Web 终端,需要 Esc / Tab / Ctrl-C / 方向键等软键盘缺失键的用户。
注意:
- DECCKM(application cursor keys):插件无法访问 xterm 实例,方向键固定发送 CSI 形式(
ESC [ A等)。bash/readline、vim、less 通常可用;严格要求 SS3(ESC O A)的程序可能不兼容。 - 浮动面板:可见性由活动 pane 的活动 tab 决定;终端被浮到 floating panel 时键栏不会出现。
- 键栏不出现时,可在
client.js顶部打开DEBUG开关查看屏幕诊断徽章;维护说明见仓库MAINTENANCE.md。
结尾¶
dsh-terminal-keybar 用一列半透明触控键补全手机软键盘在 Web 终端上的缺口,安装 spec 为 github:miiy/dsh-terminal-keybar。更多信息见目录页 https://www.skillhub.cn/plugins/miiy/dsh-terminal-keybar 与 GitHub https://github.com/miiy/dsh-terminal-keybar。