前言¶
DeepSeek Harness(DSH)客户端在会话页的标题栏中会展示多个按钮,包括内置按钮与其他插件注册的按钮。当按钮数量较多且宽度有限时,标题栏布局会被挤压,右侧按钮被截断或溢出,操作体验下降。
dsh-header-modify 插件针对这一场景,自动检测标题栏内的按钮,当空间不足时按优先级将靠后的按钮收进「更多」菜单,并在设置中提供拖动排序功能,让用户控制保留哪些按钮。
插件定位¶
dsh-header-modify 是一个 DSH Desktop 客户端插件,由开发者 dthcle 维护。它解决标题栏按钮溢出问题,提供自动收折与优先级管理,不影响宿主布局,卸载时干净还原。
核心功能¶
自动发现与收折¶
- 扫描标题栏中实际存在的所有按钮(内置按钮与其它插件注册的按钮都算)。
- 同一个 cell 内的多个按钮也分别识别。
- 当空间不足时,按优先级把靠后的按钮收进「更多」菜单。
- 全部放得下时,「更多」菜单隐藏,不占用额外空间。
优先级与排序¶
- 在「设置 → 标题栏按钮」中提供拖动排序,越靠上的按钮优先级越高,越容易被保留。
- 提供上/下移按钮与恢复默认选项。
- 按钮身份与具体会话无关,条件按钮出现时沿用已保存的位次。
- 设置页只显示按钮名称,不显示数字优先级。
体验细节¶
- 收折只通过内联样式修改,逐属性还原,测量宽度时将元素移出文档流,不触发标题栏重排。
- 带迟滞余量,避免边界闪烁;自身写入不会引发更新循环。
- 「更多」菜单保留原图标、名称、禁用状态、点击行为与配色(含危险色)。
- 点击菜单项即执行原动作并关闭菜单,支持 Esc、点击外部、Tab 关闭,方向键与 Home/End 可导航。
- 由标题栏按钮打开的浮层(内联渲染或 portal 渲染)会脱离标题栏布局,落到标题栏下方、右对齐触发按钮、限制在视口内,过高时内部滚动,不相关的浮层不会被移动。
干净卸载¶
- 停用插件时移除全部自建 UI、监听器、观察器与样式,还原宿主 DOM 的改动。
安装与启用¶
使用官方安装命令安装插件:
dsh plugin --profile <profile> add dsh-header-modify
本地开发时可用 link: 安装:
dsh plugin --profile desktop add link:F:/path/to/dsh-header-modify
开发¶
源码位于 src/*.js,build.mjs 将其拼装成浏览器用的 client.js(window.__ModuleLoader__ 格式):
node build.mjs
改完客户端代码后,需在插件管理器中关闭再打开该 bundle(必要时完全重启 DSH Desktop)才会加载新代码。
适用场景与注意¶
- 适合需要管理标题栏按钮数量与顺序的用户,尤其是使用多个插件时。
- 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
- 卸载时自动还原改动,不会留下残留样式或监听器。
总结¶
dsh-header-modify 通过自动收折溢出按钮与拖动排序,让标题栏按钮在有限空间内保持可用,同时保持原生交互体验。更多细节可在 GitHub 查看源码与文档。
- 目录页:https://www.skillhub.cn/plugins/dthcle/dsh-header-modify
- GitHub:https://github.com/dthcle/dsh-header-modify