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 statedmn.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 });
});
},
});