把 keyshub.top 的三种主题色调与壁纸带进 DSH Web GUI:
NEXUS 赛博霓虹、COMIKET 温暖纸感、IRONCORE 机械工业。
三套主题通过标准 theme.register 注册,
将 keyshub 色板逐字映射到 DSH 的 --dsw-alias-* 设计令牌,
半透明表面让壁纸透出,形成玻璃拟态观感;与内置 Light / Dark / System 完全互通,一键切换、卸载即还原。
色板逐字取自 keyshub.top / isolo-news(web/src/config/themes.ts),壁纸与线上 Hero 背景 SHA-256 完全一致;下方预览卡已接入正式壁纸并按真实 token 色值渲染。
色值与表面透明度均取自插件 THEME_SPECS 的真实定义(keyshub.top / isolo-news),壁纸为随包发布的正式背景图。
#00f0ff#00b8c5#ff2d95#0a0e1a#151c2e#1e2640#111827#e8edf5#00ff88#ffaa00#ff3366rgba(0,240,255,.4)
#ff6b2b#cc5522#3b9eff#faf8f5#ffffff#ffffff#f2eee8#2a2520#22c55e#f59e0b#ef4444rgba(0,0,0,.24)
#f0a030#c08020#4ecdc4#121418#1e2128#282c35#1a1d24#d8dce5#4ecdc4#f0a030#e74c5ergba(240,160,48,.36)两处零侵入切换入口均为 additive 槽位(replaceRisk: none),nothing shipped is shadowed。
紧跟内置 Appearance 行(order 11):三张壁纸预览卡片 + 「默认 System」卡,点击即切换,当前主题高亮描边。
四色渐变调色板按钮(order 10),点击弹出菜单:NEXUS 赛博霓虹 / COMIKET 温暖纸感 / IRONCORE 机械工业 / 默认 System;窄栏(rail)下自动收成纯图标。
调色板按钮图标为四色锥形渐变(真实样式)
自定义令牌 --dsw-theme-wallpaper 由主题 presenter 写入 body 内联变量,切换主题即换壁纸(零 DOM 代码);表面令牌半透明(base 0.35 / layer-1 0.78 / overlay 0.94),壁纸从底层透出。
NEXUS / COMIKET / IRONCORE 三套完整主题,色板逐字取自 keyshub.top / isolo-news 的 themes.ts,壁纸 SHA-256 与线上一致。
--dsw-theme-wallpaper 令牌驱动 body 壁纸,表面令牌按 alpha 分层半透明(base 0.35 / layer-1 0.78 / overlay 0.94),毛玻璃观感。
60+ 个 --dsw-alias-* / --dsw-specific-* 令牌:品牌、标签、状态、按钮、交互悬停、代码块、输入框、气泡、侧边导航,一处色板全局生效。
设置 → 通用「外观主题 / Theme」(order 11)+ 侧边栏底部调色板(order 10),additive 槽位注册,replaceRisk: none。
主题、样式、槽位全部 fiber-owned:插件停用或更新时自动注销、移除、释放,不留任何残留,偏好安全复位。
完整源码开放,可自由修改、二次创作与分发(壁纸版权归 keyshub.top 项目所有)。
要求:本机已安装 DSH(dsh CLI 可用),并能访问 npm registry。
推荐。脚本自动完成安装与 loader 插入,可传参指定 profile。
适合熟悉 DSH 部署结构的用户,全程无需修改客户端文件。
pnpm add dsh-theme-triptych(或 npm install)dsh --profile web# 方式一:官方安装脚本(推荐)
bash install/install.sh # Linux / macOS / Git Bash
powershell -ExecutionPolicy Bypass -File install/install.ps1
# 方式二:手动三步
cd "$DSH_HOME/profiles/web" # Windows: %USERPROFILE%\.dsh\profiles\web
pnpm add dsh-theme-triptych # 或 npm install dsh-theme-triptych
# 在 cordis.patch.yml 末尾追加:
# - insert:
# - id: dsh-theme-triptych
# name: dsh-theme-triptych
# 重启 DSH
dsh --profile web
# 验证壁纸路由(应返回 200 与 image/jpeg)
curl -I http://127.0.0.1:3080/dsh-theme-triptych/nexus.jpg
# 卸载
cd "$DSH_HOME/profiles/web"
pnpm remove dsh-theme-triptych
# 并从 cordis.patch.yml 删除安装时追加的 insert 块
Triptych 是一个标准 DSH 双面 dsh.client 包:
Node 半部(lib/index.js)用 webServer 提供三张壁纸路由;浏览器半部(lib/client.js)经 __ModuleLoader__.load 工厂包装,
注册主题、注入壁纸样式与切换器 UI。宿主扫描 dsh.client.inject 后自动把客户端包编入 window.__DSH_BOOT__——无需重新构建 DSH Web 产物。以下为仓库源码节选。
{
"name": "dsh-theme-triptych",
"version": "0.1.0",
"type": "module",
"main": "lib/index.js",
"exports": {
".": { "default": "./lib/index.js" },
"./client": { "default": "./lib/client.js" }
},
"dsh": {
"client": {
"inject": [
"@deepseek-ai/dsh-client-runtime",
"@deepseek-ai/dsh-client-ui-theme"
],
"platform": "web"
}
}
}
// 把 keyshub 色板映射到 DSH --dsw-alias-* / --dsw-specific-* 令牌
theme.register({
id: 'nexus',
displayName: 'NEXUS',
colorScheme: 'dark',
tokens: {
/* 表面(半透明 → 壁纸透出,玻璃拟态) */
'--dsw-alias-bg-base': hexToRgba('#0a0e1a', 0.35),
'--dsw-alias-bg-layer-1': hexToRgba('#151c2e', 0.78),
'--dsw-alias-bg-overlay': hexToRgba('#1e2640', 0.94),
'--dsw-specific-sidebar-fill': hexToRgba('#111827', 0.66),
/* 品牌 / 文字 / 状态 */
'--dsw-alias-brand-primary': '#00f0ff',
'--dsw-alias-label-primary': '#e8edf5',
'--dsw-alias-state-business-primary': '#00f0ff',
/* 壁纸(主题 presenter 写入 body 内联变量) */
'--dsw-theme-wallpaper': "url('/dsh-theme-triptych/nexus.jpg')",
// ... 共 60+ 个令牌
},
})
/* 主题 presenter 把活动主题令牌写入 body 内联变量后生效 */
body {
background-image: var(--dsw-theme-wallpaper, none);
background-size: cover;
background-position: center;
background-attachment: fixed;
background-repeat: no-repeat;
}
需要本机已安装 DSH(dsh CLI 可用)并能访问 npm registry;
切换入口仅在 Web GUI 显示(依赖 dsh.client.inject 注入的运行时与 UI 主题包)。
插件停用/更新时主题、样式与槽位自动清理,卸载即还原。壁纸图片版权归 keyshub.top 项目所有。