# 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.