docs/wiki/3.03-Keyboard-Shortcuts.md
Super Productivity supports an extensive keyboard shortcut system. Shortcuts are grouped by function, and most are user-configurable via [[3.02-Settings-and-Preferences]].
Configurable shortcuts fall into these categories:
globalShowHide, globalToggleTaskStart, globalAddNote, globalAddTask. Available only in the Electron/desktop build.goToFocusMode, goToWorkView, goToScheduledView, goToTimeline, goToSettings.taskToggleDone, taskAddSubTask, taskSchedule, taskDelete, taskEditTitle, move/select task actions, and others.toggleIssuePanel, toggleBacklog, toggleTaskViewCustomizerPanel, addNewTask, addNewProject, addNewNote, focusSideNav, openProjectNotes, showSearchBar, triggerSync, zoom.The project README (keyboard shortcuts section) lists a subset of the most commonly used defaults.
These work everywhere in the app.
Shift+A: Open add task barShift+P: Open create project dialogN: Add new noteShift+D: Focus SidenavShift+N: Show/Hide NotesC: Toggle Filter/Group/Sort PanelP: Show/Hide Issue PanelShift+F: Show search barB: Show/Hide Task BacklogW: Go to Work View and focus first taskF: Enter Focus ModeShift+T: Go to ScheduleShift+S: Go to scheduled Tasks<no default binding>: Go to SettingsCtrl+=: Zoom in (Desktop/Firefox/Chrome)Ctrl+-: Zoom out (Desktop/Firefox/Chrome)Ctrl+0 (zero): Zoom default (Desktop/Firefox/Chrome)Ctrl+S: Trigger sync (if configured)The following shortcuts apply for the currently selected task (selected via tab or mouse).
<no default binding>: Edit TitleI: Show/Hide additional task infoT: Edit estimation / time spentS: Open schedule dialog for currently focused taskD: Mark currently focused task as doneA: Add subtask to currently focused taskL: Attach file or linkEnter: Edit currently focused task titleBackspace: Delete currently focused taskE: Open move task to project menuQ: Open task context menuK: Select previous TaskJ: Select next TaskCtrl+Shift+ArrowUp: Move currently focused task up in listCtrl+Shift+ArrowDown: Move currently focused task down in listCtrl+Alt+ArrowUp: Move currently focused task to the topCtrl+Alt+ArrowDown: Move currently focused task down to the bottomShift+B: Move Task to Task BacklogShift+T: Move Task to Today's Task List<no default binding>: Expand Sub Tasks<no default binding>: Collapse Sub TasksY: Toggle tracking time to currently focused taskArrow keys: Navigate around task listArrowRight: Open additional info panel for currently focused taskThe following shortcuts apply when focus is on a collapsible group header (e.g., task groupings in Work View like Overdue, Today, Done, Recurring, etc.).
ArrowLeft: Collapse the focused groupArrowRight: Expand the focused groupShift+ArrowLeft: Collapse all groupsShift+ArrowRight: Expand all groupsEnter or Space: Toggle the focused groupThese shortcuts are unconfigurable and always available on group headers.
Electron/desktop only:
globalShowHide, globalToggleTaskStart, globalAddNote, globalAddTask) work system-wide when the app is running.zoomIn, zoomOut, zoomDefault) are desktop-only.Android:
All shortcuts listed in [[3.02-Settings-and-Preferences]] are user-configurable. Users can:
Shortcuts are stored in global config (GlobalConfigState.keyboard) and persist to IndexedDB; they sync across devices if sync is enabled. No shortcuts are reserved; every one can be changed or disabled.
Task-level shortcuts: Actions with a task focus (e.g. mark done, add subtask, schedule, delete, move) apply to the currently selected task. Selection is by keyboard (tab/arrows) or mouse. The [[3.02-Settings-and-Preferences]] keyboard help text describes these as applying to "the currently selected task."
Input filtering: Application-level and task-level shortcuts are not handled when focus is in an input, textarea, or content-editable element, or when a blocking overlay (e.g. dialog) is open. This avoids shortcuts firing while typing.
Where shortcuts are defined:
KeyboardConfig (keyboard-config.model.ts).default-global-config.const.ts (keyboard section).keyboard-form.const.ts.Where they are stored and used:
GlobalConfigState.keyboard; persisted via the global config system to IndexedDB; synced when sync is enabled.ShortcutService; the key listener is registered in the app root (e.g. AppComponent).The shortcut system uses the Keyboard API layout map when available so that shortcuts behave correctly across keyboard layouts (e.g. QWERTY, QWERTZ, AZERTY, Dvorak). The user's layout is detected and used for matching key events to configured shortcuts.