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>
61 lines
1.7 KiB
Markdown
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.
|