Multi-Window Support¶
PlexusOne Desktop supports multiple windows, each with its own independent grid layout while sharing the same session pool.
Overview¶
With multi-window support, you can:
- Open multiple PlexusOne Desktop windows
- Configure different grid layouts per window (e.g., 3×2 on one monitor, 2×1 on another)
- View the same sessions across windows
- Have each window persist its layout independently
Architecture¶
AppState (Singleton)
├── SessionManager (shared)
└── WindowStateManager (tracks all windows)
│
┌─────────────────┴─────────────────┐
│ │
Window A (UUID) Window B (UUID)
├── paneManager (local) ├── paneManager (local)
└── gridConfig (local) └── gridConfig (local)
Shared vs Local State¶
| Component | Scope | Description |
|---|---|---|
SessionManager |
Shared | Sessions are shared across all windows |
gridConfig |
Per-window | Each window has its own grid layout |
paneManager |
Per-window | Each window has its own pane-to-session mappings |
WindowStateManager |
Shared | Tracks all window configurations for persistence |
Usage¶
Opening New Windows¶
Use any of these methods:
- Menu: File → New Window
- Keyboard:
Cmd+Shift+N - Pop-out: Click the pop-out icon (↗) in any pane header
Each new window starts with a default 2×1 layout and can be configured independently.
Pop-Out Sessions¶
Pop out a session to a dedicated 1×1 window without disrupting your grid:
- Find the session in any pane
- Click the pop-out icon (↗) next to the detach button (✕)
- A new window opens with just that session
The original pane keeps the session attached, giving you two views of the same tmux session. This is useful when you need:
- Full-screen space for one agent while monitoring others
- The same session visible on multiple monitors
- Side-by-side comparison of the same session at different scroll positions
Independent Layouts¶
Configure each window's layout independently:
- Window A: Set to 3×2 layout for monitoring multiple agents
- Window B: Set to 1×1 layout for focused work
Changes to one window's layout don't affect other windows.
Session Synchronization¶
Sessions are shared across all windows:
- Create a session in Window A → it appears in Window B's session dropdown
- Kill a session from any window → it's removed everywhere
- Sessions refresh automatically every 5 seconds
Closing Windows¶
- Click the red close button to close a single window
- Other windows remain open
- The app continues running even if all windows are closed (tmux sessions persist)
Persistence¶
State File¶
All window configurations are saved to:
State Format (v2)¶
{
"windows": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"gridColumns": 3,
"gridRows": 2,
"paneAttachments": {
"1": "claude-main",
"2": "reviewer"
},
"frame": {
"x": 100,
"y": 100,
"width": 1200,
"height": 800
}
},
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"gridColumns": 2,
"gridRows": 1,
"paneAttachments": {
"1": "tests"
}
}
],
"savedAt": "2024-03-28T12:00:00Z",
"version": 2
}
Restoration¶
On app launch:
- If saved state exists, you're prompted to restore
- Click "Restore" to restore all windows with their layouts
- Click "Start Fresh" to start with a single default window
Migration¶
Existing v1 state files (single-window format) are automatically migrated to v2 (multi-window format) on first load.
Workflows¶
Multi-Monitor Setup¶
Use multiple windows across monitors:
- Open PlexusOne Desktop (Window 1 appears)
- Press
Cmd+Shift+Nto open Window 2 - Drag Window 2 to your second monitor
- Configure each window's layout for its monitor size
Agent Team + Focus Mode¶
Run a team of agents while keeping a focus window:
- Window 1 (3×2 layout): Monitor all agents
- Window 2 (1×1 layout): Focus on the current active task
Both windows share the same sessions, so you can switch between monitoring and focus modes.
Tips¶
Use Descriptive Window Layouts
Configure layouts based on the monitor size and your workflow. A 4×2 layout works great on an ultrawide monitor.
Session Changes Sync Instantly
Create, rename, or kill sessions from any window. Changes propagate immediately to all windows.
Each Window is Independent
Closing one window doesn't affect others. Your work in other windows continues uninterrupted.
Pop Out for Focus
Use the pop-out button (↗) to expand a session to its own window without changing your grid layout. Great for when you need temporary full-screen access.