This page summarizes the stable contract between @owdproject/core and themes/apps. Internal implementation under runtime/internal/ is not part of the contract and may change in minor releases.
Source of truth in the repo: packages/core/DESKTOP_KERNEL.md.
desktop.config.ts (or legacy owd.config.ts).theme / apps / modules → installModule; other keys → runtimeConfig.public.desktop / appConfig.desktop only.defineDesktopApp calls after Pinia is active.| Export | Use |
|---|---|
defineDesktopConfig({ theme, apps, modules, … }) | Root desktop config file |
runtimeConfig.public.desktop | Shell flags (workspaces, systemBar, explorer, …) |
useDesktopManager().setConfig() | Runtime shell overrides (defu: new props win) |
Allowed shell keys include: name, defaultApps, features, systemBar, dockBar, workspaces, explorer, docs. Unknown keys: dev warning. Nuxt-like keys: rejected with hint.
| Export | Use |
|---|---|
defineDesktopApp(config) | App register plugin (owd-*-register, client-only, import.meta.server guard) |
useApplicationManager() | Launch, list running apps, resolve windows |
| Component | Role |
|---|---|
DesktopCore | Shell wrapper |
DesktopApplicationRender | Running app windows |
DesktopWindow / DesktopWindowNav / DesktopWindowContent | Window primitives |
DesktopBackground / DesktopTime | Optional utilities |
Themes expose Desktop.vue → app.vue uses <Desktop />.
| Symbol | Role |
|---|---|
useDesktopStore | Shell state, personalization, default apps |
useDesktopWorkspaceStore | Active workspace, overview mode |
useDesktopWindowStore | Global z-index |
useWorkspaceManager | Overview keyboard + HTML5 workspace drops |
useApplicationManager | App registry and launch |
useDesktopManager | Shell config merge |
Explorer: useExplorerStore from @owdproject/module-fs (alias useDesktopExplorerStore deprecated).
WindowController guarantees:
focus() / bringToFront() — exclusive focus + monotonic z-indexminimize() / unminimize() — toggles state.activesetWorkspace(id) — assigns workspaceContract tests: windowController.contract.test.ts, useWorkspaceManager.contract.test.ts.
| Package | Layer |
|---|---|
| core shell composables | Shell identity, edge drop, overview — Shell identity |
core runtime/explorer/ | Explorer store, DnD, menu model |
@owdproject/kit-primevue | PrimeVue dialogs + PV explorer UI |
@owdproject/module-fs | ZenFS VFS |
@owdproject/module-persistence | Optional persistence |
Breaking contract changes require semver coordination with themes (separate repos). Current kernel release line: 3.4.x (Desktop* rename, explorer eviction from core, full public.desktop merge, extension defineDesktopModule + composables — see DESKTOP_KERNEL.md in @owdproject/core).
Package authors: Migrate themes, apps, and modules (3.4). Stack changes (PrimeVue, shell in core): see migration guide.