io.workspaces API

The Workspaces API for creating, restoring, and managing complex window arrangements.

createWorkspace()

Create a new workspace from a definition object.

io.workspaces.createWorkspace(definition: WorkspaceDefinition, config?: WorkspaceConfig): Promise<Workspace>
Example
const ws = await io.workspaces.createWorkspace({
  children: [
    {
      type: "row",
      children: [
        { type: "window", appName: "ClientList" },
        { type: "window", appName: "Portfolio" },
      ],
    },
  ],
  config: { title: "My Workspace" },
});

restoreWorkspace()

Restore a previously saved workspace layout by name.

io.workspaces.restoreWorkspace(name: string, options?: RestoreOptions): Promise<Workspace>

getBuilder()

Get a fluent builder for constructing complex workspace layouts.

io.workspaces.getBuilder(options: BuilderOptions): WorkspaceBuilder
Example
const builder = io.workspaces.getBuilder({
  type: "workspace",
  definition: { config: { title: "Trading" } },
});
builder.addRow()
  .addWindow({ appName: "Chart" })
  .addWindow({ appName: "OrderTicket" });
const ws = await builder.create();

Workspace Instance Methods

setContext() / getContext()

workspace.setContext(data: object): Promise<void> workspace.getContext(): Promise<object>

lock()

workspace.lock(config: LockConfig): Promise<void>
ParameterTypeDescription
allowExtractbooleanAllow dragging windows out.
allowSplittersbooleanAllow resizing panes.
allowDropbooleanAllow dropping windows in.
showCloseButtonbooleanShow close buttons on windows.

Events

Workspace events
workspace.onWindowAdded((win) => console.log("Added:", win.appName));
workspace.onWindowRemoved((info) => console.log("Removed:", info.windowId));
workspace.onContextUpdated((ctx) => console.log("Context:", ctx));
workspace.onClosed(() => console.log("Workspace closed"));