dsh-wallpaper-glass:在 DSH 主窗口背后透出本机桌面壁纸

前言

DeepSeek Harness(DSH)桌面端的主界面默认是不透明的面板叠在窗口之上。若你希望主窗口像「桌面上挖出的洞」一样,背后就是系统正在显示的那张壁纸,并且换壁纸、拖窗口、最大化时仍能对齐,就需要在客户端侧做壁纸解析、本地路由和界面 token 覆盖。dsh-wallpaper-glass 是社区插件,由 talulra 维护,在 SkillHub 目录中归类为「趣味换装」。它把本机桌面壁纸垫在 DSH 主窗口后面,主壳半透明,对话框、菜单和内嵌浏览器仍保持原有不透明背景。

这是什么

dsh-wallpaper-glass 的定位是:在 DeepSeek Harness 主窗口背后显示本地系统壁纸,窗口半透明且尽量与桌面对齐,并随壁纸明暗调整可读性遮罩。插件通过 Host 解析 OS 当前壁纸文件,经会话保护的本地 HTTP 路由提供给页面;浏览器侧重写主题 surface token,仅主壳玻璃化。维护者与源码仓库见 GitHub,目录页见 SkillHub。DSH 社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

下面按 README 中已说明的能力归纳,不写资料未提及的行为。

壁纸来源与跟随

Host 在 Windows 上优先使用 %APPDATA%\Microsoft\Windows\Themes\TranscodedWallpaper,再查注册表 WallPaper,再取 Themes\CachedFiles 中较新的文件;macOS 用 osascript 读桌面图,Linux 用 gsettings picture-uri,均为 best-effort。页面默认每 4 秒请求 /dsh-wallpaper/meta,Host 仅 stat 文件,以 mtime-size 为修订号;修订变化后再拉 /dsh-wallpaper/image。支持读取 WallpaperStyle / TileWallpaper,对应 fill / fit / stretch / center / tile。

主窗玻璃化与对齐

浏览器侧通过 ctx.theme.overrideTokens 改写 --dsw-alias-bg-*、--dsw-specific-sidebar-fill 等 token,仅主壳半透明。默认开启像素对齐:在固定层内放一块屏幕尺寸的 plate,负偏移等于窗口在屏幕上的位置,使窗口显示与桌面同一区域;移动、缩放、贴边与最大化在约 250 ms 内跟随。多显示器或负原点等情况下会退化为 data-align="fallback",用壁纸铺满窗口自身而非留空。

可读性与交互层

在 32 px 画布上对壁纸求平均亮度:浅色主题下压暗壁纸时加雾,深色主题下亮壁纸时加深。浅色主题里 label-secondary 等标签降一档(如 secondary #61666b → #353638),深色主题保持原值。role=dialog、菜单/列表/tooltip,以及内嵌 iframe/webview 周边面板恢复不透明;输入框沿祖先查找实际绘制背景的节点并标记 data-dshp-solid。三条壁纸相关路由均经 connection.requestRejection(),未认证请求不会拿到壁纸。

右下角控件

可拖动的 ◐ pill 位于右下角,位置会记住,选项保存在 localStorage:

  • 壁纸:显示 / 隐藏
  • 透明度:subtle / medium / strong
  • 虚化:0 / 8 / 16 / 28 px
  • 对齐桌面:开 / 关
  • 重置本机设置

配置里 controls: false 可去掉该控件。

安装与启用

安装前请自行查看仓库源码与 MIT 许可证;插件以当前 dsh 进程权限读取本机壁纸路径,属敏感能力,勿在未审阅代码的情况下安装。

在 PowerShell 中,对 desktop profile 执行官方命令:

# from GitHub
dsh plugin --profile desktop add github:talulra/dsh-wallpaper-glass

# local development, from a checkout
dsh plugin --profile desktop add link:C:\deepseek\dsh-wallpaper-glass

# uninstall
dsh plugin --profile desktop remove dsh-wallpaper-glass

安装会把依赖写入 profile manifest,并把 bundle 追加到 dsh.profile.bundles。若启用了 HMR,保存配置后会现场重组;否则需重启客户端。

安装器会在 profile 的 cordis.patch.yml 末尾追加类似配置(字段以仓库文档为准):

- id: ui-wallpaper-glass
  config:
    intensity: medium   # subtle | medium | strong
    align: true         # pixel-align with the desktop (on by default)
    blur: 0             # 0-40 px blur applied to the wallpaper itself
    pollMs: 4000        # how often the page asks whether the wallpaper changed
    imagePath: ''       # pin one image instead of following the system wallpaper
    controls: true      # corner pill
    enabled: true

imagePath 非空时可固定一张图,不再跟随系统壁纸;pollMs 调节检测间隔;blur 作用于壁纸图层本身(0–40 px)。

典型用法

  1. 安装插件并重启客户端(或无 HMR 时同样需重启),确认主窗口背后出现本机壁纸且对话框仍为不透明。
  2. 用右下角 pill 在 subtle / medium / strong 透明度与虚化档位间切换,按需开关「对齐桌面」。
  3. 若只需静默玻璃效果、不要控件,在 cordis.patch.yml 里设 controls: false。
  4. 开发壁纸解析或路由时,仓库提供本地脚本(在项目 checkout 内执行,非安装路径):
node dev/detect-test.mjs    # wallpaper resolution only
node dev/route-test.mjs     # exercise the three HTTP routes
node dev/preview.mjs        # DSH-like preview; ?overlays=1 shows dialog/menu/browser fixtures

dev/preview.mjs 可用 ?screen=1920x1080,400,300&dpr=1 模拟显示器几何以检查像素对齐。

适用场景与注意

适合在 Windows 上长期使用 DSH 桌面端、希望主界面与桌面壁纸一体化的用户。资料中说明:Windows 多显示器时 TranscodedWallpaper 常为主屏合成图,窗口拖到副屏会 fallback 为铺满窗口;像素对齐依赖 window.screenX/screenY 与 CSS 像素,无边框窗口对齐较准,有框窗口可能差几个像素。在普通浏览器里打开时壁纸仍可在页面内渲染,但浏览器窗口不透明,无法得到「桌面上挖洞」的效果。较旧 DSH 若无 overrideTokens,壁纸层仍会渲染但不会应用透明。Linux / macOS 壁纸路径解析为尽力而为,填充模式有假设。package.json 中当前版本为 0.5.4。

结尾

dsh-wallpaper-glass 把本机壁纸、主窗半透明与明暗自适应遮罩绑在一起,并刻意保留对话框、菜单与内嵌浏览器的实心背景,避免玻璃化影响操作。需要安装命令与配置字段时以仓库 README 为准:GitHub — talulra/dsh-wallpaper-glass;插件索引:SkillHub 目录页。

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

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

Xiaoye