DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
S

dsh-sidebar-density

Sidebar Density

DSH 侧栏密度控制中心:五个折叠开关、三档密度预设、三档宽度预设——入口位于侧栏底部和设置页。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:LUgABeEEE/dsh-sidebar-density#25a1af09a546d707db595afb23f4123a5f59caf7
README兼容性版本

兼容性与来源证明

Sidebar Density 以 dsh-sidebar-density 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/25

版本

0.1.0stable
2026/10/25

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/11/1
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Client Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH 技能中心:按来源(bundled / project / user / custom / runtime)浏览已加载的技能,在 Web GUI 面板中启用或禁用、创建和删除技能。Better Sidebardsh-better-sidebarBetter Sidebar for DSH — 在一列中提供文件树、编辑器、变更、任务和侧边聊天,并为每个对话单独显示。同时提供服务,供其他插件注册侧边栏标签页和文件查看器。Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包

README

dsh-sidebar-density

A sidebar density control centre for DSH (DeepSeek Harness): five fold switches, three density presets and three width presets — served from one compact foot entry plus a settings section.

把 DSH 左侧栏被"外壳"吃掉的高度还给「工作区」(会话列表),并提供整套侧栏密度控制。v0.1.0

问题

侧栏的高度是固定的几块拼出来的,只有 sidebar.workspaces 是 flex:1——它拿到的永远是剩余高度:

侧栏里的固定块高度来源
品牌行60 + 4pxui-sidebar .logoRow
新会话按钮38 + 8 + 12pxui-sidebar .newSession
全局导航面板(每个已装插件一行)36px / 行,5 行 ≈ 204pxui-sidebar nav.panelList
「工作区」标题行36 + 4pxui-workspace .sectionHeader
底部:费用卡 + 导入会话 + 设置≈ 190pxdsh-cost-meter + 各插件

在 ~840px 的视口里,会话列表只剩 ≈200px ≈ 4.5 行。装上越多面板型插件,列表越小。

这个插件做什么(v0.1.0)

入口(收纳,不占常驻高度)

入口位置内容
侧栏底部「密度」按钮sidebar.footer.action,order -10(费用卡之前)点开弹出面板,全部控件都在里面
设置 →「侧栏密度」settings.section(order 40,General 之后)同一套控件的正式页面
入口条快捷按钮侧栏底部同一行导入 / 移动(与「密度」并排一行,见下)

折叠成 56px 图标栏时,底部入口缩成图标仍然可点(面板不在此时展开)。 默认全部关闭/标准,状态按浏览器持久化(localStorage,v2;会自动迁移 v1 的两开关记录)。

五个折叠开关

开关关开拿回
导航竖排 N 行横排一行图标,面板照样点得到204 → ≈44px,省 160px
账单完整费用卡只留首行(今日)96 → 34px,省 62px
品牌行60px32px(只留标志与折叠按钮)省 28px
新会话38px26px(只留图标)省 12px
区标题36px26px省 10px

全部打开约还给会话列表 270px ≈ 7 行。

底部一行的三个入口

dsh-chat-import 的「导入会话」与 dsh-mobile 的「移动访问」原本各占 footer 一行。插件把这两枚原生 按钮隐藏,改在自己的入口条里排成一行:密度 | 导入 | 移动——高度只有一行(24px),顺序与文案都由 插件控制,不依赖其他插件怎么抢宽度。

入口怎么打开
密度打开 / 收起密度面板
导入优先调原生右栏服务 sidebarRight.openTab('chat-import')(与它自己按钮同一条调用);取不到服务时点回原按钮
移动点 dsh-mobile-control__trigger,由它自己打开移动访问面板

两个原生按钮仍在 DOM 里、仍归各自插件所有:上游改名/换文案时隐藏规则静默失效(按钮回到 footer、 快捷入口自动消失),不会留下"点了没反应"的死按钮。设置页的「侧栏密度」分区里也保留这两个工具入口。

折叠成 56px 图标栏时只保留「密度」图标(三个文字按钮放不下)。

三档密度预设

预设字号行高侧栏内边距面板行品牌行新会话
标准14px沿用宿主12px36px60px38px
紧凑13px18px10px30px48px32px
舒适15px沿用宿主14px38px64px42px

预设作用于侧栏整列(root + sectionHeader),折叠成 rail 时自动不施加,避免打乱 56px 图标栏; 右栏展开时预设只调右栏内容字号,不动它的布局。

