Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Displays API

The Displays API provides functionality for monitor and screen management. It allows you to query information about connected displays/monitors, including their dimensions, positions, and identifiers. This is essential for multi-monitor setups where you need to target specific screens for effects, webviews, or VRM positioning.

Key Features

  • Discovery of Connected Displays: Find all available displays/monitors
  • Display Identification: Get unique identifiers and metadata for each display
  • Screen Bounds Information: Access position and dimension data
  • Multi-monitor Support: Target specific screens for various operations

Functions

  • findAll() - Get information about all connected displays

Quick Example

// Get information about all connected displays
const allDisplays = await displays.findAll();

console.log(`Found ${allDisplays.length} displays:`);
allDisplays.forEach((display, index) => {
  console.log(`Display ${index + 1}:`);
  console.log(`  ID: ${display.id}`);
  console.log(`  Title: ${display.title}`);
  console.log(`  Size: ${display.frame.max[0]}x${display.frame.max[1]}`);
  console.log(`  Position: (${display.frame.min[0]}, ${display.frame.min[1]})`);
});

// Target a specific display for effects
const primaryDisplay = allDisplays[0];
await effects.stamp("celebration/confetti.gif", {
  display: primaryDisplay.id,
  bounds: primaryDisplay.frame
});

// Open webview on secondary monitor
if (allDisplays.length > 1) {
  const secondaryDisplay = allDisplays[1];
  await Webview.open("dashboard", {
    position: [
      secondaryDisplay.frame.min[0] + 100,
      secondaryDisplay.frame.min[1] + 100
    ]
  });
}

Common Use Cases

  • Multi-monitor Applications: Position content on specific monitors
  • Display Awareness: Adapt UI based on available screen real estate
  • Effect Targeting: Show effects on specific displays
  • Window Management: Position webviews and UI elements precisely