Skip to Content

App API

dmn.app

App-level control including boot, restart, and external URLs.

dmn.app.bootstrap(): Promise<Bootstrap>

Returns app bootstrap data (settings, keys, presets, etc.)

const bootstrap = await dmn.app.bootstrap(); // Bootstrap properties console.log(bootstrap.selectedKeyType); // 'keyboard' | 'mouse' console.log(bootstrap.settings); // app settings object console.log(bootstrap.keys.keyboard); // key mapping console.log(bootstrap.keys.counter); // counter state

dmn.app.restart(): Promise<void>

Restarts the app. Settings are preserved.

await dmn.app.restart();

dmn.app.openExternalUrl(url: string): Promise<void>

Opens a URL in the system default browser.

await dmn.app.openExternalUrl("https://dmstudio.app");

dmn.window

Window management API.

dmn.window.type: WindowType

Returns the current window type.

type WindowType = "main" | "overlay"; console.log(dmn.window.type); // 'main' or 'overlay'

dmn.window.minimize(): Promise<void>

Minimizes the current window.

await dmn.window.minimize();

dmn.window.close(): void

Closes the current window.

dmn.window.close();

dmn.window.openDevtoolsAll(): Promise<void>

Opens DevTools for all windows. Useful for debugging.

await dmn.window.openDevtoolsAll();

Example Usage

// App info display dmn.plugin.defineElement({ name: "App Info", maxInstances: 1, template: (state, settings, { html }) => html` <div style="background: #333; padding: 16px; border-radius: 8px;"> <div>Window: ${dmn.window.type}</div> <div>Mode: ${state.mode ?? "loading..."}</div> </div> `, onMount: ({ setState }) => { dmn.app.bootstrap().then((boot) => { setState({ mode: boot.selectedKeyType }); }); }, });