dsh-sidebar-dock

DSH PLUGINUI 与外观

仓库 Ethan1999991231/dsh-sidebar-dock · npm @local/dsh-sidebar-dock

UI 与外观 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件
安装这个插件

把 DSH 左栏的工作区与会话列表停靠到任意一边,解决插件过多挤占会话列表的问题。

一句话选型结论

按资料字段整理

dsh-sidebar-dock 是UI 与外观类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类UI 与外观 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-11-08 创建于 2026-11-01
README 7.5 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:Ethan1999991231/dsh-sidebar-dock
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名@local/dsh-sidebar-dock可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-sidebar-dock:为 DeepSeek Harness 左栏会话列表换边的界面插件

  • 四向停靠,即时生效
  • 左栏宽度可调
  • 贴边自动收纳展开
  • 触发范围可调
  • 卸载自动还原布局

上游标签

dsh-plugin

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在UI 与外观场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-sidebar-dock当前 未做沙盒验证 未标注 0 未标注 有
nuwa-skill 未做沙盒验证 未标注 3.8 万 未标注 有
awesome-dsh-plugin L4 · 沙盒安装通过 低风险 1.8 万 0.1.1-rc.2 有
deepseek-balance-whale-widget L4 · 沙盒安装通过 低风险 4,492 0.1.7-rc.2 等 2 个 有
dsh-better-sidebar L4 · 沙盒安装通过 低风险 4,112 0.1.7-rc.2 等 10 个 有
dsh-deep-whale L4 · 沙盒安装通过 低风险 2,470 未标注 有

仓库档案

UI 与外观
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方Ethan1999991231仓库 dsh-sidebar-dock · 默认分支 main
分类UI 与外观interface
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-11-01 · 2026-11-08最后推送 2026-11-08
本站收录2026-11-08首次进入本站目录的时间

README 全文

7.5 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-sidebar-dock

把 DeepSeek Harness(DSH)左栏里「工作区 / 会话记录」那一块单独停靠到 左 / 右 / 上 / 下
任意一边,插件图标条、品牌行、底部设置钮留在原位 —— 用来解决「左侧栏插件装太多、会话列表被挤得没法看」。

Dock the workspace / session list of DeepSeek Harness to the left, right, top or bottom edge,
leaving the plugin rail where it is. Switchable at runtime in Settings → General.

设置行 右侧停靠 上侧停靠 + 自动收纳展开

功能

  • 四向停靠:左侧(默认,等于不改) / 右侧 / 上侧 / 下侧,点一下立即生效,无需重启。
    「工作区 / 会话记录」跟着宿主数据自动更新 —— 以后新建的工作区、会话照常出现在那一侧。
  • 左栏宽度:原始(保持宿主宽度,默认) / 适中 176px / 紧凑 112px。停靠到别的边时,
    左栏会按这个宽度收窄,把空间还给会话内容。
  • 自动收纳:面板平时收成贴边 5px 的一条线,鼠标贴到那条边才展开;移开 420ms 后自动收起。
  • 触发范围:窄 32 / 标准 64 / 宽 104 / 很大 160 px —— 触发带只监听 pointermove,
    本身不可见、不接收点击,所以放大后也不会挡住任何按钮。
  • 所有状态存 localStorage;卸载或禁用插件即自动还原宿主布局(不写宿主文件、不改宿主配置)。

安装

本插件是一个 DSH bundle(package.json 里声明 dsh.bundle.patch)。

方式一(推荐) —— 在 DSH 的 Agent 会话里让它安装这个目录:

plugin_manager action=install_bundle target=<本仓库的绝对路径>

它会把自己加进 profile 依赖并自动 enable,返回 application: applied 即生效。

方式二 —— 命令行(只加依赖,之后还要在「插件」界面把 bundle 打开):

dsh plugin --profile  add <本仓库的绝对路径>

装好(或改了 client.js)之后,已经在跑的窗口需要重载一次页面 / 重启软件端才会拿到新的
client 模块(DSH 的插件集合在启动时定型,应用内的「刷新」按钮在部分版本上救不了)。

卸载:在「插件」界面关掉 / 移除该 bundle。localStorage 里的几个键可以留着,下次装回来直接生效。

设置项

设置 → 通用 → 工作区列表停靠位置

控件 取值 localStorage 键
停靠位置 左侧 / 右侧 / 上侧 / 下侧 dsh-sidebar-dock/position
左栏宽度 原始 / 适中 176px / 紧凑 112px dsh-sidebar-dock/rail
触发范围 窄 32 / 标准 64 / 宽 104 / 很大 160 px dsh-sidebar-dock/zone
自动收纳 开 / 关 dsh-sidebar-dock/peek

想恢复原样:把停靠位置点回 左侧,或清掉上面几个键。

原理(为什么是样式表)

宿主 @deepseek-ai/dsh-client-ui-layout 的三列 grid 写死在 AppFrame 里,ctx.layout 只暴露
toggleSidebar / openRightbar / closeRightbar / selectPanel,没有「换边」的 API;而
sidebar.workspaces 是 @deepseek-ai/dsh-client-ui-sidebar 内部渲染的,插件无法把它挂到别的 slot。
所以这里走最小侵入的样式表:

  1. apply() 之后用 DOM 顺序锚点认列:[data-shell-bottom] 的父节点是 frame,它前面的 3 个元素
    兄弟依次是 sidebar / center / rightbar(DocumentTitle 渲染 null,不占位),再给
    [data-slot="sidebar.workspaces"] 打上 data-dssb-tree。
  2. measure() 从宿主自己的计算轨道(getComputedStyle(frame).gridTemplateColumns)读回列宽,
    算出 --dssb-rail(左栏视觉宽)、--dssb-rail-width、--dssb-pull、--dssb-right-rail;
    窗口缩放、右栏开合都会重算 —— 宽度从不写死。
  3. 一张包自有样式表按 html[data-dssb-pos] / html[data-dssb-peek] 生效:
    - left(默认):一条规则都不写,与宿主完全一致;
    - 停靠在别处:左栏按 --dssb-rail-width 收窄,center 用 margin-left:-pull 贴过来(不留空档),
    整棵树 position:fixed 停到目标边,center 用 padding 让出面板厚度,不覆盖会话。
  4. 卸载 / 禁用时移除属性、样式表、数据标记和测得的自定义属性,布局自动还原。

