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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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