Skip to content

feat: shortcuts for every screen-level control - #27

Merged
ttncode merged 1 commit into
mainfrom
feat/hotkeys-for-every-screen-control
Oct 12, 2026
Merged

ttncode merged 1 commit into
mainfrom
feat/hotkeys-for-every-screen-control

Conversation

@ttncode

@ttncode ttncode commented Oct 12, 2026

Copy link
Copy Markdown
Owner

Summary

Every control that appears once per screen now has a shortcut (rebindable in Ctrl+/, hinted on hover). Row-level buttons in lists stay reachable with Tab + Enter.

Screen Control Default
Focus Reset session Alt+R
Focus Extend finished session Alt+Shift+E
Focus Edit minutes Alt+I
Focus Auto-shuffle animations on/off Alt+Shift+A
Focus Next animation Alt+Shift+C
To-Dos / Habits / Goals / Tags Show / hide archived Alt+Shift+H
To-Dos Show / hide backlog Alt+Shift+K
Habits Switch 7 / 30 days Alt+Shift+D
Habits, Focus summary Previous / next period Alt+Shift+← / →
Focus summary Next chart range (7→30→90→180→365 days) Alt+Shift+P
Boost Public / private post Alt+Shift+V
Tags Back Alt+Shift+B
About Me Save Ctrl+S
Menu Sounds / Notifications Alt+Shift+S / Alt+Shift+O

Defaults avoid keys browsers keep for themselves (Alt+←/→ back/forward, Alt+D/E/F). Each handler is enabled only while its control is on screen. Ctrl+S is captured on About Me only, and saves only when there are unsaved edits. The Notifications logic is shared between the menu item and the shortcut. README shortcut table updated.

Testing

  • Lint, typecheck, unit tests and build pass.
  • Every new shortcut exercised in the browser at 1440x900 with its visible effect confirmed (reset/extend states, minutes focus, shuffle flag, animation cycling, archived/backlog/range toggles, period navigation incl. disabled forward arrow, chart range cycle, visibility toggle, back, save, Sounds panel, Notifications dialog). All 16 appear in the Ctrl+/ panel.
  • Not reached: the Notifications "ask permission" branch (test browser had permission denied); it reuses the menu item's existing logic.

## Summary
Every control that appears once per screen now has a shortcut (rebindable in Ctrl+/, hinted on hover). Row-level buttons in lists stay reachable with Tab + Enter.

| Screen | Control | Default |
| --- | --- | --- |
| Focus | Reset session | Alt+R |
| Focus | Extend finished session | Alt+Shift+E |
| Focus | Edit minutes | Alt+I |
| Focus | Auto-shuffle animations on/off | Alt+Shift+A |
| Focus | Next animation | Alt+Shift+C |
| To-Dos / Habits / Goals / Tags | Show / hide archived | Alt+Shift+H |
| To-Dos | Show / hide backlog | Alt+Shift+K |
| Habits | Switch 7 / 30 days | Alt+Shift+D |
| Habits, Focus summary | Previous / next period | Alt+Shift+← / → |
| Focus summary | Next chart range (7→30→90→180→365 days) | Alt+Shift+P |
| Boost | Public / private post | Alt+Shift+V |
| Tags | Back | Alt+Shift+B |
| About Me | Save | Ctrl+S |
| Menu | Sounds / Notifications | Alt+Shift+S / Alt+Shift+O |

Defaults avoid keys browsers keep for themselves (Alt+←/→ back/forward, Alt+D/E/F). Each handler is enabled only while its control is on screen. Ctrl+S is captured on About Me only, and saves only when there are unsaved edits. The Notifications logic is shared between the menu item and the shortcut. README shortcut table updated.

## Testing
- Lint, typecheck, unit tests and build pass.
- Every new shortcut exercised in the browser at 1440x900 with its visible effect confirmed (reset/extend states, minutes focus, shuffle flag, animation cycling, archived/backlog/range toggles, period navigation incl. disabled forward arrow, chart range cycle, visibility toggle, back, save, Sounds panel, Notifications dialog). All 16 appear in the Ctrl+/ panel.
- Not reached: the Notifications "ask permission" branch (test browser had permission denied); it reuses the menu item's existing logic.
@ttncode
ttncode merged commit 876e8ec into main Oct 12, 2026
2 checks passed
@ttncode
ttncode deleted the feat/hotkeys-for-every-screen-control branch October 12, 2026 10:02
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