dsh-cp2077-theme:为 DeepSeek Harness Web GUI 套上夜之城视觉

前言

DeepSeek Harness(DSH)的 Web 界面默认走通用主题 token,长时间对着同一套配色和布局,对习惯在终端或 IDE 里「换肤」的开发者来说缺少一点氛围感。社区里「趣味换装」类插件的作用,就是在不改动 Harness 核心逻辑的前提下,把配色、装饰层和可选背景接到现有 theme / slots 体系上。下面介绍维护者 lh15626127422-cloud 发布的 dsh-cp2077-theme(包名 @local/cp2077-theme,当前版本 2.0.2,MIT):面向 DSH 0.2.x Web GUI 的赛博朋克 2077 风格主题,夜之城配色、HUD 切角、CRT 扫描线与可选 Wallpaper Engine 壁纸均可从设置面板调节。

这是什么

dsh-cp2077-theme 是挂在 DSH Web profile 上的本地主题插件,通过 Cordis patch 注入客户端主题服务(@deepseek-ai/dsh-client-ui-theme),覆盖 130+ 主题 token,并叠加切角面板、网格、扫描线、自定义光标等装饰。它不替代 Harness 的对话与工具能力,只改变 Web 端的视觉与壁纸背景;未安装 Wallpaper Engine 或 ffmpeg 时,主题本体仍可用,仅壁纸相关能力受限。

核心功能

资料中明确列出的能力如下,可按需在面板里开关或调强度。

夜之城配色与双主题

黑紫底搭配 2077 黄 #FCEE0A、霓虹青 #00E5FF 与品红,暗色与浅色各一套 token。输入框、代码块、气泡、发送按钮统一切角;四角青色角标、全高渐隐网格、CRT 扫描线、低频扫描光束可在 设置 → 赛博朋克主题 中关闭或调节。

赛博朋克光标

箭头、指针、文本插入符三套 SVG,尺寸可调;浅色背景下带深色描边以保证可见。

Logo 动效

鲸鱼呼吸辉光,以及 wordmark 的像素级撕裂(SVG feTurbulence + feDisplacementMap,非整块平移)。

Wallpaper Engine 壁纸背景

自动识别 Steam 创意工坊库(App ID 431960 对应目录);可将壁纸铺成整窗背景。视频类壁纸在具备 ffmpeg 时可抽帧并生成动态 WebP 循环;面板提供透明度、缓存上限与清理。无 ffmpeg 时视频壁纸退回封面,相关开关会置灰并提示。

生命周期与测试

README 说明装饰与动画带生命周期守卫,卸载后不复活;仓库含 test/harness-test.mjs(19 项)与 test/wallpaper-route.mjs(17 项),覆盖异常输入、销毁顺序与路由。

安装与启用

前置条件:已安装 DeepSeek Harness Web GUI(0.2.x)。本项目 零 npm 依赖,安装前建议在 GitHub 阅读源码与 MIT 许可证;插件随当前 DSH 进程权限运行,与任何社区插件一样,装前自行评估信任边界。

官方 README 给出的流程是:把仓库放到本地目录,用安装脚本软链进 profile,再在 package.json 里声明 link 依赖。

git clone https://github.com/lh15626127422-cloud/dsh-cp2077-theme.git ~/dsh-plugins/cp2077-theme
cd ~/dsh-plugins/cp2077-theme
node scripts/install.mjs            # 链接进 ~/.dsh/profiles/web

install.mjs 会把整个目录软链到 ~/.dsh/profiles/web/node_modules/@local/cp2077-theme,并提示在 profile 的 package.json 中写入:

{
  "dependencies": {
    "@local/cp2077-theme": "link:<克隆下来的绝对路径>"
  }
}

完成后 重启 DeepSeek Harness,刷新页面;打开 设置 → 赛博朋克主题 即可调参。若你已有目录副本,也可按更新日志中的方式手动 ln -s 到 @local/cp2077-theme 并同样添加 link: 依赖行,再重启并刷新。

典型用法

1、面板内调节(默认路径)

除壁纸库路径外,光标大小、网格/扫描线强度、切角尺寸、动画总闸、壁纸选择与缓存均在 设置 → 赛博朋克主题 即时生效并记忆。

2、手动指定 Wallpaper Engine 创意工坊根目录

自动探测顺序为:插件配置 workshopRoot → 环境变量 CP2077_WORKSHOP_ROOT → Steam 库枚举(Windows 读 HKCU\Software\Valve\Steam 与 libraryfolders.vdf;macOS / Linux 走惯例路径)。探测不到时在 cordis.patch.yml 中写入,例如:

- insert:
    - id: cp2077-theme
      name: '@local/cp2077-theme'
      config:
        workshopRoot: 'D:/Steam/steamapps/workshop/content/431960'

3、用环境变量覆盖

export CP2077_WORKSHOP_ROOT='/path/to/steamapps/workshop/content/431960'

4、卸载

从 profile package.json 删除 @local/cp2077-theme 依赖、移除 node_modules/@local/cp2077-theme 软链,重启 DSH 并刷新;配色、装饰、光标与壁纸恢复默认。也可先通过 Harness 插件管理停用:plugin_manager({ action: "set_plugin", target: "<entry id>", enabled: false }),其中 <entry id> 形如 include:cp2077-theme(以 list_plugins 输出为准)。

适用场景与注意

适合谁

希望在 DSH Web 端长期使用时保持赛博朋克 2077 视觉一致性、并可选把 Wallpaper Engine 壁纸当作窗体背景的开发者;分类上属于「趣味换装」,不改变 Agent 行为。

依赖与限制(资料原文)

项 说明
ffmpeg 可选;仅影响视频壁纸抽帧与动态 WebP。缺失时显示封面,面板提示。
Wallpaper Engine 可选;无创意工坊目录时壁纸功能为空,面板提示「未检测到 Wallpaper Engine 创意工坊目录」。
DSH 版本 面向 0.2.x;样式依赖 DSH 内部类名后缀与 data-* 属性,大版本改版后个别选择器可能失效,表现为局部样式未打上,不报错也不影响核心使用。

2.0.x 近期修复(便于判断是否已更新)

  • 2.0.2:输入框切角由卡片本体 clip-path 改为 ::before 承载,避免停止按钮提示卡被右缘裁切。
  • 2.0.1:移除主按钮 hover 的 clip-path 撕裂动画,避免流式输出重渲染导致停止按钮闪动;Logo wordmark 的 SVG 滤镜动效未改。

结尾

dsh-cp2077-theme 把 Night City 配色、HUD 切角、CRT 层与可选 Steam 创意工坊壁纸收进一个可即时调节的主题插件,安装路径是 profile 软链 + @local/cp2077-theme link 依赖,适合在 DSH 0.2.x Web GUI 上做长期视觉换装。详情与截图见 GitHub README,社区索引见 SkillHub 目录页。

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

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

Xiaoye