Skip to content

Releases

v1.3.1

Choose a tag to compare

@Tim5613 Tim5613 released this 04 Oct 16:24

Changed

  • 截图瘦身:assets/screenshot-light.png(303 KB → 84 KB,-72%)、
    assets/screenshot-dark.png(46 KB → 18 KB,-61%)、preview.png(42 KB → 15 KB,-65%)
    重编码为 8 位索引色 PNG。尺寸与画面不变:全图最大通道差 15(浅色)/ 42(深色)、
    均值 0.131 / 0.026,且差值集中在文字边缘的抗锯齿像素,纯色区与渐变区几乎全为 0,
    所以看不出色带。README 与市场详情页读的就是这几张图,卡片加载因此变快。
  • 新增 npm run png:optimize(scripts/optimize-png.mjs):换过截图后重跑即可,
    已优化的图不会被改小或改坏。sharp 只作为 devDependency,不进包。

安装

dsh plugin --profile web add dsh-homepage-glass

或从本 Release 的预构建 tarball 安装(免本地构建):

dsh plugin --profile web add "https://github.com/Tim5613/dsh-homepage-glass/releases/download/v1.3.1/dsh-homepage-glass-1.3.1.tgz"

完整提交对比:v1.3.0...v1.3.1

v1.3.0

Choose a tag to compare

@Tim5613 Tim5613 released this 30 Sep 10:17

Changed

  • 项目改名为 dsh-homepage-glass(原 dsh-homepage-palette-skin)。GitHub 旧地址自动重定向;
    设置名字空间随条目 id 一起改,profile 补丁层的 lightTint 值同步迁移,已保存的偏好不丢。
  • 深色底改为灰黑:画布 #151517 → #242529,卡片 #232324 → #323337、#2c2c2e → #3b3c40、
    #353638 → #444549 —— 四个层级一起抬,层间距不变,"画布最深、卡片逐层变亮"的层次保持。

完整提交对比:v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@Tim5613 Tim5613 released this 30 Sep 09:30

Added

  • 「官网流动」:浅色内容配色新增一档,复刻 https://www.deepseek.com/ 首页那层
    缓慢流动的蓝色背景。
    • 官网原实现是 WebGL:type:"pattern" 着色器,实测配置为
      colors ["#8AA3D6","#FFFFFF","#FFFFFF"]、speed 14、swirl 12、
      distortion 20、scale .5、shape "checks"、shapeScale 10、offsetY 65;
      u_time = 毫秒×0.001×(speed/100) 且着色器内再 ×.5,约 0.07 秒/秒,所以极慢。
    • 外层遮罩沿用官网那条单调向下淡出,只在最底部留一点(官网到 100% 归零,
      本插件留 0.30),这样输入框底下仍有东西可透;全程单调下降,所以不会出现
      "第二条色带"(曾试过 U 形,蓝色被推成左下/右上两团,已弃)。
    • 本插件直接跑官网原版着色器(不是近似):GLSL 逐字提取,uniform 与官网
      JS 的归一化(offset/100、rotation/90、proportion/100、softness/100、
      shapeScale/100、distortion/100、swirl/50、u_time = 秒×(speed/100))
      全部照搬 —— 所以颜色、速度、运动方式与官网一致。
    • 为什么不用 CSS 近似:试过,不成立 —— 色值对不上(不是同一套噪声场),
      速度也差了十几倍(7% 位移 / 84 秒,而官网约 0.07 秒/秒,即一个特征
      横穿屏幕约 70 秒)。
    • 画布挂在框架内(z-index:-1:画在框架背景之上、内容之下),侧边栏的
      不透明渐变正好盖住左半边,接缝天然对齐。
    • 输入框改为毛玻璃:卡片一层半透明白(官网输入框实测 α≈0.58;本插件取
      0.36 的淡蓝白,兼顾"玻璃感"与"页面保持干净")+ backdrop-filter,
      底下能透出流动。
    • 只作用于浅色模式;30fps 节流、窗口隐藏自动停;系统关闭动效时只画一帧。
    • 没有 WebGL2 时安全退回纯色纸面。

