Skip to content

Add a scanned Home menu so switch users need not focus an app first - #967

Merged
enaboapps merged 2 commits into
mainfrom
claude/966-home-menu
Oct 2, 2026
Merged

enaboapps merged 2 commits into
mainfrom
claude/966-home-menu

Conversation

@enaboapps

@enaboapps enaboapps commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Closes #966

What changes

Switch users were told to "Focus the application you want to use, then press Select". That step is outside switch control. Select now opens a scanned Home menu instead.

Home layout (3 × 3):

  • Point, Mouse, Keyboard
  • Apps and windows, Editing, Browser
  • Media, Switchify, Close menu

When Select opens Home:

  • On a fresh start: the first Select, or after Close menu, Stop scanning, Escape, or a point scan that reached its pass limit.
  • After an action (click, drag, command), the next Select carries on in the same mode, so routine clicking costs no extra steps. The runtime carries a resume flag from the finished scan into the next one through a new Adapter::carry_over hook.

Foreground handling:

  • Nothing in Home acts at a chosen point. Mouse, Displays and Scanning settings are left out of the Home tree.
  • Home therefore follows whichever window is in front. Apps and windows → Switch app forward, Overview and the rest bring an app forward without the scan being cancelled.
  • Once the user leaves Home for Point, the existing foreground check applies again.

Returning to Home:

  • A command chosen in Home, or in a page under it, returns to Home.
  • The keyboard opened from Home closes back to Home.
  • Failures in Home (or in a keyboard opened from it) are reported in Home.

Other changes:

  • Switchify shows the settings window and ends the scan.
  • A Home tile is added to the Point action menu (row 3) and Mouse Actions. Both still fit the 3 × 4 limit.
  • New Select starts setting under Scanning: Home menu (default) or Last mode used (the previous behaviour). It is stored as startWith in point-scan.json. Saved settings without the field load as Home. This is covered by a compatibility test, and the protocol is untouched.
  • The "Focus the application…" text is replaced in Home status, the setup guide, the grid and line demonstrations, How scanning works, and docs/point-scan.md.

Validation

Windows 11, Node 24.13.0, Rust 1.97.1:

  • npm run prediction-model ✅
  • npm run lint ✅
  • npm test: 253 passed ✅
  • npm run build ✅
  • cargo fmt --check ✅
  • cargo clippy --all-targets -D warnings ✅
  • cargo test: 630 + 7 passed ✅

New tests:

  • Select opens Home, centred on the display without a point marker.
  • Choosing Point, then a click, means the next session continues in Point. Stop means the next Select opens Home.
  • A timed-out point scan restarts from Home.
  • Home commands return to Home. Close menu and Switchify end the scan.
  • Back from a Home group returns to Home.
  • The keyboard returns to Home; failures stay in Home.
  • Home opens from the Point actions and Mouse Actions menus.
  • Home contains only actions that need no point.
  • Saved settings compatibility and the startWith round trip.
  • Distinct tile artwork for Home, Point and Switchify.
  • UI: the Select starts option saves startWith; the status text no longer asks the user to focus an app.

Tests that exercise point flows from Select now use an explicit LastMode config.

Independent review

First review (head 512b9d7) found two problems, both fixed in e420998:

  • Next/Previous display opened Home instead of restarting point scanning. It now uses OpenPoint (new point_session helper, with a test).
  • A failed Point or Switchify request chosen in Home fell back to the Actions menu with no chosen point. It now returns to Home (leaving_home, with a test).

Accepted deliberately: if settings are saved or the engine is otherwise rebuilt between scans, the next Select opens Home instead of resuming.

Re-review of head e420998: no actionable findings. 630 Rust tests and 253 UI tests pass.

Not yet done: a manual run on hardware (npm run macos:run on macOS; an installed build on Windows for UIAccess) to confirm Home placement and that Switch app forward is not cancelled.

🤖 Generated with Claude Code

Select now opens Home when scanning starts afresh, offering Point, Mouse,
Keyboard, Apps and windows, Editing, Browser, Media and Switchify. After an
action, Select carries on in the same mode, so routine clicking costs no
extra steps. Home actions need no chosen point, so Home follows whichever
window is in front; commands return to Home and the keyboard opened from
it closes back to it. Home is also a tile in the Point action menu and
Mouse Actions. A new "Select starts" setting keeps the old last-mode
behaviour available; saved settings without it open Home.

Closes #966

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@enaboapps enaboapps added this to the v1.0.0-rc.19 milestone Oct 2, 2026
…to Home

Next/Previous display rebuilt the session with Select, which now opens Home;
it starts point scanning directly instead. A failed Point or Switchify
request chosen in Home returns to Home rather than to an action menu with
no chosen point.

Refs #966

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@enaboapps
enaboapps marked this pull request as ready for review October 2, 2026 15:05
@enaboapps
enaboapps merged commit e1cda9d into main Oct 2, 2026
6 checks passed
@enaboapps
enaboapps deleted the claude/966-home-menu branch October 2, 2026 15:39
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.

Add a scanned Home menu so switch users need not focus an app first

2 participants