A theme is a publishable Nuxt module selected in desktop.config.ts → theme. It defines shell layout and style: background, system bar, dock, window chrome, boot pages, typography. One theme is active per desktop.
Product metaphor: same engine (@owdproject/core), different skin. Switching themes changes layout and style, not the APIs apps use to open windows or expose commands.
| Repo | Complexity | Study for |
|---|---|---|
theme-paper | Minimal | Smallest working shell, defu defaults, kit-theme. |
theme-nova | Full | System bar, dock, dialog plugin, conditional explorer. |
theme-win95 | Full + boot | Boot/start pages, retro chrome, dialog plugin. |
DesktopWindow, DesktopWindowNavButton, and title-bar slots documented in Window chrome and nav buttons.module.ts, Desktop.vue, defu, kits.DesktopWindowNavButton, append-inner, iframe slots.addPlugin, ordering.Also see desktop.config.ts and Package linking.