踩过的坑(留档)

  • height:5px 收不到 5px:元素是 box-sizing:border-box,padding 合计 20px + border 0.5px,
    border-box 下 used height 被撑到 21px。收起态必须同时 padding:0。
  • 设置行显示 position.title:内联词典是嵌套的({position:{title}}),查找却用扁平键。
    现在按点路径取,并且 props.t → locale 命名空间 → 内置词典逐级回退,最坏也不显示键名。
  • 壁纸主题下穿模:--dsw-specific-sidebar-fill 是半透明的,会话文字会透上来。改用
    --dsw-alias-bg-base + --dsw-alias-bg-layer-1 渐变 + backdrop-filter: blur(18px)。
  • renderSlot 的占位元素是 display:contents:要给它的子节点打 position:fixed 前必须先
    display:flex !important,否则没有盒子。
  • 收起侧栏时树是空的:WorkspaceBrowser 在 wide=false 时只渲染图标变体。所以停靠在非左侧时
    先通过公开的 ctx.layout.toggleSidebar() 展开侧栏;若仍收着就不接管布局并在设置行提示。

已知边界

  • 侧栏收起(rail 态)时插件不接管布局,设置行会提示先展开。
  • 非左侧停靠时宿主的分栏拖拽把手会隐藏:它的 left 是按默认 lane 算的像素值,换边后必然错位。
    改回「左侧」即恢复。
  • 右栏(rightbar / better-sidebar 等)保持原位,面板会让开它;但其它插件自己的固定层
    (例如顶部 tab、右下气泡)z-index 更高,可能压住面板边角。
  • DSH 升级后宿主 class 名可能变(hash 前缀)。本插件不依赖 class 名,只依赖
    data-shell-bottom / data-rightbar-col / data-slot="sidebar.workspaces" 这几个稳定属性。
  • 官方 ui-plugin.md 建议「挑一个已经分配好空间的 slot,不要读别人的 DOM」。本需求物理上做不到
    (宿主不给换边 API,slot 里也没有可放树的位置),因此采用只加可移除样式 + 自己的 data 属性
    的最小侵入方案,并把边界写在这里。

目录结构

.
├── client.js           # Client 半:标记 / 测量 / 样式表 / 指针揭示 / 设置行(全部逻辑)
├── index.js            # Host 半(空实现,只为保住 Loader 行)
├── cordis.patch.yml    # bundle 的 insert 行
├── locale/{zh,en}.json # meta.title / description 与行文案
├── icon.svg            # 插件图标
├── docs/               # README 截图
├── CHANGELOG.md
└── LICENSE

开发

node --check client.js     # 语法检查(CSS 是模板字符串,注意别在注释里写反引号)
  • 以 link: 方式装进 profile 后,改源码即时生效,只需重载页面。
  • 设置行走 ctx.slots.register({ name, id, order }, DockRow),标题、控件、描述全部自绘
    (settings.general.item 不向 occupant 投影任何 label)。
  • 想换包名 / 发到 npm:改 package.json 的 name(例如 dsh-sidebar-dock)后重装一次 bundle 即可,
    client.js 里的 NS 不需要跟着改。

License

MIT

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-sidebar-dock 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:Ethan1999991231/dsh-sidebar-dock` 即可。对应的 npm 包名是 `@local/dsh-sidebar-dock`。

dsh-sidebar-dock 的验证等级是什么意思?

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-sidebar-dock 安全吗?

未标注。

dsh-sidebar-dock 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-sidebar-dock 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-sidebar-dock 有哪些功能?

四向停靠,即时生效、左栏宽度可调、贴边自动收纳展开、触发范围可调、卸载自动还原布局。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

2 条
不同作者的仓库分开列,请确认你要装的是哪一个
UI 与外观
按星标排序,可作替代方案

nuwa-skill

nuwa-skill

女娲 DSH plugin 只需输入一个名字,就自动调研、提炼并验证任何人的心智模型、决策启发式与表达 DNA,生成可直接调用的思维视角 S

未标注验证等级 3.8 万 星

awesome-dsh-plugin

awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harnes

L4 · 沙盒安装通过 1.8 万 星

deepseek-balance-whale-widget

DeepSeek-Balance-Whale-Widget

DSH 界面右下角的常驻小鲸鱼余额挂件,实时显示 DeepSeek 账户余额、今日已用与每轮对话消耗,支持拖拽吸附、Q 弹动画与音效,开箱即

L4 · 沙盒安装通过 4,492 星

dsh-better-sidebar

DSH-better-sidebar

面向 DeepSeek Harness 的服务化侧边栏工作台插件,把文件编辑、终端、Git 变更、子代理任务与侧边对话整合进右侧栏与底部面板

L4 · 沙盒安装通过 4,112 星

dsh-deep-whale

dsh-deep-whale

DSH Web 鲸鱼娘皮肤系列(深海女仆工坊 maid-atelier)。

L4 · 沙盒安装通过 2,470 星

deepseek-design

deepseek-design

可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。

L4 · 沙盒安装通过 1,438 星

Ethan1999991231 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。