Skip to content

Add first-letter app-jump in the overlay#7

Merged
peterp merged 2 commits intomainfrom
feat/letter-jump
Apr 28, 2026
Merged

Add first-letter app-jump in the overlay#7
peterp merged 2 commits intomainfrom
feat/letter-jump

Conversation

@peterp
Copy link
Copy Markdown
Owner

@peterp peterp commented Apr 28, 2026

While the overlay is up, hold ⌃ (Control) + an app's first letter to jump selection to the next tile owned by that app. Repeat ⌃+letter to cycle through matches.

  • Match: `tile.scWindow.owningApplication?.applicationName`, lowercased prefix
  • Order: from current+1 to end, then wraps from 0
  • Reset: `lastLetterJump` clears on overlay hide so each show starts fresh
  • Modifier: ⌃ chosen because no default bindings use it; bare wasd / arrow keys keep moving as before
  • Disabled: silent no-op (same as any unmapped key today)

Toggle in Settings → "First-letter app jump" (default on, persisted as `letterJump` in config.json).

Credit to @plyght — concept from #1, with a Control gate added to avoid colliding with wasd movement bindings.

Test plan

  • `./build-app.sh && open cmdcmd.app`
  • ⌘⌘ overlay up → press `s` → selection moves down (wasd movement still works)
  • Press ⌃+s → selection jumps to a Safari/Slack/Spotify tile
  • Press ⌃+s again → selection cycles to the next matching app
  • ⌃+letter with no matching app → no movement
  • Disable in Settings → ⌃+letter is a no-op
  • Dismiss overlay, reopen, ⌃+s — starts cycle from index 0 again

🤖 Generated with Claude Code

peterp and others added 2 commits April 28, 2026 22:37
Press an app's first letter while the overlay is up to select the next
matching tile; repeat to cycle through matches. Match is by the owning
application's name (prefix, case-insensitive).

Toggle in Settings → "First-letter app jump" (default on). Letter keys
that don't match anything are no-ops, matching the existing unmapped-
key behavior. Letters bound in config.json bindings still win — keymap
runs before letter-jump.

Co-Authored-By: plyght <plyght@peril.lol>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bare letters were colliding with the wasd movement bindings, making
letter-jump unreachable for apps starting with W/A/S/D. Require ⌃
(Control) + letter to fire letter-jump; bare wasd remains as movement.

Control was chosen because no existing default binding uses it
(Cmd, Opt, Shift are all in use).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@peterp peterp merged commit 481ec2f into main Apr 28, 2026
1 check passed
@peterp peterp deleted the feat/letter-jump branch April 28, 2026 20:44
@peterp peterp mentioned this pull request Apr 28, 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