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:
40
extension/src/extension.ts
Normal file
40
extension/src/extension.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
import { WorkspaceWarden } from './workspace-warden.js';
|
||||
import { WindowGuard } from './window-guard.js';
|
||||
import { ContainerSupervisor } from './container-supervisor.js';
|
||||
import { EntryUX } from './entry-ux.js';
|
||||
import { DBusService } from './dbus-service.js';
|
||||
|
||||
export default class DashwardExtension extends Extension {
|
||||
private warden?: WorkspaceWarden;
|
||||
private guard?: WindowGuard;
|
||||
private container?: ContainerSupervisor;
|
||||
private entry?: EntryUX;
|
||||
private dbus?: DBusService;
|
||||
|
||||
enable(): void {
|
||||
log('[Dashward] enable: P0 skeleton — components not wired yet');
|
||||
this.warden = new WorkspaceWarden();
|
||||
this.guard = new WindowGuard();
|
||||
this.container = new ContainerSupervisor();
|
||||
this.entry = new EntryUX();
|
||||
this.dbus = new DBusService();
|
||||
}
|
||||
|
||||
disable(): void {
|
||||
log('[Dashward] disable');
|
||||
this.dbus?.dispose();
|
||||
this.entry?.dispose();
|
||||
this.container?.dispose();
|
||||
this.guard?.dispose();
|
||||
this.warden?.dispose();
|
||||
this.dbus = undefined;
|
||||
this.entry = undefined;
|
||||
this.container = undefined;
|
||||
this.guard = undefined;
|
||||
this.warden = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
declare function log(msg: string): void;
|
||||
Reference in New Issue
Block a user