dsh-brand-text:为 DSH Web 换肤并给项目打上「为什么加 · 在干什么」水印

前言

在 DSH(DeepSeek Harness)里做项目时,侧边栏仍是默认品牌,空对话页中央也是官方文案;更麻烦的是,过几天再打开某个工作目录,往往想不起当时为什么把这批文件加进来、当时在推进哪件事。社区里已有若干只改 Logo / 标题的插件,但很少把「页面水印」和「文件夹落盘说明」放在同一套配置里。

下面介绍维护者 Shushushu-whn 发布的 dsh-brand-text(npm 包名 dsh-brand-text,当前版本 0.4.0,MIT 许可证)。它面向 DSH Web 客户端,用两层能力处理品牌与水印:基础换肤,以及可撤销的文件夹盖章台账。社区目录将其归类为「趣味换装」;配置与数据集中在同一份 brand.json 中。

这是什么

dsh-brand-text 是 DSH 的 Web 端插件:一层改 DSH Web 界面的品牌元素(侧栏 Logo、名称、空对话中央标题、浏览器标签标题、favicon 与 PWA manifest);另一层在页面上铺半透明水印,并把「为何添加」「当前在做什么」写进你指定的项目目录(含台账 apply / undo)。两层都可以在设置面板 /brand-studio/ 里编辑,也可以在页面上双击就地修改。

与社区插件 dsh-custom-brand 不同,且二者会争用侧栏品牌位,不要同时启用。README 也说明本插件已覆盖原 dsh-client-ui-brand 的职责,一般无需再装后者。

核心功能

① 基础换肤(Basics)

项 展示位置 配置键
侧栏名称 侧栏左上角;同时作为浏览器标签标题与 PWA 名称 productName
中央标题 新建空对话时页面中间一行 heroText(留空则用官方默认「探索未至之境」/ “Into the Unknown”)
侧栏 Logo 侧栏品牌位 / favicon / PWA 图标 logoPath

保存后 刷新页面(F5) 即可生效,无需重启 DSH 进程。

② 水印(Watermark)

水印解决两类可见性需求:

  1. 页面叠加层(Form A):在 DSH 页面上显示可调透明度、角度、字号、平铺或单条的斜向文字层;pointer-events: none,不挡点击。任意浏览器可用。
  2. 文件 / 文件夹盖章(Form B):在目标目录内写入 _DSH水印说明.md、Explorer 悬停提示(InfoTip),并将文件夹图标换成品牌标记;说明写在目录本身,离开 DSH 仍存在。仅 Windows(依赖 desktop.ini 与 attrib);盖章会给文件夹设置系统属性,Explorer 有时需要 F5 才刷新图标。

brand.json 里 watermark 可配置 text、task、note(对应「为什么加」「在干什么」等语义)、opacity、angle、scale、repeat、color、onPage,以及台账数组 watermark.targets。每条路径可在面板里 apply / undo;撤销会删掉说明、恢复原有 desktop.ini 并清除文件夹属性。

两种编辑方式

方式 入口 适合
设置面板 http://127.0.0.1:<dsh-port>/brand-studio/ 基础项、水印预览与调参、文件夹台账
双击就地编辑 双击左上角品牌区(Logo 或文字)弹快捷对话框;双击中央标题改文案 小改快调,保存后页面会重载

为让双击可用,插件会拦截品牌位的单击/按下事件:单击不再新建对话;双击编辑,右键打开完整面板。这是 README 明确写明的交互取舍。

安装与启用

推荐顺序:npm(预构建)→ GitHub → 本地目录兜底。安装后需 重启对应 DSH 实例。插件以当前 DSH 进程权限运行,安装前请自行查看源码与 MIT 许可证。

从 npm(推荐)

dsh plugin --profile web add dsh-brand-text

更新:

dsh plugin --profile web update dsh-brand-text

从 GitHub

dsh plugin --profile web add github:Shushushu-whn/dsh-brand-text

本地目录(离线或安装失败时)

在插件仓库目录执行(将 <path-to-profile> 换成你的 profile 路径):

cd /path/to/dsh-brand-text
node install.mjs --profile "<path-to-profile>"

install.mjs 可重复执行;本地 link: 安装后改 lib/ 无需重装。

插件配置项

在 profile 的 cordis.patch.yml 中可指定 brand.json 路径,便于多 profile 共用不同品牌:

- id: dsh-brand-text
  config:
    configPath: ''      # 空则使用插件旁的 brand.json

示例(多品牌):

- id: dsh-brand-text
  config:
    configPath: 'D:\brands\team-a.json'

brand.json 字段示例见仓库内 brand.example.json;无 watermark 键的旧文件默认关闭水印。

典型用法

  1. 按上文命令把插件装进 web profile,重启 DSH。
  2. 浏览器打开 http://127.0.0.1:<dsh-port>/brand-studio/,填写 productName、heroText,上传或指定 logoPath,F5 看侧栏与标签页变化。
  3. 在水印区开启 overlay,填写 text、task、note,拖动透明度等参数;需要时在台账里对某个项目路径执行 apply。
  4. 若只需改名称或中央一句话,可在主界面双击品牌区或中央标题,按对话框顺序先基础、后水印保存。

卸载前建议在面板里先 undo 文件夹盖章;再从 dsh.profile.bundles 与 dependencies 移除 dsh-brand-text 并执行 pnpm install。

适用场景与注意

适合谁:需要把自用或团队 DSH Web 换成自家品牌标识的开发者;希望在 DSH 里就能给当前任务相关目录留下「为何存在、当时在做什么」说明的人(尤其 Windows 本机项目树)。

兼容性:面向 @deepseek-ai/dsh 0.2.x 开发验证;package.json 要求 Node >=20。HTTP 路由(如 /brand-studio/ 及各 API)与官方插件路由类似,跳过 DSH token 校验且仅监听 loopback;若把 DSH 暴露到局域网,需自行加访问控制。

生态说明:DSH 奉行「一切皆插件」;SkillHub 插件目录 是社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-brand-text 把 Web 换肤与「页面水印 + 文件夹盖章台账」收进一份 brand.json 和一个 /brand-studio/ 面板,适合长期用 DSH 管多项目、又不想靠记忆追溯目录来历的场景。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