Fixed

  • 「官网流动」的取值没加进宿主侧 Config 的白名单(LIGHT_TINTS),
    导致选中后无法持久化、重启即丢。已补上。
  • 输入框透不出流动:白叠了两层 —— seat 一层 58%、卡片自己又一层不透明底,
    复合后约 82%。改为只有卡片一层,seat 只保留模糊(模糊同样能遮住滚过去的
    内容)。卡片的 backdrop-filter 另挂到带 mask 的伪元素上 —— 模糊没有渐变,
    直接加会在 seat 顶边硬切出一条分界线(实测该处 #a5b8df → #9fbbf3)。
  • 浅色模式下侧边栏两处看不清:顶部 Windows 菜单(网页自己画的,藏在 shadow DOM
    里,靠自定义属性跨边界继承改 token;侧边栏收起时菜单会移到内容区上方,故加了
    作用域判断)与**「新会话」按钮**(浅色主题给的是不透明浅底,而本皮肤把侧边栏文字
    强制成浅色 → 浅底浅字;按参考图实测的 8.5% 白压回)。
  • 侧边栏 HARNESS 徽标看不清:它用 label-primary 当底色、
    label-primary-inverted 当文字色 —— 一对 token 必须成对翻,之前只翻了一个。
  • Electron 的标题栏覆盖层在右上角留一块白。它的颜色来自 DSH preload 里一个隐藏
    探针(读 --dsw-specific-sidebar-fill 的 computed 值),且只在 document.body 的
    [style] 属性变化时才重读 —— 所以在浅色下把该 token 置为 transparent,并主动
    动一下 body.style 触发重读。

Changed

  • 「雾蓝 · 深」改名为 「雾蓝」 —— 淡、中两档删除后,"深"已失去对比对象。
    只改显示名,档位键 mist-3 未动,所以已保存的偏好与宿主白名单都不受影响。

Removed

  • 「浅色内容配色」移除了 「雾蓝 · 淡」 与 「雾蓝 · 中」 两档,只保留
    默认 / 官网流动 / 雾蓝。宿主侧的白名单(LIGHT_TINTS)同步移除 ——
    两侧必须一致,否则会出现"切得动但存不住"(前面踩过)。若原本正选着被删的档位,
    会安全回落到「默认」。

v1.1.0

Choose a tag to compare

@Tim5613 Tim5613 released this 30 Sep 08:01

Added

  • 「浅色内容配色」:设置 → 通用 新增一行,可为右侧内容区选一层低眩光底色,
    仅浅色模式下生效。四档:默认 / 雾蓝 · 淡 / 雾蓝 · 中 / 雾蓝 · 深。
    三档着色都由侧边栏顶端的色相(#3a4f6c,H≈215°)推导而来,与左侧栏同属一套
    材质 —— 压住纯白的眩光,又不会出现"左边冷蓝、右边暖黄"的割裂。
  • 偏好通过宿主的 settings section 持久化(与 ui-theme 存明暗偏好同一机制),
    不是 localStorage —— 后者会因本地端口每次启动可能不同而丢失。
  • 宿主侧新增 Config schema(.volatile());客户端用
    ctx.configForms.get(<名字空间>) 读写。设置行注册在可选依赖上
    (ctx.inject(["slots","locale","configForms"], …)),
    因此该功能缺失或失败都不会影响皮肤本体。

v1.0.1

Choose a tag to compare

@Tim5613 Tim5613 released this 30 Sep 07:26

Fixed

  • 顶部标题栏与侧边栏的蓝/黑交界错位 1px。 标题栏那条硬切渐变的落点写成了
    calc(var(--dsh-windows-sidebar-width) - 1px),比侧边栏真实右边缘少 1px,
    于是 y=40(标题栏高度)处出现一个台阶。改为直接使用该变量,交界在全高对齐。
    (实测依据:浅色 / 深色两张截图里,y<40 交界在 x=283,y≥40 在 x=284。)

Added

  • 浅色 / 深色截图 assets/screenshot-light-mode.png 与 assets/screenshot-dark-mode.png,
    以及 screenshots.json —— 供插件市场详情页展示。
  • README 增加「截图」小节(并列展示两种主题),并补全目录结构。

完整提交对比:v1.0.0...v1.0.1

v1.0.0

Choose a tag to compare

@Tim5613 Tim5613 released this 30 Sep 06:34

复刻 DeepSeek Harness 官网预览图(macOS)的深蓝渐变玻璃侧边栏到 Windows 客户端。

亮点

  • 左侧栏:固定深蓝渐变(顶部 #3a4f6c 蓝 → 底部 #393d45 中性深灰),不跟随浅色 / 深色
  • 右侧内容区:保持不透明,正常跟随浅色 / 深色
  • 品牌色:主按钮 / 品牌强调色 = DeepSeek 蓝 #4d6bfe(深色模式 #6799fe)
  • 深底配浅字:侧边栏子树内的文字 / 边框 / 交互色自动固定为浅色,浅色模式下也不会"深底深字"
  • 零 npm 依赖:宿主提供全部依赖,仅用 ctx.theme 与一张注入的样式表

颜色全部来自逐像素采样

不是肉眼估的 —— 对官网预览图采样并用 P = a·255 + (1−a)·B 反解:

项目 实测值
渐变 顶部 #3a4f6c
渐变 中段 #414a56
渐变 底部 #393d45
面板叠加(按钮 / 选中行) rgba(255,255,255,.085)
正文文字 #e6e8eb
分区标题 #9399a1

关键:饱和度向下递减 —— 顶部偏蓝,越往下越接近中性深灰,底部并不发紫。

安装

生效无需刷新、无需重启(DSH 客户端 bundle 是热加载的)。

1. 从 GitHub 安装

pnpm add github:Tim5613/dsh-homepage-palette-skin

然后把包名加进 profile package.json 的 dsh.profile.bundles。

2. 锁定版本安装

pnpm add github:Tim5613/dsh-homepage-palette-skin#v1.0.0

3. 交给 DSH 插件管理器(本地 file: 规格)

install_bundle  target = file:<你的路径>/dsh-homepage-palette-skin

实现要点

这套侧边栏 DSH 本来就自带,但被 [data-platform=darwin] 锁死在 macOS;Windows 上只是一条不透明纯色。本插件绕过五个坑:

  1. 平台锁 —— 官方样式在 [data-platform=darwin] 下,Windows 一条不生效
  2. 侧边栏不是一个元素 —— 里面还嵌着 ui-sidebar 的 SidebarRoot,自带
    background:var(--dsw-specific-sidebar-fill) 且 height:100%,等于盖了个不透明盖子。
    → 把该 token 在侧边栏子树内置为 transparent
  3. 内容卡片左上 16px 圆角缺口 会露出框架底色 → 框架底色设成卡片色,缺口隐形
  4. 自加顶部高光会留亮带(实测 #6a7492)→ 已去掉
  5. 不能只靠 backdrop-filter(系统关「透明效果」时 Chromium 连模糊一起停用)→ 渐变直接写在侧边栏上

已知边界

参考图的通透有一半来自 macOS 原生窗口 vibrancy(vibrancy: "sidebar" + 透明背景色)。
本插件在渲染层改 CSS,看不到窗口外的桌面;DSH 在 Windows 上创建主窗口时也没开任何材质。
所以这里是把参考图的颜色与透明度关系 1:1 复刻,而非真正的窗口级模糊。

另外:Electron 官方的 backgroundMaterial(mica / acrylic)要求 Windows 11,
Windows 10 上会被静默忽略。

完整提交对比:https://github.com/Tim5613/dsh-homepage-palette-skin/commits/v1.0.0