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 dialogAlt+N: 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 TodayShift+S: Go to Schedule<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 search bar searches open tasks by default. Enable Include completed and archived tasks in the search view to include older completed results.
Add Task Bar (while the add bar input is focused)
Ctrl+1: Toggle issue-search modeCtrl+2: Toggle note fieldCtrl+3: Toggle add to top / bottom of listCtrl+4: Open project selectorCtrl+5: Open schedule dialog (set due date/time)Ctrl+6: Open tags selectorCtrl+7: Open estimate selectorCtrl+8: Open repeat settingsCtrl+9: Open deadline dialog (set hard deadline)Ctrl+Enter: Reveal the note field (or add the task when the note is focused)
Tasks
The following shortcuts apply for the currently selected task (selected via tab or mouse).
<no default binding>: Edit TitleI: Show/Hide additional task infoN: Open note/checklist in task panelT: Edit estimation / time spentS: Open schedule dialog for currently focused taskShift+S: Open deadline 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 list- In an empty or whitespace-only add-subtask input,
ArrowUpfocuses the preceding subtask or parent task, andArrowDownfocuses the next task when available. At the end of the list, focus stays on the closest task row or control. ArrowRight: Open additional info panel for currently focused taskCtrl+C/Cmd+C: Copy the currently focused task title when focus is on the task, no text is selected, and focus is not inside an input
Collapsible Groups
The 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 groupsEnterorSpace: Toggle the focused group
These shortcuts are unconfigurable and always available on group headers.
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.
Linux (Wayland):
- Electron's built-in global shortcuts often do not register, because Wayland deliberately leaves global hotkeys to the compositor. Bind your compositor's keys to the URL scheme instead (see below).
Android:
- Keyboard settings are not shown on Android; the keyboard configuration UI is hidden.
Global Shortcuts on Wayland (URL scheme)
On Wayland the compositor — not the application — owns global hotkeys, so the built-in global shortcuts above may not fire. Super Productivity registers the superproductivity:// URL scheme, and the already-running instance handles these URLs, so you can bind compositor keys to them with the standard xdg-open command (part of xdg-utils, already present on virtually every Linux desktop — no extra tool or runtime to install).
Available fire-and-forget actions:
| URL | Equivalent shortcut | Effect |
|---|---|---|
superproductivity://toggle-visibility |
globalShowHide |
Show/focus the window, or hide it |
superproductivity://add-task |
globalAddTask |
Show the window and open the add-task bar |
superproductivity://add-note |
globalAddNote |
Show the window and open the add-note dialog |
superproductivity://task-toggle-start |
globalToggleTaskStart |
Start/pause tracking the current task |
superproductivity://create-task/<title> |
— | Create a task with the URL-encoded <title> |
Run any of them manually to test:
xdg-open "superproductivity://toggle-visibility"
Then bind them in your compositor. Examples:
// Niri (config.kdl)
binds {
Mod+Shift+S { spawn "xdg-open" "superproductivity://toggle-visibility"; }
Mod+Shift+A { spawn "xdg-open" "superproductivity://add-task"; }
}
# sway / i3 (~/.config/sway/config)
bindsym $mod+Shift+s exec xdg-open "superproductivity://toggle-visibility"
bindsym $mod+Shift+a exec xdg-open "superproductivity://add-task"
# Hyprland (~/.config/hypr/hyprland.conf)
bind = $mainMod SHIFT, S, exec, xdg-open "superproductivity://toggle-visibility"
bind = $mainMod SHIFT, A, exec, xdg-open "superproductivity://add-task"
If xdg-open does not reach the app, confirm the desktop entry registers the scheme with xdg-mime query default x-scheme-handler/superproductivity (it should print Super Productivity's .desktop file). The same mechanism works on X11; it is only required on Wayland.
Packaging note: the
.deb/.rpmpackages register the scheme at install time. With the AppImage you must integrate it into your desktop first (e.g. via AppImageLauncher), otherwise nothing registers the scheme. Flatpak/Snap register it via their own packaged desktop file, soxdg-mime queryresolves to that id rather than a plainsuperproductivity.desktop.
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, Backspace, or Delete in an input field that already has a 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."
Specifically for the Next Month shortcut, the task is scheduled for the 1st day of the next month. This avoids issues with different month lengths (e.g., scheduling for the 31st when the next month only has 30 days).
Schedule week view: Ctrl+MouseWheel changes the vertical scale of the week schedule grid. The value is stored locally for future schedule visits.
Focus Mode overlay: Escape closes the overlay. If a focus session or break is running, it continues in the header focus button.
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.
- Contextual Precedence: Task-level shortcuts take precedence over global shortcuts when a task is currently focused. For example, pressing
Shift+Sopens the deadline dialog if a task is focused, but navigates to the Schedule view if no task is focused. Similarly,Shift+Tschedules the selected task for today, but navigates to the Today view otherwise. - Conflicts: The configuration UI warns if two actions are assigned the same key combination. The user can press Escape, Backspace, or Delete in the shortcut field to clear an existing assignment.
Storage and Definition
Where shortcuts are defined:
- Config model:
KeyboardConfig(electron/shared-with-frontend/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.
1.00-Quickstarts
2.00-How_To
Using Super-Productivity
- 2.01-Downloads and Install
- 2.02-Restore-Data-From-Backup
- 2.03-Add-Tasks
- 2.04-Manage-Subtasks
- 2.05-Manage-Scheduled-Tasks
- 2.06-Manage-Repeating-Tasks
- 2.07-Manage-Task-Integrations
- 2.08-Choose-Sync-Backend
- 2.09-Configure-Sync-Backend
- 2.19-Sync-Proton-Drive-via-rclone
- 2.13-Run-with-Docker
Contributing to Super-Productivity
- 2.18-Contribute-Translations
- 2.11-Run-the-Development-Server
- 2.16-Set-Up-Development-Environment
- 2.12-Package-the-App
- 2.14-Build-for-Android
- 2.15-Develop-a-Plugin
- 2.17-Add-a-New-Issue-Integration
3.00-Reference
- 3.01-API
- 3.02-Settings-and-Preferences
- 3.03-Keyboard-Shortcuts
- 3.04-Short-Syntax
- 3.05-Web-App-vs-Desktop
- 3.06-User-Data
- 3.07-Issue-Integration-Comparison
- 3.08-Sync-Integration-Comparison
- 3.09-Theming
4.00-Concepts
Data-and-Integrations
Organizing
- 4.06-Project-View
- 4.07-Tag-View
- 4.08-Time-Estimates
- 4.09-Task-Attributes
- 4.10-Task-Notes
- 4.11-Subtasks
Planning
Doing
- 4.01-The-Today-View
- 4.02-Inbox-View
- 4.05-Board-View
- 4.14-How-Time-Is-Logged
- 4.15-Timers-and-Focus-Mode
- 4.16-Break-Reminders
- 4.17-Idle-Time
- 4.08-Time-Estimates
Reviewing
If you have further questions, please refer to the discussions page.