为 DSH Web 界面换上同花顺风格外观:品牌红标题栏、行情状态栏、自选股侧栏与终端设置面板。
$ dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/skins/thsRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
同花顺风格皮肤为 DSH Web GUI 换上品牌红标题栏、行情状态栏、自选股风格侧栏和交易终端面板,营造盯盘氛围。它只修改浏览器里的外观元素,不参与模型请求,适合想调整页面观感的普通用户。
@deepseek-ai/cordis(ctx.effect 生命周期)、@deepseek-ai/dsh-client-connection(连接句柄上的 workspace.list / codeKline.list RPC)、lightningcss(编译 CSS)、tsdown(生成 bundle)、vitest(验证挂载与清理)cordis.patch.yml)将 ui-skin-ths 插入 Web 插件清单,host 侧 apply() 为空占位,浏览器侧 apply(ctx) 在 cordis fiber 生命周期内写入 DOM/CSS 并注册 disposer;样式表随 bundle 的 CSS Modules 自动注入,由 loader 随条目移除packages/skins/ths/src/index.ts(host 空入口);packages/skins/ths/src/client/index.ts(浏览器侧核心入口,210 行);packages/skins/ths/src/client/ths.module.css(1417 行主题样式);packages/skins/ths/src/client/code-index.ts(代码指数聚合缓存)喜欢炒股氛围、需要长时间盯代码的普通用户,可以在 DSH Web 界面切到「同花顺」皮肤:标题栏带「上证指数」行情签,状态栏显示三大指数红绿涨跌,侧栏像自选股列表一样展示会话。皮肤对模型请求零侵入,适合只想换外观、不改交互方式的场景。
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | 未声明 | 包内未声明 DSH 版本或 dsh.compatibility;通过 bundle patch 接入客户端机制 |
| Node.js | `^22.19.0 | |
| 平台 | 跨平台 | package.json 将客户端标记为 platform: "web",未声明 os 或 cpu 限制 |
| 原生模块 | 无 | 无运行时原生模块依赖;界面变更和行情计算都在浏览器侧完成 |
dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/skins/ths
本插件无需额外配置。源码中未发现配置读取逻辑或用户设置项;皮肤启用由皮肤管理流程负责,启用后由客户端生命周期自动管理清理。
Q: 这个皮肤影响模型请求或对话吗?
A: 不会。包内明确说明它只改变浏览器 DOM 与 CSS,不组装或发送任何 provider 请求,也不订阅任何模型事件;皮肤对模型调用链零侵入。
Q: 状态栏里的指数数值是实时行情吗?
A: 不是。状态栏里的「上证指数 / 深证成指 / 创业板指」是固定文案(3,342.17 / 10,846.59 / 2,201.33),仅用于视觉演绎;唯一会真实变化的是末尾的「代码指数」格,它每 30 秒聚合一次所有 workspace 的当日代码净增减行,红涨绿跌配色。
Q: 安装后界面没有变化怎么办?
A: 安装皮肤包不等于已经选中该皮肤。需要使用 dsh-skin use ths 切换;同一时刻只启用一个皮肤,切换由 dsh-skin use 脚本管理。
Q: 支持深色模式吗?
A: 支持。CSS 专门为 body[data-dsh-ths][data-ds-dark-theme] 定义了夜间交易色板;不过切换的是这套皮肤内部的浅色/深色两套终端配色,并不是切换回非皮肤外观。
Q: 关闭或切换皮肤后会留下页面痕迹吗?
A: 不会。客户端注册的生命周期清理器会移除 body 属性、标题栏、状态栏和 favicon;如果页面标题仍等于皮肤写入的字符串则恢复原标题,被会话标题覆盖时不会被一并回滚。测试覆盖了挂载、清理与「不清掉会话标题」三类场景。
Q: 侧栏的红色行情线/会话行效果依赖什么?
A: 依赖 ui-layout 模块在 AppFrame 列上挂的 data-pane 属性。没有这些属性时皮肤依然生效(窗口栏和状态栏正常),只是少了每个面板的表面样式。
Q: 加载 DSH 的瞬间为什么还有一段官方外观?
A: 皮肤要等插件 bundle 加载完毕后才能设置 data-dsh-ths 属性并注入 DOM,所以最开始的加载界面保留官方样式;属性一旦设置,启动页也会获得窗口边框,只是内部卡片仍是现代样式。
入门 — 安装和启用只需使用皮肤管理命令,无需配置文件或用户参数;激活后由客户端自动管理清理。
dsh-skin use 脚本管理;面板级 surface 依赖 ui-layout 在 AppFrame 列上挂 data-pane 属性。