dsh-terminal-keybar:DSH Web 终端触控键栏

前言

在手机上打开 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

典型用法

  1. 在手机上打开 DSH Web。
  2. 在右侧边栏打开一个终端标签。
  3. 屏幕右缘出现键列,点击即可输入;软键盘收起时同样可用。

适用场景与已知限制

适合:经常在手机或平板浏览器里用 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。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye