You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make the keyboard shortcuts and shortcut help consistent across Day, Week, and Now. Users should not see different wording or conflicting expectations for shared shortcuts when they switch views.
This should consolidate the shortcut definitions and the visible shortcut lists so the app has one clear source for shared shortcuts, plus clearly documented view-specific shortcuts where the behavior intentionally differs.
Current investigation
Actual shortcut behavior is registered in these places:
App-wide shortcuts are registered from the root shell: n opens Now, d opens Day, w opens Week, Mod+K toggles the command palette, Escape closes the command palette, and Z handles login/logout.
Day registers its view shortcuts in useDayViewShortcuts: J/K move day-to-day, T goes to today or scrolls to now, [ toggles the sidebar, task shortcuts include U/C/E/Delete/Backspace/Enter/Mod+Z/Mod+Shift+Z, and calendar shortcuts include I/M.
Week registers its view shortcuts in useWeekShortcuts: J/K move week-to-week, T goes to the current week or scrolls to now, [ toggles the sidebar, A/C create all-day/timed events, I/M focus/edit a calendar event, arrow keys move shortcut-created drafts, and Shift+W / Shift+M create Someday events.
Now registers its view shortcuts in useNowShortcuts: J/K move between tasks, Enter completes the focused task, [ toggles the shortcuts sidebar, Escape exits back to Day, T returns to Day/today, E D edits the description, E R edits the reminder, and Mod+Enter saves the description.
Shortcut help is presented in separate paths:
Day builds shortcut sections from getShortcuts() and shows them inside the Planner Sidebar shortcut overlay.
Week hand-builds its shortcut sections directly in WeekView, then shows them inside the Planner Sidebar shortcut overlay.
Now builds shortcut sections from getShortcuts() and shows them in the floating shortcuts sidebar.
The Planner Sidebar footer uses ? / Shift+/ to open or close the shortcut overlay in Day and Week. Now does not use that overlay path; it uses [ for its shortcut sidebar.
Known inconsistencies to fix:
[ is shown as “Close sidebar” in the shared Day/Now shortcut data, but Week shows it as “Toggle sidebar,” and the actual behavior is generally toggle/open depending on state.
? is shown as “Show shortcuts” in the shared Day/Now shortcut data, but Week shows it as “Toggle shortcuts.”
Week’s visible shortcut list is hard-coded in WeekView instead of using the shared shortcut data path that Day and Now use.
Now’s visible shortcut list does not show Escape, even though Escape exits Now and returns to Day.
Day’s visible shortcut list does not show every active shortcut, such as Backspace delete and undo shortcuts.
Some keys intentionally mean different things per view, such as J/K for day navigation, week navigation, and task navigation, and C for task creation versus timed-event creation. The implementation should make the intentional differences clear while keeping shared/global shortcuts consistent.
Acceptance criteria
Shared/global shortcuts have one source of truth and use the same labels in Day, Week, Now, the command palette, and the view selector.
Shared shortcut presentation uses consistent wording, especially for sidebar and shortcut-help actions.
View-specific shortcut help is generated from a clear registry or shared data structure rather than being hand-built separately in each view.
Day, Week, and Now shortcut help accurately lists the active shortcuts for that view, including exit/back, undo, and sidebar behavior where applicable.
Tests are added or updated so shortcut behavior and displayed shortcut help cannot drift silently.
Manual verification covers opening Day, Week, and Now and confirming the visible shortcut help matches actual keyboard behavior.
What to build
Make the keyboard shortcuts and shortcut help consistent across Day, Week, and Now. Users should not see different wording or conflicting expectations for shared shortcuts when they switch views.
This should consolidate the shortcut definitions and the visible shortcut lists so the app has one clear source for shared shortcuts, plus clearly documented view-specific shortcuts where the behavior intentionally differs.
Current investigation
Actual shortcut behavior is registered in these places:
nopens Now,dopens Day,wopens Week,Mod+Ktoggles the command palette,Escapecloses the command palette, andZhandles login/logout.useDayViewShortcuts:J/Kmove day-to-day,Tgoes to today or scrolls to now,[toggles the sidebar, task shortcuts includeU/C/E/Delete/Backspace/Enter/Mod+Z/Mod+Shift+Z, and calendar shortcuts includeI/M.useWeekShortcuts:J/Kmove week-to-week,Tgoes to the current week or scrolls to now,[toggles the sidebar,A/Ccreate all-day/timed events,I/Mfocus/edit a calendar event, arrow keys move shortcut-created drafts, andShift+W/Shift+Mcreate Someday events.useNowShortcuts:J/Kmove between tasks,Entercompletes the focused task,[toggles the shortcuts sidebar,Escapeexits back to Day,Treturns to Day/today,E Dedits the description,E Redits the reminder, andMod+Entersaves the description.Shortcut help is presented in separate paths:
getShortcuts()and shows them inside the Planner Sidebar shortcut overlay.WeekView, then shows them inside the Planner Sidebar shortcut overlay.getShortcuts()and shows them in the floating shortcuts sidebar.?/Shift+/to open or close the shortcut overlay in Day and Week. Now does not use that overlay path; it uses[for its shortcut sidebar.Known inconsistencies to fix:
[is shown as “Close sidebar” in the shared Day/Now shortcut data, but Week shows it as “Toggle sidebar,” and the actual behavior is generally toggle/open depending on state.?is shown as “Show shortcuts” in the shared Day/Now shortcut data, but Week shows it as “Toggle shortcuts.”WeekViewinstead of using the shared shortcut data path that Day and Now use.Escape, even though Escape exits Now and returns to Day.J/Kfor day navigation, week navigation, and task navigation, andCfor task creation versus timed-event creation. The implementation should make the intentional differences clear while keeping shared/global shortcuts consistent.Acceptance criteria
Blocked by
None - can start immediately.