Files
Dashward/README.md
hzhang 3bf3aa1989 chore: P0 skeleton
Bootstrap the Dashward repo per arch/UBUNTU-DASHBOARD-SPACE.md:

- pnpm-workspaces monorepo (sdk, extension, container, widgets-builtin/*)
- GNOME extension stub (metadata.json, src/*.ts placeholders for warden,
  guard, supervisor, entry UX, DBus service)
- WebKit container stub (GJS main + page-side runtime + dashboard.html)
- TypeScript widget SDK (defineWidget + types)
- Builtin clock widget as the first SDK consumer example
- DBus interface XML (proto/shell.iface.xml) and shared types
- esbuild configs for extension and container; tsc for SDK
- Design doc copied in at repo root for discoverability

No functional logic yet -- all components are placeholders that compose
in extension.ts so the build chain can be exercised. P1 (workspace
warden) starts next.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 23:00:02 +01:00

61 lines
1.7 KiB
Markdown

# Dashward
A dedicated rightmost workspace for custom widgets on Ubuntu/GNOME, in the
spirit of macOS Dashboard.
- **GNOME Shell extension** (GJS) creates the dashboard workspace, defends
it from regular window incursions, and supervises the container.
- **WebKitGTK container** (separate process) renders an HTML page on that
workspace.
- **Widget SDK** (TypeScript) lets you write widgets as web components.
Status: P0 skeleton. Design lives in
[`UBUNTU-DASHBOARD-SPACE.md`](https://git.hangman-lab.top/hzhang/Dashward/src/branch/main/UBUNTU-DASHBOARD-SPACE.md)
(see also `~/arch/UBUNTU-DASHBOARD-SPACE.md` locally).
## Target
- Ubuntu 25.04 / GNOME Shell 48 / Wayland.
- Other distros & versions: post-v1.
## Repo layout
```
sdk/ TS widget SDK, published as @dashward/widget-sdk
extension/ GNOME Shell extension (GJS, TS-authored)
src/ Extension source
widgets-builtin/ Builtin widgets shipped with the extension
container/ WebKit kiosk process
src/ GJS bootstrap
runtime/ Page-side runtime (host grid, edit mode, widget loader)
widgets/ Example / 3rd-party widget dev tree
proto/ Shared DBus XML + TS types
scripts/ Build & dev helpers
```
## Dev setup
Requires Node ≥ 20 and pnpm ≥ 9. To install pnpm:
```bash
npm install -g pnpm
```
Then:
```bash
pnpm install
pnpm build
```
## Testing discipline
All Shell-side iteration happens inside the
`ubuntu2504-test` libvirt VM, **never on the host GNOME session** — a
buggy extension can lock you out of the Wayland session. See the design
doc §17 for the dev loop.
## License
TBD.