Skip to content

Keyboard shortcuts

Click a task to focus it. Navigation and action shortcuts apply while you are outside a text field. Press i or Enter to edit a focused task’s title. Press Enter or Esc to finish editing; Shift+Enter inserts a line break.

In this reference, Shift+O means hold Shift and press O. Control-based movement uses Ctrl on macOS too.

KeyAction
\Toggle Stash
vToggle task details
pToggle the project panel in the planning view
zClose Stash, task details, and the project panel in the planning view
KeysAction
j, ArrowDownFocus the next item
k, ArrowUpFocus the previous item
h, ArrowLeftFocus an item in the column to the left
l, ArrowRightFocus an item in the column to the right
KeysAction
i, EnterEdit title
oCreate a task below the focused todo task
Shift+OCreate a task above the focused todo task
SpaceToggle todo or done
Ctrl+j, Ctrl+ArrowDownMove down in the list
Ctrl+k, Ctrl+ArrowUpMove up in the list
Ctrl+h, Ctrl+ArrowLeftMove to the column on the left
Ctrl+l, Ctrl+ArrowRightMove to the column on the right
mMove to another project
sChoose a scheduled date
tSchedule for today
rClear the schedule
Shift+SMove to Stash
Shift+TConvert a task without a template into a recurring template
eEdit description in task details
cAdd a checklist item
aOpen the action menu
d, x, BackspaceRemove the focused item from its current view
Ctrl+Backspace, Cmd+BackspaceDelete the underlying task when focused in a daily list

In a project section, d, x, and Backspace delete the task. In a daily list or Stash, they remove its appearance and keep the task in its project. See deletion behavior.

KeysAction
iEdit project
j, kNavigate between projects
d, x, BackspaceDelete project

With the desktop app running, press Cmd+Shift+A on macOS or Ctrl+Shift+A on Windows and Linux to open quick add from another app. Closing the main window keeps Will Be Done running in the system tray. Use the tray’s quit action to exit completely.

Some Wayland compositors register the global shortcut without delivering its events. Configure the compositor to invoke the app with --show-quick-add. Choose the command for your installed package:

PackageCommand
deb, rpm, snapwill-be-done --show-quick-add
Flatpakflatpak run --command=will-be-done-quick-add app.willbedone.WillBeDone
AppImage/absolute/path/to/will-be-done.AppImage --show-quick-add

For niri, add this entry inside the binds section:

Ctrl+Shift+A {
spawn "will-be-done" "--show-quick-add";
}

Run niri validate after editing. Niri reloads valid configuration changes.

For Hyprland with Lua configuration:

hl.bind(
"CTRL + SHIFT + A",
hl.dsp.exec_cmd("will-be-done --show-quick-add")
)

Replace the command in either example if you use Flatpak or AppImage. The command starts the app with the main window hidden, or forwards the request to the running process.

To open or focus the main window with Flatpak, run:

Terminal window
flatpak run --command=will-be-done-show app.willbedone.WillBeDone

Undo and redo are not implemented. Outside text fields, u, Cmd+Z, Ctrl+Z, Ctrl+R, Cmd+Shift+Z, and Ctrl+Shift+Z are reserved and do not undo or redo task actions.