dsh-opencode-tui-theme
v1.1.0
Published
DSH Web 界面 opencode TUI 主题(Client 插件):统一 #0a0a0a 深黑背景、全等宽终端正文、淡紫标题、翠绿内联代码、One Dark 语法高亮、深灰输入框卡片。
Maintainers
Readme
dsh-opencode-tui-theme
DSH(DeepSeek Harness)Web 界面的 opencode TUI 风格主题(Client 插件)。
让整个对话界面复刻 opencode TUI 的观感:
- 统一深黑背景
#0a0a0a(像素采样自 opencode TUI 截图) - 正文浅灰
#d4d4d4、全等宽终端字体、13px 紧凑字号 - 标题淡紫
#c084fc、内联代码翠绿#4ade80(无背景芯片) - 代码块柔和亮度分层(
#131316/ 横幅#19191d)+ One Dark 语法高亮 - 输入框深灰卡片
#1c1c1e,与聊天内容明显分层
v1.1.0 变更
- 修复 v1.0.0 致命 bug:旧版把卸载清理动作直接写进
ctx.effect(fn)的函数体, 而 cordis 的语义是「fn 立即执行、返回值才是清理器」——导致样式注入后同一瞬间被 移除,插件显示 active 但界面毫无变化。v1.1.0 已改为正确写法。 - 新增控制面板:设置 → 插件 → 「Opencode 主题」标签页 ——
● 已启用 / ○ 已停用 状态、启用/停用开关、正文模式(全等宽/无衬线)、
字号(12/13/14px)、代码字体(5 种预设),以及
getComputedStyle实测 body 背景/字体/字号的生效自检行。
安装(正式 · 开机自启)
npm install dsh-opencode-tui-theme然后在本机 DSH profile 的 cordis.patch.yml 追加:
- insert:
- id: opencode-tui-theme
name: 'dsh-opencode-tui-theme'刷新浏览器页面即可生效(配置热加载,无需重启 DSH)。之后每次启动自动生效,无需审批。
注意:npm 安装的包要能被 DSH 找到,需装在 DSH profile 的依赖树里 (
~/.dsh/profiles下执行npm install,或在 profile 的 package.json 中声明)。
启停与验证
- 开关:设置 → 插件 → 「Opencode 主题」标签页,点「停用风格 / 启用风格」。
- 验证是否生效:面板底部有一行「实测 body → …」,显示当前 body 的真实
背景色与字体;主题生效时背景应为
rgb(10, 10, 10)、字体以 JetBrains Mono 开头。 - DevTools 兜底:
document.querySelector('style[data-plugin="dsh-opencode-tui-theme"]')返回 style 元素即已注入。
卸载
删除 cordis.patch.yml 中的 insert 行,然后 npm uninstall dsh-opencode-tui-theme。
工作原理
dsh.client: { platform: 'web' }声明自己是浏览器端插件;- DSH 的
dsh-client-modules扫描组合条目,把exports["./client"]指向的 bundle 伺服为/plugins/<id>/client.js并注入window.__DSH_BOOT__; - 浏览器内核启动时自动挂载,
theme.overrideTokens覆盖 13 个注册主题 token, 并注入<style>覆盖 CSS 层变量(输入框/按钮/代码块/shiki 高亮/字体/字号); - 卸载时通过
ctx.effect的返回值清理 token 层与样式标签。
License
MIT
