DSH-better-sidebar 使用指南
为 DSH 提供类 VS Code 的右侧栏+底部双工作台:文件编辑、真实终端、Git、嵌入浏览器与后台任务;按会话隔离,并向其他插件开放页面与文件预览器注册。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
DSH-better-sidebar
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add dsh-better-sidebar
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- 🗂️ 文件工作台:资源管理器(懒加载目录树;软链接按目标类型展示——目录软链接可展开、失效链接标红)+ CodeMirror 编辑器;图片 / Markdown(含 Mermaid 图表,strict 安全渲染 + 点击放大)/ HTML / PDF / Office 内联预览
- 🌐 内嵌浏览器:多开网页 tab,后退 / 前进 / 刷新;内容运行在沙箱 iframe;外链默认按协议分流——HTTP 在侧边栏打开、HTTPS 走系统浏览器(设置页可分别调整)
- 💻 真实终端:xterm.js + node-pty 真实 shell,断线重连回放;可选为模型注入
terminal_*工具 - 🌿 Git 面板:真 diff + VSCode 式 diff tab、历史、右键暂存 / 提交 / 还原
- 🧩 后台任务页:subagent 拓扑 + 后台任务(退出码 / 实时输出 / 强制终止)
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
安装后页面上出现两个侧边栏怎么办?
这是双挂载。常见原因是 ~/.dsh/profiles/web/cordis.patch.yml 里仍保留着手写的 - insert: ... better-sidebar ... 行;通过 npm bundle 通道挂载时,把它删掉即可(见 README_EN.md:119)。
终端提示"node-pty failed to load"或干脆打不开怎么办?
node-pty 依赖预编译二进制,pnpm 11 会拦截其 build 脚本。修复命令:在 ~/.dsh/profiles/web 目录里运行 pnpm approve-builds --all && pnpm rebuild node-pty,然后重启 DSH 并在终端页点 Retry。0.12.3 起 node-pty 加载失败不再拖垮服务(issue #140),banner 会显示这条可复制的命令。
这个插件要求什么 Node 和 DSH 版本?
package.json 声明 engines.node ">=20",与 DSH 的全部 peerDependencies 锁在 ^0.1.0-rc.6;不能用更老的 Node 或未对齐的 DSH pre-release。
我怎么让我的插件向它的侧边栏注册新页面或新文件预览器?
在你的插件 client half 用 ctx.betterSidebar.registerTab({...}) / registerFileViewer({...}),整个套用同一个 Cordis 服务;用 ctx.effect(() => register(...)) 包一下以跟随 HMR(详见 AGENTS.md / docs/external-plugin-guide.md)。
我的数据存在哪里?会话之间会串吗?
布局/tab/面板状态持久化在 localStorage 并按会话 id 隔离(README 中"Session Isolation"项);宿主文件操作(读写、Git、终端、媒体)完全限定在当前会话的工作目录下,不会跨会话泄漏。
如何彻底卸载?
在 ~/.dsh/profiles/web/package.json 的 dependencies 里删掉 "dsh-better-sidebar" 行,再 pnpm install 重启 DSH 即可;该插件不写 home 目录、不依赖后台进程。
我能在浏览器里直接看 GitHub / 论文网页吗?
内置浏览器 tab 支持,HTTP 外链默认在侧边栏打开、HTTPS(GitHub 等多数站点)默认走系统浏览器,两种协议各自有独立开关("拦截 HTTP"/"拦截 HTTPS",见配置项)。不少站点(arxiv.org 等)会通过 X-Frame-Options/CSP 拒绝嵌入,侧边栏会显示原因面板并提供"在浏览器打开"按钮。
移动端能用吗?
右栏侧边栏在窄屏(<768px)自动合并为全宽抽屉;底部面板在窄屏不可用,且自动合并到右栏后,迁回宽屏会保留在右栏,不会自动复原——这是 README 已记录的已知限制(README_EN.md:226)。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.6+
- Node: >=20
- Platforms: macOS, Windows, Linux
- Native modules: node-pty
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则