dsh-desktop-transparency:让 DSH Desktop 窗口看起来透到桌面

前言

DSH Desktop 基于 Electron。在 Windows 上,主进程对窗口材质做了硬限制:acrylic、mica 会被静默改成 off,transparent 会直接抛错,因此无法靠「真窗口穿透」或单纯改 CSS 做出桌面壁纸从窗口里露出来的效果。

社区插件 dsh-desktop-transparency(维护者 biotechdrli-byte)换了一条路:读取系统壁纸,按屏幕坐标钉在界面最底层,再对五个 UI 分区分别调半透明。视觉上接近穿透,且不把桌面端搞崩。本文介绍其原理、安装与日常用法;事实以 GitHub README 为准。插件在 SkillHub 目录 归类为「趣味换装」。

这是什么

dsh-desktop-transparency 是面向 DSH Desktop(Windows) 的分区透明壁纸主题插件(npm 包名 dsh-desktop-transparency,当前 README 对应版本 0.7.0,MIT 许可证)。

一句话:把系统壁纸与屏幕对齐铺在窗口底层,左栏、对话区、顶栏、右侧栏、浮层各自独立透明度,外加模糊与压暗,让界面看起来像浮在桌面上,而不是窗口里贴了一张静态背景图。

macOS 原生支持窗口透明,README 写明不需要本插件;平台与实测版本见下文「适用与限制」。

核心能力

屏幕对齐的壁纸层

插件不按窗口尺寸铺图,而是钉在屏幕坐标系上:

  • 元素尺寸 = 屏幕逻辑尺寸(SW × SH)
  • background-size = SW px × SH px(与 Windows「填充」一致)
  • 元素位移 = (-window.screenX, -window.screenY)

窗口移动或缩放时,壁纸相对屏幕不动,只露出更多或更少区域。README 用未最大化窗口的边框内外礁石、沙滩纹理连续作为对齐证据。

五个分区独立透明度

opacity 在 DOM 上会向下相乘;若整窗统一降透明度,弹窗和菜单会一起变淡。插件对五个兄弟区域分别设置 opacity,默认值为:

分区 默认
左侧栏 0.81
对话区 0.60
顶栏 0.86
右侧栏 0.66
浮层 / 弹窗 0.96

壁纸模糊默认 29px,背景压暗默认 0.18。中区根节点会交出整块底色,由 header 与 body 各自承担背景,以便顶栏与对话区可分开调节(详见 README「结构让位」中的 CSS 说明)。

控制面板与持久化

右下角浮动面板:拖动标题可移动,Ctrl+Alt+H 收起/展开;收起后右下角保留 ⚙ 圆点可重新打开。

十个控件:五个分区透明度(0.05~1.00)、壁纸模糊(0~60 px)、背景压暗(0~1.00)、对齐偏移 X / Y(-80~+80 px),以及偏移归零与整体还原。调节结果写入 localStorage(键 dsh-dtp-state),重启后保留。

常用快捷键:

快捷键 作用
Ctrl+Alt+H 显示 / 隐藏面板
Ctrl+Alt+←→↑↓ 对齐微调 1px(加 Shift 为 10px)
Ctrl+Alt+D 导出界面结构快照

Host 侧:壁纸与路由

lib/index.js 负责发现 Windows 当前桌面壁纸(优先 %APPDATA%\Microsoft\Windows\Themes\TranscodedWallpaper,否则退回注册表原图路径),经本机回环 HTTP 提供给页面(路由含 /dsh-bg/info、/dsh-bg/wallpaper)。自定义路由经宿主信任栅栏,未授权请求返回 401。壁纸每 5 秒根据文件 mtime 轮询,换壁纸后一般在 5 秒内跟上。

安装与启用

插件以当前 DSH 进程权限运行,安装前建议浏览 仓库源码 与 LICENSE。

npm(推荐)

dsh plugin --profile desktop add dsh-desktop-transparency

从 npm 安装,README 注明带 SLSA provenance 签名。装完后完全退出 DSH Desktop 再重新打开(仅刷新页面不够)。

从 GitHub

dsh plugin --profile desktop add github:biotechdrli-byte/dsh-desktop-transparency

卸载

dsh plugin --profile desktop remove dsh-desktop-transparency

典型用法

  1. 按上一节安装并重启 DSH Desktop。
  2. 将窗口拖成非最大化,观察窗口边框:框内壁纸应与框外桌面壁纸无缝衔接。多数机器首次使用需校准 1~2px:用面板「对齐偏移 X / Y」或 Ctrl+Alt+方向键(步进 1px)。README 在 Windows、125% 缩放、DSH Desktop 2.0.18 上给出参考 X = -7.5、Y = -38.5,不代表你的环境相同,需自行校准。
  3. 按阅读习惯调节五区透明度、模糊与压暗;需要排查分区选择器时,按 Ctrl+Alt+D 导出快照到 ~/.dsh/dsh-dtp-dom.json。

装上没反应时,可用 README 建议检查本机路由是否注册(401 表示路由在、信任栅栏正常;404 表示插件未加载,需确认 bundle 与是否真重启)。端口见 %USERPROFILE%\.dsh\profiles\desktop\.dsh-desktop-runtime.json:

curl -i http://127.0.0.1:<端口>/dsh-bg/info

适用场景与注意

适合谁:在 Windows 上使用 DSH Desktop,希望界面有「透到桌面」的观感,并愿意微调对齐与分区透明度;接受插件读取本机壁纸、经回环 HTTP 在本地展示。

兼容性(README 表格):

项 值
平台 Windows
DSH Desktop 实测 2.0.18 / 内核 0.2.1-rc.2
桌面壳形态 compatibility(无 .dshDesktop* 外壳)
Node ≥ 20
运行时依赖 零

分区选择器绑定 DSH 编译产物的哈希类名,升级 DSH 后可能失效。失效时面板对应分区名后会显示 ⚠,不会静默坏掉;可按 README「兼容性」一节改 lib/client.js 顶部 REGIONS 的 sel 后重启。

已知限制:仅 Windows;多显示器按单主屏计算;最大化与还原若偏移不同需手动切换(尚未实现);与其它主题插件的背景层可能冲突,同一时间只应启用一个。

隐私:会读取 Windows 壁纸、本机回环提供图片、在 Ctrl+Alt+D 或启动约 6 秒后可将结构快照写入 ~/.dsh/dsh-dtp-dom.json;README 写明不发起外部网络请求、不上传会话内容。

结尾

在 Windows 上 DSH Desktop 无法走真窗口穿透时,dsh-desktop-transparency 用屏幕对齐的系统壁纸加分区半透明,把「看起来像透到桌面」做成可调的桌面主题。DeepSeek Harness 生态强调「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。

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

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

Xiaoye