QORMQORM v0.9.8 docs 开始使用 EN

QORM 桌面平台

桌面是 QORM 的首要运行时平台之一,非常适合开发预览、生产桌面应用、工具类应用以及高性能 UI 实验。

打包

qorm package examples/menus -p mac         # a macOS .app (per-platform cgo build)
qorm package app -p mac --release [--notarize]   # Developer ID + 硬化运行时 + DMG
./scripts/build-desktop.sh                 # native-window binary for this OS (-tags desktop)
qorm-desktop-... run examples/menus --app  # opens a native window

Linux 上托盘、通知点击回路与安全存储直接走 DBus(StatusNotifierItem / org.freedesktop.Notifications / Secret Service——GNOME 的托盘需要 AppIndicator 扩展;密钥落入 GNOME Keyring 或 KWallet)。

演示桌面特性的示例:menus(系统菜单栏 / 托盘 / 右键菜单,带图标 + 子菜单)、floating(无边框 + 透明、自定义形状窗口)、desktop-hardware。有关各操作系统的测试情况,参见支持矩阵

架构

qorm app (JSON) / qorm.bundle.json
  ↓
Go Runtime (loader + state + action + i18n, pure Go)
  ↓
由构建标签/平台选择渲染宿主
  ├─ 纯 Go 保留模式 canvas(macOS 默认,无 `desktop` 标签)
  │    度量 → 布局 → 显示列表 → 软件光栅
  ├─ 原生 WebView(`-tags desktop`)
  │    HTML/CSS → WKWebView / WebView2 / WebKitGTK
  └─ 浏览器回退(其他无标签桌面平台)

特性

宿主能力(Host Capability)

桌面 Pack 应优先支持:

network.request
storage.read/write
clipboard.read/write
filesystem.openFile
filesystem.saveFile
notification.show
window.resize
window.fullscreen
navigation.go

危险能力必须要求授权:

filesystem.write
shell
process.spawn
system.automation

桌面危险能力边界

渲染

桌面端在同一 JSON/状态/动作模型之上有两个具体渲染器:

滚动、文本编辑、QSS 和视觉效果,并把实时渲染图导出给 MCP 测量。 原生指针/键盘输入分发的动作也会以人类身份进入共享 DevTool 和 qorm_activity 事件流,并提供隐私安全的 focus/typing presence。DevTool 组件树悬停会高亮对应原生节点。

(WKWebView/WebView2/WebKitGTK),它不是 canvas 渲染器。

两者共享应用模型,但不共享布局/绘制实现,所以应验证目标后端:默认 qorm measure / 静态 qorm check 使用无窗口 canvas;-tags desktop 二进制度量 WebView/DOM。参见验证QSS / canvas 效果

开发工具

桌面提供:

qorm run
qorm build
qorm preview
qorm measure
qorm check
qorm shot

CLI 参考。DevTool 组件树可悬停高亮原生 Canvas 节点; GET /dev/canvas 返回物理视口及最新 layout/render/present/total 帧耗时。 MCP 可用 qorm_capture_canvas 获取最近实际呈现的原生像素。