Skip to content

feat: Second window support with linked/unlinked workspaces #46

@Cheezeiii365

Description

@Cheezeiii365

Summary

Support a second app window where each window has its own independent Dockview layout. Workspaces can be optionally linked across windows — when linked, switching workspace on one window switches both; when unlinked, each window tracks its own active workspace.

Example

  • Workspace 1: linked — both windows show workspace 1 (with different pane arrangements)
  • Workspace 2: unlinked, shown on window A only
  • Workspace 3: unlinked, shown on window B only
  • Clicking workspace 1 on either window switches both windows to workspace 1

Architecture Impact

State model changes from workspace → layout to workspace × window → layout. Each window has:

  • Its own Dockview instance and serialized layout
  • Its own set of open tabs, pane arrangements
  • Shared: file watcher, git poller, task runner, workspace metadata (all in main process)

Key Design Decisions Needed

  • Terminals: Shared PTY sessions across windows, or independent per window?
  • File editing: If both windows have the same file open, share document state or rely on file-watcher reload?
  • Layout persistence: state-window1.json / state-window2.json per workspace
  • IPC routing: Main process notifies N windows on workspace switch, each loads its own layout
  • Link toggle UX: Per-workspace setting in workspace config or ribbon context menu

Priority

Low — requires aIDE's editing experience to mature first so staying in aIDE full-time across both monitors is viable

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions