5.5 KiB
Executable file
Keyboard Shortcuts
Super Productivity supports an extensive keyboard shortcut system. Shortcuts are grouped by function, and most are user-configurable via 3.02-Settings-and-Preferences.
Functional Grouping
Configurable shortcuts fall into these categories:
- Global (system-wide):
globalShowHide,globalToggleTaskStart,globalAddNote,globalAddTask. Available only in the Electron/desktop build. - Navigation:
goToFocusMode,goToWorkView,goToScheduledView,goToTimeline,goToSettings. - Task management:
taskToggleDone,taskAddSubTask,taskSchedule,taskDelete,taskEditTitle, move/select task actions, and others. - UI panels:
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.
Global Shortcuts
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)
Tasks
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 task
Unconfigurable
Arrow keys: Navigate around task listArrowRight: Open additional info panel for currently focused task
Platform-Specific Differences
Electron/desktop only:
- Global shortcuts (
globalShowHide,globalToggleTaskStart,globalAddNote,globalAddTask) work system-wide when the app is running. - Window zoom controls (
zoomIn,zoomOut,zoomDefault) are desktop-only.
Android:
- Keyboard settings are not shown on Android; the keyboard configuration UI is hidden.
Configurable Vs Reserved
All shortcuts listed in 3.02-Settings-and-Preferences are user-configurable. Users can:
- Change any shortcut by clicking the input and pressing the desired key or combination; press Enter to save.
- Clear a shortcut by pressing Escape in the input field (sets it to no binding).
- Have the UI warn when two actions share the same shortcut.
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.
Context-Dependent Behavior
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.
Conflict and Precedence
- Input focus: When focus is in an input element or a blocking overlay is open, shortcut handling is skipped so typing is not interrupted.
- Conflicts: The configuration UI warns if two actions are assigned the same key combination. The user can press Escape in the shortcut field to clear that assignment.
Storage and Definition
Where shortcuts are defined:
- Config model:
KeyboardConfig(keyboard-config.model.ts). - Default mappings:
default-global-config.const.ts(keyboard section). - Settings form (which actions appear and their labels):
keyboard-form.const.ts.
Where they are stored and used:
- Saved in
GlobalConfigState.keyboard; persisted via the global config system to IndexedDB; synced when sync is enabled. - Handled at runtime by
ShortcutService; the key listener is registered in the app root (e.g.AppComponent).
Notes
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.