Initialize the NebulaOS monorepo layout with top-level documentation, ignore rules, placeholder service/package directories, compositor docs plus a baseline Sway config, and session startup/desktop entry files. Add the first desktop shell prototype under `shells/desktop/ui` using React + Vite, including themed surface components (desktop, top bar, launcher, preview), mock Nebula APIs and shell bridge state wiring, reusable UI controls/icons, and supporting styles/config needed for local development.
31 lines
776 B
Markdown
31 lines
776 B
Markdown
# Nebula Desktop UI
|
|
|
|
React UI for Nebula Desktop shell chrome. It does not host application or game windows. Those render as Wayland / XWayland surfaces. The native host in `shells/desktop/native` will load this UI in WebKitGTK.
|
|
|
|
## Surfaces
|
|
|
|
The same codebase can render each Wayland layer on its own:
|
|
|
|
| URL | Renders |
|
|
|-----|---------|
|
|
| `/?surface=preview` (default) | Combined browser mockup |
|
|
| `/?surface=desktop` | Background layer only |
|
|
| `/?surface=topbar` | Top bar only |
|
|
| `/?surface=launcher` | Launcher only |
|
|
|
|
The native host chooses the origin. Surface selection is a relative query parameter, not a hardcoded port.
|
|
|
|
## Develop
|
|
|
|
```powershell
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
```powershell
|
|
npm run lint
|
|
npm run build
|
|
```
|
|
|
|
Oxlint is the linter for this project.
|