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>
This commit is contained in:
60
README.md
Normal file
60
README.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user