dsh-web
zhu1090093659
DeepSeek Harness (DSH) Web 插件聚合生态 · 万物皆插件,通过创意工坊分发||DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
elysia395/dsh-wallpaper-engine
把本机 Wallpaper Engine 的壁纸搬进 DSH 网页界面:场景壁纸由内置 MIT 开源引擎 WebWallGL 实时 WebGL 渲染(粒子 / puppet 骨骼 / SceneScript / 音频反应 / 鼠标交互),失败自动降级内嵌 MP4 与场景静态帧;Web 壁纸严格沙箱 + WE API;iOS 风格液态玻璃 UI 高度自定义,遮挡暂停省电、ffmpeg 帧率上限转码、系统音频频谱与 Now Playing、自定义上传与自动轮播;设置存宿主端,对 agent 零 token 开销。Windows / macOS / Linux 三平台原生(同一个包、同一条命令)。
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:elysia395/dsh-wallpaper-engine
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
🆕 没用过命令行?先看这里:小白向使用指南(新手快速上手)→ —— 给完全没接触过命令行的用户准备的简化说明。
一个 DSH bundle,把你电脑上的 Wallpaper Engine 壁纸变成 DSH 网页界面(dsh web)的背景。

壁纸 + 磨砂遮罩 + iOS 液态玻璃,渲染在 DSH 界面后方。
docs/CHANGELOG.md;升级前置条件见 docs/UPGRADING.md。docs/(随包的是运行期文件:lib/**、cordis.patch.yml 与三份 README)⇒ 上面这些 docs/… 链接在 npm / 插件市场里点不开,请到源码仓库 https://github.com/elysia395/dsh-wallpaper-engine 的同名路径阅读。它会自动发现你本机的 Wallpaper Engine 安装,列出你的壁纸,并把可移植的类型渲染到 DSH 对话界面后方的固定图层,配以 iOS 风格的液态玻璃界面改造。
版本号、issue 号与性能数字一律记在
docs/CHANGELOG.md。
壁纸渲染(核心)
降级链的顺序、看护判据、失败记忆分层与垫底画面来源只在
docs/HOW-IT-WORKS.md定义一处 —— 本文只承诺"不会黑屏、不会被一张坏帧永久卡住", 不重复它的步骤(重复一份就会在下一次改动时漏改一处)。
界面改造(核心)
中文 / English,装了语言包也一并跟随);切换即时生效,不需要重载页面,设置页、选择器、右栏 / 抽屉、吉祥物、字体集与更新说明全部跟着换。.json 分享)。特色功能
dsh-better-sidebar 的侧边栏专门适配(毛玻璃、高光与层级统一),另有一组独立的侧栏玻璃控制。⚠️ 本插件要求 DSH 内核 ≥ 0.1.5(0.1.5-rc.1 起——官方桌面端线与 DSH Desktop ≥ 2.0.7 线都满足;实测下限)。
dsh-better-sidebar不再有版本限制(装了的话建议顺手更新到最新)。版本矩阵与升级注意事项见docs/UPGRADING.md。
Wallpaper Engine 本体把壁纸分四种类型;本插件支持其中的三类:
| 类型 | 由谁渲染 | 能否搬到 DSH |
|---|---|---|
| Scene(场景) | Wallpaper Engine 自带的 3D 引擎 | ✅ 实时渲染 — 内置 WebWallGL WebGL 引擎(粒子 / 脚本 / 视差 / 包内音频);失败按出图来源链降级 |
| Web(网页) | Wallpaper Engine 内置的 HTML/JS 运行时 | ✅ 实时渲染 — 内置 WebWallGL 的网页挂载 + 注入 WE API(音频监听/属性/媒体),严格沙箱隔离;失败自动回退兼容 iframe |
| Video(视频) | Wallpaper Engine 内置播放器 | ✅ 直接播放 — 走上传视频同一套硬化管线(转码、解码帧率上限、遮挡暂停、倍速/翻转) |
| Application(应用) | Wallpaper Engine 启动第三方可执行程序 | ❌ 不支持 —— 它要宿主直接运行外部程序,本插件不提供该能力 |
四类壁纸各自的渲染路径、优雅降级、出图来源链与空帧门禁、以及排查用的诊断行, 见
docs/HOW-IT-WORKS.md。
一句话:宿主(lib/index.js + lib/routes/*.js)负责找到 Wallpaper Engine 与你的壁纸库、
把媒体按需喂给浏览器;客户端(lib/client.js)负责把选中的壁纸挂到应用三列后方的固定图层,
并在「设置」里注册一个一级页签「Wallpaper Engine」。
出图来源链(实时渲染 → 内嵌 MP4 → 实时抓帧 → 自定义画面 → 空态)、宿主/客户端分工、 全部 HTTP 路由表、以及"为什么没有 CPU 兜底出图"的设计理由,都在
docs/HOW-IT-WORKS.md。实现细节以代码注释为准(本仓「代码即真相」)。
如果你只是想用这个插件,直接装 npm 上已发布的包即可:
dsh plugin --profile web add dsh-plugin-wallpaper-engine
装完重启 dsh web,打开 设置 → Wallpaper Engine 就能用。
macOS / Linux 用户:本插件在 Windows / macOS / Linux 上原生可用 —— 三平台装的是同一个包、同一条命令(媒体链路也各自原生:GSMTC / MediaRemote / MPRIS)。
macOS 没有 Wallpaper Engine 客户端,因此扫不到 Steam 壁纸库:把「自定义壁纸」的存储位置指到一个装着 WE 工程目录的文件夹(
project.json+scene.pkg/index.html/*.mp4),里面的场景 / 网页 / 视频壁纸会照常收录、场景同样实时渲染;也可以直接上传图片 / 视频。
用 link: 装本地一份代码、构建与验证、热挂载与编码铁律(含 lib/client.js 到底是什么)见
CONTRIBUTING.md。宿主端改动要重启 DSH 才生效(CLI 装的走 --profile web,桌面端走 --profile desktop 且必须先完全关闭应用)。
装不上(ERR_PNPM_UNEXPECTED_VIRTUAL_STORE 等)的逐步处置,见
docs/TROUBLESHOOTING.md。
dsh web,进入 DSH 界面。
设置界面:液态玻璃卡片,六个页签(壁纸库 / 外观 / 播放 / 系统 / 扩展 / 关于)。

选择弹窗:浏览全部壁纸缩略图,支持批量隐藏与已隐藏恢复。
设置页分六个页签 —— 壁纸库(选择 / 轮播 / 自定义上传)· 外观(配色 / 玻璃 / 字体 / 侧栏)· 播放(效果 + 声音)· 系统(吉祥物 —— 可导入自己的立绘替下内置形态(再导入即覆盖上一次;两个形态卡片在自定义生效时禁用,清除后恢复可选)+ 高级)· 扩展(后续功能的模块容器:目前挂着自定义会话头像(第一项,总开关默认关)—— 开启后宿主的会话界面被"排成好友聊天":你的消息靠右、带头像,助手的靠左、带它自己的;头像可以导入自己的图片(只存在本机:宿主数据目录的 avatars/,导入前先缩到 512px 以内),没导入就画内置的默认头像(我方 = 人像、助手 = 四角星),形状默认正圆、大小(24–72px)与圆角强度(0–100%,100% = 正圆、0% = 直角方形)各一个滑块;关掉开关,会话立刻恢复原样(注入的节点与标记全部摘掉),它对壁纸、玻璃、字体那些设置一概不碰)与点击效果与拖尾效果(总开关默认关、按需开启)—— 它是跟着指针走的霓虹光效:点击按「涟漪」(从落点扩散的两圈圆环)/「星火」(一簇亮点向四周飞散)/「两者」在落点炸开,拖尾按「彗尾」(一条逐段收细、尾部渐隐的光带)/「星尘」(按步距留在原地的亮点)记下指针划过的一路,轨迹按「拖尾时长」自行淡完(指针停住也照淡);整层用 lighter 叠加,颜色可跟主题色 / 彩虹(每个实例一个色相、还随时间流转)/ 自定义,不透明度与混合模式(滤色 = 只把画面加亮,最像霓虹;也可手选正常 / 叠加 / 正片叠底 / 变亮)都写在宿主元素上;点在自己的界面控件上不炸光效,监听是 passive 的、绝不拦指针;这一层刻意不读壁纸像素(所以它没有「自动」档),层级恒在壁纸之上、暗化层之上;点击 / 拖尾各有一个子开关,任一开着即生效,总开关默认关;三号 3D 效果是随光标移动的视差纵深:光标偏离屏幕中心时,壁纸与吉祥物沿关于中心对称的方向轻轻偏移,偏移量按最长对角线的百分比计(光标贴在屏幕角上时 ⇒ 该层挪它那个百分点的对角线)—— 壁纸默认 1%、吉祥物跟着壁纸一起(可单独关掉)、缓动平滑可调(0 = 立刻跟手,越大越柔和);壁纸会同时按同样多放大,免得边上露出底色;界面元素跟随(子开关,默认关)打开后,输入卡片 / 会话文本区 / 侧栏作为整块跟着挪 —— 文字与底下的玻璃一起动(离眼睛越近走得越多:界面与壁纸同向,读起来像镜头横移;四个区域的距离各自独立(没有总倍率:会话文本区 / 输入卡片 / 侧栏 / 用户气泡各一个滑块,0 = 那一块完全不缓动)),位移量化到整设备像素(带迟滞:缓动尾巴在零附近不再来回翻,这正是「经过屏幕中线时发抖」的来路)、停下就把属性摘掉(translate 整条摘掉;属性在就成立包含块),组里有固定定位后代就整组不动;只有左上角那一列例外 —— 宿主的「收起侧边栏」按钮是它里面的固定定位后代,所以那一列走相对定位(left / top)而从不写 translate;点击与拖尾那一层刻意不参与 —— 这一层一个 DOM 节点都不建,每帧只把算完的最终位移直接写进要动的那几层自己的 CSS 独立属性 translate(不走继承型自定义属性:写在 body 上等于每帧让整棵文档树重算样式;body 上只剩一个"壁纸补边系数",只在设置变了时写一次),位移与配比不再由样式表算;帧里零测量、跟随显示器真实刷新率;这一层还按"动的那几帧才提合成层、到位立刻摘掉"省开销(到位按屏上还剩多少位移判、系数全 0 时一帧都不排、页面不可见不排帧);后续功能只往注册表里加一项)· 关于(项目简介 / 仓库与实时 Star 数 / 交流群二维码 / 贡献者致谢),每页只保留与它相关的控件,不再是一列三十项的长滚动。页签指示胶囊随选中项平滑滑动,长说明一律收进控件悬停提示(tooltip),行内只保留一句话简述。「关于」不读面板状态、不写设置:文案 + 两张二维码(随包 PNG,走插件自己的路由,离线也显示得出来),外部输入只有那行 star 数与这两张图 —— 切进本页时由宿主代取 GitHub API(带缓存,拉不到就显示上一次的值)。一键 Star 不做:GitHub 点星必须有你的凭据,插件不存 token —— 按钮打开仓库页,旁边另有可复制的地址。
contentrating 字段(WE 壁纸读 project.json,自上传内容读 uploads/.meta.json)分 全部 / Everyone(默认)/ PG13 / Mature / 未分级;自上传内容未标注时按 Everyone 处理。这个字段由插件直接扫盘读取,不跟随 WE 客户端里的成人内容开关。playbackRate,即时生效、不重载不黑屏。scaleX(-1),零主线程开销)。「系统」→「高级」里的适配段自动识别插件跑在 原生浏览器 / 非官方桌面端 / 官方桌面端 哪一种里,并显示「检测到:… · 有 / 无能力头栅栏」;检测不准时可手选覆盖 —— 手选优先于检测。判定与操作系统无关:宿主按请求头与 UA 观测(能力头 x-dsh-desktop-renderer ⇒ 非官方桌面端,UA 含 Electron/ ⇒ 桌面壳,两者皆无 ⇒ 原生浏览器),观测结果用只增不减的闩锁记住。它同时决定四件事:网页壁纸载荷走独立媒体源还是应用源(原生浏览器没有栅栏,就不再多开一个 loopback 监听)、桌面壳材质规则是否生效(一律经 [data-we-adapter^="desktop-"] 门控,浏览器形态不吃壳层材质)、「窗口失焦时暂停」是否提供(见下),以及面板各行的显隐与警示(手选与检测冲突时直接说明后果,例如手选浏览器却观测到栅栏 ⇒ 网页壁纸会 403)。
「系统」→「高级」里的遮挡暂停三档(最小化 / 切页、窗口失焦、使用电池;各档默认值见控件本身):命中时机时视频壁纸直接停解码(不靠浏览器节流,解码引擎归零),场景实时渲染同时暂停渲染循环;回到界面 / 接通电源自动继续(手动暂停过的不会被自动恢复)。其中「窗口失焦时暂停」只在适配目标为「原生浏览器」时提供 —— 桌面壳失焦时壁纸多半仍整块可见,按失焦暂停会定格可见画面;该档的值不会被删掉,切回浏览器目标即恢复生效。
「播放」→「效果」里的帧率上限(可选档位见控件本身)针对高帧率源:宿主用 ffmpeg 一次性把源转成上限帧率(时间线保持正常速度、与倍速完全解耦),输出 4K 保留 + AV1,缓存后同一张壁纸只付一次成本。播放时先播原片、转好自动切换,设置页有实时进度条;源帧率已在上限内会自动跳过,转码失败自动回退原片。
ffmpeg 三档供给:显式指定(
DSH_WE_FFMPEG或插件目录下的ffmpeg/)→ 自动下载(npmmirror + GitHub 双源竞速,校验后缓存)→ 系统 PATH。编码器优先 NVENC(av1_nvenc→h264_nvenc),无 NVIDIA 显卡时回落 libx264 软件编码(慢,但能出片);只有连 ffmpeg 都拿不到时该功能才自动关闭,壁纸保持原片,不影响其它任何功能。
画面相关的八个滑动条分居两处:「播放」→「效果」(壁纸激活后)六个 —— 壁纸模糊 · 亮度 / 对比度 / 饱和度(壁纸媒体滤镜)· 壁纸透明度(整层淡出、融向页面底色,与暗化互补)· 暗化(加深壁纸与文字之间的遮罩);「外观」页签两个 —— 边框(「细节」段,边框 / 分割线对比度)与雾化(「玻璃 UI」节,玻璃面板模糊半径)。全部即时生效、持久保存,无需刷新页面;每个控件的取值范围与默认值直接看控件本身。
浅色 / 深色由壁纸自己决定 —— 换壁纸后插件会自动切到与壁纸相配的那一侧(取色顺序:作者的
schemecolor→ 画面占比最大色(作者预览图与真实渲染帧各判一次,不一致时取深色)→ 取不到就保持不动;判定按颜色深浅,只有明显偏亮才用浅色。作者填的恰好纯黑算"没填",会改用画面主色)。你也可以随时在 DSH 里手动改主题 —— 改过之后本张壁纸不再自动,换下一张恢复。偏亮或花纹复杂的壁纸看不清字时调高 暗化 / 边框(必要时加一点 壁纸模糊),嫌壁纸抢眼则调高 壁纸透明度。滑条再怎么调也不会把正文压到看不清 —— 承载文字的面都有可读性下限(见上)。
场景 / 网页壁纸默认走内置 WebWallGL 实时渲染(lib/webwallgl/,MIT,源自 webwallgl):粒子系统、puppet 骨骼模型、SceneScript 脚本、鼠标视差 / 点击交互、包内音频与音频反应完整还原。渲染页跑在同源隔离 iframe 里并有心跳看护,失败按壁纸记住并自动降级(设置里重开开关即重试)。网页壁纸另有注入的 WE API(音频监听 / 属性 / 媒体),并强制 sandbox="allow-scripts" —— 第三方 HTML 拿不到 DSH 的 origin。
当前壁纸是场景或网页时,「当前壁纸」卡片上会出现绿色的 壁纸属性 按钮:列出作者在 WE 编辑器里定义的可调属性(颜色 / 开关 / 滑块 / 下拉 / 文本 / 文件),改一下立刻生效并按壁纸记住,「恢复默认」一键清掉这张壁纸的全部改动;面板显示的是真正生效的值(从渲染页读回)。
~/.dsh-wallpaper-engine/uploads,可改到任意盘符(绝对路径,支持 ~)并自动迁移已有文件;适配模式有覆盖 / 填充 / 居中 / 拉伸四种。上传的 MP4 按需抽帧生成缩略图;重复上传同一文件按内容识别、直接复用已有的那张。project.json 的壁纸项目目录(含 scene.pkg / index.html / *.mp4)会被自动收录成对应类型,场景壁纸同样走实时渲染;这些目录只读,不参与上传管理,也不会被删除。「外观」页签控制整个 DSH 原生设置窗口的观感(参照 dsh-web-ui-all 皮肤中心的设计):
| 控件 | 作用 | 默认 |
|---|---|---|
| 设置窗口玻璃(恒开) | 设置窗口整体(对话框 + 左导航 + 全部原生分区)走玻璃配方;原先的总开关已退役 | 开 |
| 设置窗口玻璃·独立配置 | 用这一面自己的玻璃颜色 / 透明度 / 雾化覆盖全局(关 = 跟随全局)。只在设置页出现(侧栏档只画简化配置) | 关(跟随全局) |
| 配色 | 主题色:窗口内的按钮、开关、链接、导航选中、滑块与玻璃高光统一跟随(6 预设 + 自定义取色) | 经典蓝 #4f8cff |
| 玻璃颜色 | 设置窗口玻璃的底色色调(6 预设 + 自定义取色) | 浅色白 / 深色深夜蓝 |
| 玻璃透明度 | 玻璃面板(设置窗口、输入栏、气泡、侧边栏)的透明度,越高越透 | 见控件本身 |
| 左侧栏液态玻璃 | 让宿主原生左侧栏(会话列表 / 工作区那一列)也跟随「配色 / 玻璃颜色 / 玻璃透明度 / 雾化 / 边框」—— 默认关时那一列直接透出原样壁纸(无霜、无底色) | 关 |
| 雾化 | 玻璃模糊半径 —— 对话栏卡片、左侧栏液态玻璃、设置窗口、插件浮层共用同一套调节参数(侧栏除外:它有独立的「侧栏模糊」) | 见控件本身 |
| 文字面可读性下限 | 承载文字的面在玻璃色之下固定压一层主题底色(正文保持 ≥4.5:1),默认开启且不提供开关 | 开 |
| 主题随壁纸 | 开关,默认关。开启后换壁纸时按壁纸自动切全局深 / 浅(作者配色 → 画面占比最大色(预览图与真实帧不一致时取深色)→ 取不到则不动;作者填的恰好纯黑按"没填"处理;只有明显偏亮才切浅色。面板「外观 → 主题」那一行会显示最近一次判决的来源与亮度);在 DSH 设置里手动改过主题则本张不再自动、换下一张恢复 | 关 |
所有控件即时生效并持久保存;不支持 backdrop-filter 的浏览器自动回退到高不透明实色,保证文字可读。
默认值与取值范围以控件本身为准。设置的唯一真源是
lib/settings-schema.js(DEFAULTS默认值 /KINDS校验范围 / 枚举表),宿主与客户端都从它派生,面板直接读它渲染 —— 因此本文与其它文档一律不抄写这些数值:抄一份就等于多一个会腐化的副本。
「系统」→「吉祥物」控制聊天的拉绳吉祥物 —— 一条可拖拽的拉绳沿顶部吸附,向下拉即拉出壁纸仓库抽屉(当前壁纸黑胶、轮播与自定义壁纸管理随手可及)。形态以卡片呈现,卡片直接渲染当前形态的立绘并按「吉祥物大小」实时缩放,选形态与看大小在同一处完成:
| 控件 | 作用 | 默认 |
|---|---|---|
| 显示吉祥物 | 是否显示拉绳吉祥物与其壁纸仓库抽屉 | 开 |
| 吉祥物形态 | 切换立绘:小女仆(近方形 chibi)或 鲸御姐(竖版 2:3 全身体) | 小女仆 |
| 吉祥物大小 | 缩放吉祥物(拉绳盒尺寸随比例变化,拖拽 / 吸附几何自动适配) | 见控件本身 |

点击顶部拉绳吉祥物即可拉出「壁纸仓库」抽屉。两幅立绘在打包时都已内联为 base64(透明背景),单文件客户端资源依然自包含;大小只改变拉绳自身的盒尺寸,不影响下方的抽屉。
「外观」页签下两个互不依赖的分区:
--dsl-terminal-font 钩子)② 侧栏 / SSH 的终端面板(dsh-ssh 的 xterm,走它给皮肤留的 --dsh-ssh-terminal-font 钩子)。⚠️ 它与「高级字体设置 → 终端」是同一项的两处入口;若在 dsh-ssh 自己的设置里填过 terminalFontFamily,那个值优先级更高。Nerd Font 图标(Powerline 那种)只有 Nerd Font 能画 —— 选了它才不出「口」;.json(导出走系统「另存为」)。它是「字体自定义」的附属:关掉总开关即整块收起。
报错 / 危险 / 警告语义元素强制保留系统红字;「恢复默认」一键清掉全部字体自定义项(不影响「只看改过的」这类视图开关)。caret-color 作用于所有文本输入位。「播放」→「声音」三项(前两项默认开启,第三项默认关闭):
wallpaperRegisterMediaPropertiesListener / …ThumbnailListener / …PlaybackListener(以及 …TimelineListener),识别这些 API 的工坊网页壁纸会自动显示歌曲信息与封面。.lrc 与已缓存歌词);开启后本地没有才向 lrclib.net 查一次 —— 那次请求会把歌名 / 歌手 / 专辑发出去,所以默认关闭。反向控制(随「媒体信息」生效):场景壁纸里 Now Playing 组件自带的 ▶ / ⏸ / ⏮ / ⏭ 按钮,点击会控制系统真实播放器(播放 / 暂停 / 上下曲)—— 只对带该组件按钮的壁纸生效(全库同组件共三张);控制面与数据面同源:中间件不可用时按钮落到渲染器自己的模拟源,内置实现(纯读取)不提供控制。
这些数据由宿主侧自带的 Rust 中间件 media-bridge 子进程提供(随插件按需下载、校验 sha256 后执行,缓存在
~/.dsh-wallpaper-engine/bin/):macOS 用 MediaRemote、Windows 用系统媒体会话(GSMTC)、Linux 用 MPRIS over D-Bus。因此不再需要brew install media-control、playerctl或 VB-Cable,macOS 也不再需要 Xcode Command Line Tools;中间件取不到或起不来时自动回落到内置实现,原因写在GET /wallpaper-engine/media-status的fallback字段里。
本插件不会向模型暴露任何工具或提示文本,对 agent 零 token 开销,也不写入任何 DSH 自身的设置。本地落盘只有三类:宿主端配置文件 ~/.dsh-wallpaper-engine/config.json(选择、隐藏、轮播、配色、字体等全部设置,以及你选的上传目录)、自定义壁纸文件本身,以及 ~/.dsh-wallpaper-engine/ 下的缓存与按需下载的运行时(抽帧转码 / 实时抓帧 / 视频缩略图缓存、ffmpeg 与媒体中间件的二进制)。
环境变量:
| 变量 | 作用 |
|---|---|
DSH_WE_FFMPEG |
指定 ffmpeg 可执行文件(解析链最高优先) |
DSH_WE_FFMPEG_URL |
替换自动下载源(自建镜像 / 代理加速) |
DSH_WE_CACHE_DIR |
覆盖缓存根目录(抽帧转码缓存 / faststart 变体缓存 / 实时抓帧缓存) |
DSH_WE_STEAM_ROOT |
显式指定 Steam 根目录(逗号/分号分隔,Windows 或 /mnt 路径;注册表/自动探测失效时的兜底) |
DSH_WE_MEDIA_BRIDGE |
指定媒体中间件的可执行文件(开发/自备产物;解析链最高优先) |
DSH_WE_MEDIA_BRIDGE_URL |
替换中间件下载源(自建镜像 / 代理加速;支持 {tag} / {asset} 占位符) |
DSH_WE_MEDIA_BRIDGE_TAG / DSH_WE_MEDIA_BRIDGE_SHA256 |
换用其它版本的中间件(自定义版本必须同时给出 sha256,否则拒绝执行) |
DSH_WE_MEDIA_LEGACY |
=1 强制使用内置实现(对比排查用) |
DSH_WE_MEDIA_NO_AUDIO |
=1 只取歌曲信息、永不碰系统音频采集(不申请授权) |
DSH_WE_MEDIA_PROVIDER |
=mock 用中间件自带的假播放器联调(不需要真播放器) |
DSH_WE_MEDIA_IDLE_MS |
空闲多少毫秒后停掉中间件子进程(0 = 不停;缺省值见实现) |
DSH_WE_MEDIA_DEBUG |
=1 把中间件的 stderr 与启动参数打到宿主日志 |
DSH_WE_DATA_DIR |
覆盖插件数据目录(默认 ~/.dsh-wallpaper-engine;自检脚本用它隔离,避免写到你真实的 config.json) |
DSH_WE_UPLOAD_DIR |
覆盖自定义壁纸的存储位置(优先于设置里的「更改」与默认目录) |
DSH_WE_ASSETS_DIR |
覆盖「官方资源路径」(WE 的 assets 树;优先于设置里那一项) |
DSH_WE_TRANSCODE_TIMEOUT_MS |
覆盖单次转码的墙钟预算(毫秒;缺省值见实现) |
设置存在哪:从 v0.4.0 起全部设置存在宿主端文件 ~/.dsh-wallpaper-engine/config.json(与浏览器端口无关,
重启 / 换端口 / 清浏览器数据都不会丢;老版本的 localStorage 配置会自动迁移)。文件位置、多设备共享与读写行为见
docs/UPGRADING.md 的「设置持久化」。
本插件的液态玻璃效果对 dsh-better-sidebar 的侧边栏面板做了专门适配(毛玻璃、高光与层级统一),让侧边栏与对话区共享同一套「壁纸 + 遮罩」背景,三列视觉一致、不再割裂。
「外观」页签还提供一组独立于会话玻璃和当前壁纸的侧栏玻璃细粒度控制:即使没有启用 Wallpaper Engine 壁纸,也可以在普通 DSH 背景或其他背景来源上调整侧栏。它只作用于 dsh-better-sidebar 的侧边栏子树;不支持 backdrop-filter 的浏览器会自动回退到高不透明实色。
| 控件 | 作用 | 默认 |
|---|---|---|
| 侧栏液态玻璃 | 总开关:把侧边栏面板换成液态毛玻璃 | 开 |
| 侧栏模糊 | 侧边栏毛玻璃的模糊半径 | 见控件本身 |
| 侧栏透明度 | 侧边栏玻璃的浓淡(越大越透) | 见控件本身 |
| 侧栏玻璃颜色 | 侧边栏玻璃的底色色调 | 见控件本身 |
| 侧栏全透明 | 放弃可读性下限换全透:壁纸激活时撤掉侧栏的可读性底、色染与釉光(模糊仍由旋钮管) | 关 |
| 侧栏玻璃跟随全局 | 开:侧栏跟随「玻璃颜色 / 玻璃透明度 / 雾化」;关:用侧栏自己那套值(「侧栏玻璃·独立配置」,只在设置页出现) | 开 |
侧栏玻璃与设置窗口玻璃是两套独立参数:会话玻璃的「玻璃」滑杆只管输入栏/气泡,侧栏玻璃滑杆管侧边栏。关闭「侧栏液态玻璃」会连同编辑器/终端内容面一起恢复原生样式。侧边栏默认较透(与背景观感一致、避免面板发白);编辑器/终端等内容面另有独立的近不透明底色 + 透明度控制,保证窄面板里文字可读。

侧边栏液态玻璃适配与「外观」页签的字体自定义(行楷)同时生效的实际观感。
<video>(DSH 跑在 loopback,现代浏览器允许静音自动播放)。av1_nvenc → h264_nvenc),无 NVIDIA 显卡时回落 libx264 软件编码(慢但可用);只有拿不到 ffmpeg(含自动下载不可用,如 musl/Alpine 等未覆盖平台)时,帧率上限功能才自动关闭,壁纸保持原片播放,不影响其它任何功能。BrowserWindow 用的是默认底板色 = 白;壳侧只给 macOS 设了透明底板)。这一条要壳侧配合,插件侧改不动。想跑本地一份代码(link: 安装、构建与验证、热挂载与编码铁律、以及 lib/client.js 到底是什么)见
CONTRIBUTING.md。
有问题、想反馈,或者想第一时间拿到新版本,欢迎加入交流群(插件里 设置 → 壁纸引擎 → 关于 页显示的就是下面这两张码):
| 🐧 QQ 群 | 🎵 抖音群 |
|---|---|
![]() |
![]() |
| DSHWE | LLM 讨论群 | dsh 交流群(群号 252729465001) |
图片用的是随包资源
lib/about/*.png(插件运行时由自己的路由提供同一份字节);源截图与派生口径见assets/about/README.md。
本插件是许多人贡献的成果,感谢他们:
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: theme、wallpaper、wallpaper-engine。