三档侧栏宽度

宽度值说明
自动不动宿主的拖拽宽度继续生效(默认)
窄264px宿主拖拽下限
宽320px介于默认 280 与上限 420 之间

取舍(必须知道):宿主把列宽写成 frame 的 inline grid-template-columns,官方 ctx.layout 只暴露 toggleSidebar / selectPanel,没有设宽度的 API。所以宽度预设只能覆盖那个 inline 值,且只在 三列都可预测时覆盖:右栏无轨道(:has([data-sidebar-right-open]) 不成立)、非折叠、非右栏全屏。 一旦你拖动侧栏分隔条,插件会立即把宽度设回「自动」,把控制权交还宿主布局——不会抢你的拖拽。

怎么实现(以及为什么这样做)

  • 不改宿主 DOM:所有选项只是 <html> 上的 data-dsd-* 属性,视觉全部由一张注入的样式表承担。 宿主 React 树不被编辑,重渲染撤销不了它,卸载也不会留残渣。
  • 不用私有接口:控件注册进官方、有文档的 sidebar.footer.action 与 settings.section 座位; 样式靠属性 + 结构钩子限定作用域。
  • 选择器能跨版本:DSH 的类名是 CSS module 产物(hHd-Xa_panelRow = 构建哈希 + 本地名), 所以按本地名匹配([class*="panelRow"])。上游若改名,规则静默失效→侧栏回到原样,而不是坏掉。 侧栏列锚点用 :is([class*="_root"]:has(> nav[class*="panelList"])),同样不依赖哈希。
  • 易撤:删掉 <style> 即完全恢复;dsh plugin remove 撤得干干净净。

安装 / 卸载

# 1) 克隆到任意目录
git clone git@github.com:LUgABeEEE/dsh-sidebar-density.git

# 2) 装进 web profile(路径必须是绝对路径)
dsh plugin --profile web add "$(pwd)/dsh-sidebar-density"

# 重启 dsh-web 让组合生效。
# ⚠ 本机 SER8 实测:`systemctl restart dsh-web` 被 polkit 拦死
#   (Interactive authentication required;CanStart/CanStop=yes 只是单元属性)。
#   现行做法是 kill 主进程,由 Restart=always 接管:
kill "$(systemctl show -p MainPID --value dsh-web)"

# 只停用,不卸载:在 profile 的 cordis.patch.yml 里加
#   - id: sidebar-density
#     disabled: true
# 然后同样重启

# 卸载
dsh plugin --profile web remove dsh-sidebar-density

客户端半改动(lib/client.js)没有 HMR 时必须重启才到浏览器;页面刷新不足以换掉服务端缓存的 bundle。

自测

npm run verify     # node --check + node --test

测试用最小化的 window / document / react 假件挂起控件,验证:模块自注册、两个座位各注册一次、 样式只装一次、默认不动任何属性、五个开关独立翻转并持久化、预设与宽度写属性、v1 迁移、非法存档回落、 设置页渲染同一套控件、拖拽 handle 让位、dispose 后样式与全部属性清空。 真实 CSS 层叠、:has() 匹配与布局不在单测范围内——那部分以运行中的 GUI 截图与实测高度为准。

上手验收(刷新页面后逐条看)

  1. 侧栏底部出现「密度」按钮,点开有预设/宽度/五个开关。
  2. 点「紧凑」→ 字号、面板行、品牌行一起收紧;会话列表多出几行。
  3. 打开「导航」→ 面板导航变一行图标。
  4. 点「窄」→ 侧栏变 264px;拖一下分隔条 → 恢复自动宽度,设置里的宽度回到「自动」。
  5. 把侧栏收成图标栏 → 「密度」按钮变成可点图标。
  6. 打开右栏 → 侧栏宽度预设不与你抢布局;右栏字号跟随预设。
  7. 设置页里出现「侧栏密度」分区,控件与弹出面板一致。
  8. 点「恢复默认」→ 界面回到出厂样子(记录仍留在 localStorage,刷新不丢)。
  9. 底部只剩「费用卡 + 一排按钮」;按钮行从左到右是「密度 / 导入 / 移动」,导入会话与移动访问不再各占一行。
  10. 点「导入」→ 右栏导入 tab 打开;点「移动」→ 移动访问面板打开。