Skip to main content

Data model

Rust and TypeScript share serialized types from shared-types.

  • ScreenInfo identifies a screen and its Rect work area.
  • WindowDescriptor contains an id, app name, title, icon color, and WindowState.
  • Layout contains a name, type, zone count, column/row patterns, optional ratio, gap, margin, and timestamps.
  • Settings contains preferences and the last selected layout or target-screen hints.
  • SystemStatus contains capability values and adapter errors.
  • ArrangeRequest maps zone indices to window ids.
  • ArrangeResult contains overall success and PerWindowResult entries with Moved or Failed status, actual rectangle, and error.

The frontend imports generated TypeScript bindings rather than defining a second contract. Changes to these structs affect both the Tauri IPC payloads and the Svelte stores.