Skip to content

Focus mode wayfinding: status-less pager dots, no Escape exit, hidden layout switch #212

Description

@johannesjo

Problem

Focus mode has weak wayfinding: hidden tasks can need attention with no visible signal, the pager dots are anonymous, and the toggle silently changes two things at once.

  • Entering focus mode clears viewport-visibility tracking (TilingLayout.tsx:85-91), so the sidebar's "← input (left)" offscreen-attention labels disappear — yet in focus mode every non-active task is effectively offscreen.
  • The remaining always-visible pager, FocusModeTaskIndicators, renders identical status-less circles: no attention color, no needs-input signal, task name only on hover (FocusModeTaskIndicators.tsx, styles.css:1837-1889). With the sidebar collapsed (Cmd+B), a hidden task hitting needs_input has no visible surface at all (desktop notifications only fire when the window is unfocused).
  • The active task's name never appears in the titlebar — you identify the current task only by the small editable title inside the panel.
  • Escape does not exit focus mode (App.tsx:684-698 handles dialogs only); exit requires re-hitting the shortcut or the mode icon in a task title bar.
  • The dot strip has no overflow handling (fixed padding: 0 140px 0 44px, styles.css:1821-1835) — at ~15+ tasks dots will collide with window controls.
  • The same toggle also re-architects the panel's internal layout into a two-column split at ≥1080 px (SPLIT_ENTER_WIDTH, TaskPanel.tsx:104), which rewires the keyboard-nav grid (focus.ts:110-130 vs :132-145) — panels you learned to reach with ↓↓ suddenly live to the →.

Proposed fix

  • Tint the pager dots with the same status/attention colors as StatusDot; show the active task's name next to the strip.
  • Keep offscreen-attention computation alive in focus mode.
  • Escape exits focus mode when no dialog is open; a persistent "back to overview" affordance.
  • Make "side-by-side when wide" an explicit preference independent of focus mode.
  • Collapse the dot strip to "current/total" text past ~12 tasks.

From a full design/UX audit (2026-07-07); adversarially verified. Line numbers as of b342bbd (v1.12.0).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestuxUX / design improvements

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions