Deeer
01Plug-in Workbench持续维护

PWT 插件式工作台

PWT(Workbench)把桌面小部件当作真正的插件来安装、运行与管理: 自由画布随意摆放,每个插件同时拥有「精简组件」和「完整窗口」两种形态, 同一个插件还能开多个窗口、各自独立。插件在清单里声明设置项,宿主自动渲染出设置界面。

Year
2026
Form
Electron + Web
Stack
React 18 · Vite 5 · TS 5
Protocol
PluginManifest

51

单文件插件

23

已镜像进工作台

02

渲染沙箱

10

插件坞上限

01Structure / 结构

四页结构,一张自由画布

界面分桌面 / 插件 / 设置 / 我的四页,左侧菜单栏导航,左下角常驻登录状态。 桌面本身是一块自由画布:位置、尺寸、缩放都留在画布坐标系里, 换一台机器打开还是原样。

  • 51 个plugin-lab 单文件桌面小工具
  • 23 个已镜像进工作台并带精简形态
  • 2 种渲染沙箱:ES Module 与 iframe
  • 多窗口位置、尺寸、设置互不影响
PWT 工作台桌面页截图:自由画布上摆放着多个插件卡片,右下角是插件坞

PWT Workbench — 桌面 / 自由画布与插件坞

02Features / 核心特性

桌面该有的交互,一件都不少

6 项

01

自由画布

拖空白处平移、滚轮缩放、双击背景复位;拖卡片顶部栏移动,拖左右边缘调宽、拖下边缘调高、拖右下角同时调整。位置与尺寸都留在画布坐标系里。

02

双形态

每个插件同时拥有「精简组件」和「完整窗口」两种形态。精简形态是桌面上的小部件,点一下即展开成完整窗口,精简设置收在卡片设置的二级界面里。

03

多窗口独立

同一个插件可以开多个窗口,位置、尺寸、设置各自独立,关掉一个不影响另一个。开窗三个入口:右下角插件坞、卡片头的 ⧉、插件页的「+ 新建窗口」。

04

插件坞

位于右下角,是桌面唯一的「新建窗口」入口。最多同时显示 10 个,超出可搜索,还可以拖动排序,常用插件永远在手边。

05

声明式设置

插件在 manifest 里声明 settings.fields,支持 text / number / color / palette / font / select / cascade 七种字段,宿主自动渲染,不用改宿主源码。

06

背景样式

纯色、点阵、网格、光晕,或者换成自定义图片、自定义视频。桌面底色随你,插件永远清晰可读。

03Plugins / 插件库

装、停用、隐藏、卸载

12 个已镜像

插件协议标准化(PluginManifest),下面这些是已镜像进工作台、 带精简形态的桌面小工具。plugin-lab 里一共 51 个单文件 HTML 小工具, 其中 23 个已镜像。

01药品管家
02喝水提醒
03番茄专注
04久坐管家
05待办清单
06倒数日
07快捷启动器
08音乐播放器
09世界时钟
10快速便签
11天气小部件
12习惯打卡

还有更多:桌面宠物、音量混合器、亮度色温……快捷启动器能拉取系统开始菜单的 真实应用(实测 164 个)并真正启动它们。

04Architecture / 架构

插件协议 + 运行时 + 桌面交互

参考实现

这是一个框架式工作台的参考实现,用来验证「插件协议 + 运行时 + 桌面交互」 这套架构是否站得住。

01

插件协议 · PluginManifest

每个插件用一份清单描述自己:标识、入口、渲染方式,以及声明式的设置字段。宿主只认协议、不认具体插件,所以新增插件不需要改动宿主源码。

settings.fieldstext / number / colorpalette / fontselect / cascade

02

渲染层 · IframeHost / ModuleHost

两种渲染方式各管一类插件:可信插件走 ES Module,由 ModuleHost 动态 import 直接跑;第三方插件走 iframe 沙箱,由 IframeHost 隔离,宿主与插件之间通过 postMessage 总线通信。

动态 importiframe 沙箱postMessage 总线

03

刷新调度 · Scheduler

所有插件的定时刷新统一交给 Scheduler 节流调度,避免几十个小部件各自 setInterval 抢主线程。桌面再拥挤,帧率也稳得住。

统一节流单实例调度多窗口共享
PWT 工作台插件市场页截图:插件卡片列表,带安装、停用、隐藏与新建窗口操作

PWT Workbench — 插件市场 / 安装 · 停用 · 隐藏 · 新建窗口

不用安装,浏览器直接开

在线试用跑的是同一个工作台,插件、画布、双形态都在。