Skip to Content
DocumentationAPI Reference

API Reference

All plugins access DM Note features through the dmn global object.

Namespace Structure

NamespaceDescription
dmn.appApp boot, restart, external URL
dmn.windowWindow type, minimize, close
dmn.keysKey mapping, events, custom tabs
dmn.settingsApp settings get/set
dmn.overlayOverlay control
dmn.cssCSS custom code
dmn.jsJS plugin management
dmn.presetsPreset save/load
dmn.bridgeWindow communication
dmn.i18ni18n
dmn.pluginPlugin API
dmn.uiUI extensions

Quick Start

// Get app bootstrap data const bootstrap = await dmn.app.bootstrap(); console.log("Current mode:", bootstrap.selectedKeyType); console.log("Settings:", bootstrap.settings); // Subscribe to key events (overlay only) const unsub = dmn.keys.onKeyState(({ key, state, mode }) => { console.log(`[${mode}] ${key} is ${state}`); }); // Watch settings changes dmn.settings.onChanged(({ changed, full }) => { console.log("Settings changed:", changed); }); // Cleanup dmn.plugin.registerCleanup(() => { unsub(); });

Common Types

Unsubscribe

Event unsubscribe function. Returned by on* methods.

type Unsubscribe = () => void; // Usage const unsub = dmn.keys.onModeChanged(({ mode }) => { console.log(mode); }); // Unsubscribe later unsub();

Notes

  1. Async operations: Most APIs return Promise. Use await or .then().

  2. Unsubscribe: Always unsubscribe from events during cleanup.

  3. Window type: keys:state events are only received in overlay window.

  4. Main-only API: dmn.ui only works in main window.