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
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00
2026-05-22 23:00:02 +01:00

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 (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:

npm install -g pnpm

Then:

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.

Description
Ubuntu/GNOME dashboard workspace + TS widget SDK (macOS-Dashboard style).
Readme 117 KiB
Languages
TypeScript 90%
CSS 3.3%
JavaScript 2.9%
HTML 2.4%
Shell 1.4%