Skip to content

Mission Control: flip pages with Ctrl+Up/Down (or Cmd+Up/Down) - #273

Merged
pallaoro merged 10 commits into
mainfrom
shoudl-we-introduce-another-mission-control
Oct 1, 2026
Merged

pallaoro merged 10 commits into
mainfrom
shoudl-we-introduce-another-mission-control

Conversation

@pallaoro

@pallaoro pallaoro commented Oct 1, 2026

Copy link
Copy Markdown
Member

Replaces the page-flip shortcut ⌘⌥↑/↓ with plain ⌃↑/↓, and also accepts ⌘↑/↓: a PC keyboard's "ctrl" is macOS Control, but people read it as Cmd, so either modifier alone works. Alt or Shift held still does nothing. The pager hint now reads ⌃↑↓.

Trade-offs:

  • While Mission Control is open, terminal tiles no longer receive ⌃↑/↓ or ⌘↑/↓ (the listener runs in capture phase so it wins over the focused xterm).
  • macOS binds ⌃↑/↓ to Mission Control / App Exposé by default and swallows them before the app; ⌘↑/↓ still works there.

Verified in the dev app over CDP with real key events on a 9-page Mission Control: ⌃↓ and ⌘↓ go forward, ⌃↑ and ⌘↑ go back; ⌘⌥↓, plain ↓ and ⌃⇧↓ are ignored.

A sixth-tile page for watching more agents at once. While the 3x2 layout
is on screen the sidebar collapses to the rail without touching the saved
preference; leaving the layout or view restores it, and expanding by hand
holds until you leave. The pager now spells out its Cmd+Alt+Up/Down
shortcut.
One project may run twice the terminals of another, so each project keeps
its own layout under ateam.mcLayout.<projectId>. It is read during render
so switching projects never paints the previous project's layout (which
would also flick the 3x2 rail). Projects never set fall back to the old
app-wide choice, and a saved value naming a layout that no longer exists
is ignored.
…nother-mission-control

# Conflicts:
#	apps/desktop/src/renderer/src/App.tsx
Since #128 the grid fetches sessions on mount and on taskUpdated/ptyExit
events only. Switching projects kept the same instance, so the last
project's tiles stayed until some agent happened to emit an event: with
idle agents, indefinitely. Key the grid by project so a switch remounts it
with its own tiles, page, pinned tabs and lock snapshot, and hold the
empty-state text until the first fetch lands so it doesn't flash.
Replaces Cmd/Ctrl+Alt+Up/Down. A PC keyboard's "ctrl" is macOS Control,
but people read it as Cmd, so either modifier alone works; Alt or Shift
held still does nothing. The pager hint reads ⌃↑↓.
@pallaoro
pallaoro merged commit 90890e9 into main Oct 1, 2026
1 check passed
@pallaoro pallaoro mentioned this pull request Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant