DeepSeek Harness 插件

dsh-better-sidebar-terminal-plus

dsh-better-sidebar 的终端增强插件:在内置终端设置中添加「启动项」行,终端启动后自动执行配置的命令,无需注册新的 tab 类型(英文原文)

跳到安装方式

来源信息

GitHub 仓库
dong-victor/dsh-better-sidebar-terminal-plus
最近更新
2026年8月22日
分类
插件开发工具
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-21

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/dong-victor/dsh-better-sidebar-terminal-plus
插件名:dsh-better-sidebar-terminal-plus
作者:dong-victor

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

@dong-victor/dsh-better-sidebar-terminal-plus

dsh-better-sidebar 的终端增强插件:内嵌 Nerd Font 图标字体、修复 xterm 图标渲染缺陷、兜底底部面板遮挡对话框、稳定终端 cwd。

不注册新的 tab 类型 — 直接扩展 dsh-better-sidebar 内置的「终端」tab。

> 历史说明:v0.2.x 的「启动项」(终端启动后自动执行命令)功能已在 v0.3.0 移除—— > dsh-better-sidebar ≥ 0.14.0 已在终端设置中官方提供「Shell 路径 / Shell 参数」 > 配置(可直接把 shell 指到任意可执行文件),该功能不再需要。

安装

dsh plugin --profile web add @dong-victor/dsh-better-sidebar-terminal-plus

功能

  • 内嵌 Nerd Font Symbols 子集:nushell 等 prompt 的 Powerline / Nerd 图标

(U+E0A0-E0FF 等 PUA 码段)不再显示为方块问号(tofu),无需安装系统字体

  • 修复图标「半边」渲染:中和 xterm DOM renderer 写入字符 span 的负

letter-spacing.xterm-rows span{letter-spacing:0 !important}

  • 底部面板遮挡兜底:新版 shell DOM 缺少内置 `[data-dsh-frame] >

[data-pane="conversation"]` 让位锚点时,注入等价的 margin 让位规则, 底部/右侧面板挤压对话列而不是浮在输入框上面

  • 抑制「底部面板自动开终端」:dsh-better-sidebar ≥ 0.14.0 首次展开底部

面板会自动塞入一个终端盖住对话下半屏,本插件通过官方设置路由默认关闭 (仍可在侧边卡片设置中手动开启)

  • 切换工作空间不重载终端:冻结内置 TerminalView 首次挂载时的 cwd,

工作空间切换不再触发 socket 重连 → shell 重启 → 历史清空;切换会话 (对话)仍按预期重挂载

⌨️ 终端快捷键(v0.4.x)

功能按键行为
中断Ctrl+Shift+C向 PTY 发送 ^C(接管原 Ctrl+C 的中断角色)
复制Ctrl+C(macOS 另支持 Cmd+C有选中文本 → 复制到系统剪贴板;无选中 → 原样放行,shell 照常收到 ^C
粘贴Ctrl+V(macOS 另支持 Cmd+V粘贴系统剪贴板(xterm 核心 paste,自动处理换行转换与 bracketed paste mode)

各平台行为

运行表面中断 Ctrl+Shift+C说明
Windows / Linux 的 Chrome 标签页❌ 被浏览器占用Chrome 在浏览器层保留 Ctrl+Shift+C 打开 DevTools,页面收不到该 keydown,任何网页代码都无法覆盖。中断请用无选中的 Ctrl+C
macOS 的 Chrome 标签页✅ 可用macOS Chrome 的 DevTools 检查器是 Cmd+Shift+C(同样被保留,故不映射 Cmd),Ctrl+Shift+C 会正常送达页面
桌面壳 / Electron 等按键可达表面✅ 可用壳层未保留该键时绑定直接生效
  • macOS 复制/粘贴:Cmd+C / Cmd+V 走浏览器原生剪贴板命令(xterm 标准路径);

Cmd+C 在 helper textarea 失焦时也由插件的 copy 探针兜底。Ctrl+C / Ctrl+V 在 macOS 上同样有效。

  • Linux:与 Windows 行为完全一致(Chrome 同样保留 Ctrl+Shift+C)。

与 shell 无关

三层机制全部位于 xterm 前端层 / PTY 标准输入层,不感知具体 shell:

  • 复制:读取 xterm 内部选择(DOM 层),不经过 PTY;
  • 粘贴:写入 xterm 输入管线(换行转换、bracketed paste mode 由 xterm 处理);
  • 中断:向前端重放 Ctrl+C keydown,xterm 键盘管线发出 \x03 字节进 PTY,

中断语义由 tty/conhost 与各 shell 自行决定。

已在 Windows 实测 ^C 中断 ping -n 30(node-pty 直连):PowerShell、cmd、 nushell 全部生效(TTL 输出冻结、cmd 回到提示符)。bash/zsh/fish 等 POSIX shell 走 tty ISIG 信号路径,同样适用。

实现说明

不 import @xterm/xterm,也不持有实例(Terminal 是视图 effect 内的闭包局部 变量)——全部通过 xterm 已绑定的 DOM 事件驱动:

  • 复制:向 .xterm 根元素派发合成 copy 探针(xterm 的 copyHandler 有

选中时填充 clipboardData 并 cancel,无选中放行 ^C);

  • 粘贴:主路径放行浏览器原生 paste 进 helper textarea,300ms 无原生

paste 再走 clipboard API + 合成 paste 事件兜底;

  • 中断:向 textarea 重放去掉 Shift 的 Ctrl+C keydown(补丁

keyCode=67),由 xterm 自己的键盘管线发出 ^C

架构

  • Client half (src/client/index.tsx):

- ensureNerdFontStack():注入 @font-face + 字体栈追加 + letter-spacing 覆盖 - ensureBottomPanelYield():布局让位兜底 CSS - suppressBottomAutoTerminal() + patchStorePrefs():关闭底部面板自动终端 - ensureTerminalKeyBindings():Ctrl+Shift+C / Ctrl+C / Ctrl+V 绑定 (合成 copy/paste/keydown 事件驱动 xterm 自身处理器,零实例依赖) - TerminalEnhancer:包装内置终端组件(frozenCwdRef cwd 冻结 + 挂载时补丁内存 prefs)

  • Host half (src/index.ts): 空实现(所有功能在 client 端完成)

开发

pnpm install
pnpm run typecheck
pnpm run build

License

MIT