Customizable keyboard shortcuts

(from GitHub #553)

Is your feature request related to a problem? Please describe.
People come to Logseq from different operating systems, use different keyboard layouts and languages, and have different preferences. Customizable keyboard shortcuts is the only way to make everybody happy.

Describe the solution you’d like
A way to customize keyboard shortcuts, either using a web form, dedicated page, or text file in logseq.

would these workflowy bindings be handy?

1 Like

Thanks! We’ll start working on the change if you people think it’s ok with this list :slight_smile:

ideally, the shortcuts should be user-configurable: there are too many differences between Windows and Mac OS.
the command key is ALT in wondows, but some command+ shortcuts should be CTRL+instead of ALT+ (for instance: BOLD should be CTRL B, not ALT B (bookmarks),…

if it’s not possible to create individually user-configurable shortcuts, maybe an option to use MAC/WINDOWS/LINUX shortcuts, with different mappings (I think that’s what Roam is doing) ?

we should try to make a thorough lisst with cross-refs between apps and os.

meanwhile, here the current shortcuts maps for dynalist / workflowy / Roam :


Indent Tab
Unindent Shift+Tab
Expand/collapse Ctrl+.
Zoom in Ctrl+]
Zoom out Ctrl+[
Delete item Ctrl+Shift+⌫
Toggle help Ctrl+/
Toggle file pane Ctrl+Shift+F
Toggle bookmark pane Ctrl+Shift+B
Save Ctrl+S
Capture to inbox (Pro) Ctrl+Shift+I
Working with lists
Delete from above Ctrl+Shift+Del
Move between item & note Shift+↵
Toggle checked Ctrl+↵
Expand/collapse all Ctrl+Shift+.
Toggle checkbox Ctrl+Shift+C
Toggle numbered list Ctrl+Shift+X
Select this and previous item Shift+↑
Select this and next item Shift+↓
Select everything Ctrl+Shift+A
Undo Ctrl+Z
Redo Ctrl+Y
Navigating & moving
Move item Ctrl+Shift+M
Swap with previous Ctrl+↑
Swap with next Ctrl+↓
Zoom in previous item Ctrl+Shift+[
Zoom in next item Ctrl+Shift+]
Go to start of first item Ctrl+Home
Go to end of last item Ctrl+End
Search in doc Ctrl+F
Search everywhere Ctrl+↵
Enter flat search Shift+↵
Open file finder Ctrl+O
Open item finder (Pro) Ctrl+Shift+O
Make bold Ctrl+B
Make italics Ctrl+I
Format as code Ctrl+`
Add link Ctrl+K
Insert new line in item Ctrl+Shift+↵
Toggle heading Ctrl+Shift+H
Toggle color label Ctrl+Shift+L

workflowy :

0 Alt + → Zoom in
Alt + ← Zoom out
Ctrl + ↓ Expand
Ctrl + ↑ Collapse
⭾ Tab Indent
↑ Shift + ⭾ Tab Outdent. Alternatively, press Enter on an empty line
Alt + ↑ Shift + ↑ Move up
Alt + ↑ Shift + ↓ Move down
↑ Shift + ⤶ Enter Add a note
Ctrl + ⤶ Enter Complete
Alt + ↑ Shift + D Duplicate
Ctrl + ↑ Shift + :arrow_left: Backspace Delete
Esc Search
Ctrl + O Show / hide completed
↑ Shift + Ctrl + 8 Star page
Ctrl + K Switch between pages
Ctrl + ’ Navigate home
Ctrl + ? Toggle keyboard shortcuts help

Roam research (mac then win below)

Working with lists and blocks (Mac)

  • Tab Indent block
  • Shift-Tab Unindent block
  • Cmd-Shift-Up Move block up
  • Cmd-Shift-Down Move block down
  • Enter Create a new block (bullet point)
  • Cmd-Enter or [] Create a TODO checkbox.
  • Shift-Enter Create a new line inside a block
  • Cmd-z Undo
  • Cmd-Shift-Z Redo
  • Cmd-Period Zoom in (show only current block enlarged)
  • Cmd-Comma Zoom out (return to normal view)
  • Ctrl-o Follow link under cursor (when editing a block so links are unclickable)
  • Ctrl-shift-o Open link under cursor in sidebar (when editing a block so links are unclickable)
  • Cmd-Up Collapse all subordinate blocks under the current block
  • Cmd-Down Expand all subordinate blocks under the current block (if they are currently hidden)
  • Shift-Up Select the block above where the cursor is placed
  • Shift-Down Select the block below where the cursor is placed
  • Cmd-Shift-a Select all blocks
  • Ctrl-a Jump to beginning of block
  • Ctrl-e Jump to end of block
  • Ctrl-c then Ctrl-b Toggle brackets off or on. Simply gets brackets out of the view if you want to see the text without them. Does not delete the brackets.
  • Ctrl-f Move one character to the right (forward)
  • Ctrl-b Move one character to the left (back)
  • Ctrl-t Swap the characters on either side of the cursor (so “ab” becomese “ba”)
  • Ctrl-c then Ctrl-x Show avatar of last user to edit the block.

Working with Lists and Blocks (Windows)

  • Tab – Indent block. Nests the block beneath the block directly above.
  • Shift-Tab – Unindent block.
  • Cmd-Shift-Up – Move block up.
  • Cmd-Shift-Down – Move block down.
  • Enter – Create a new block (bullet point).
  • Shift-Enter – Create a new line inside a block.
  • Ctrl-z – Undo.
  • Ctrl-Shift-Z – Redo.
  • -Alt-Right – Zoom in. Show only current block.
  • Alt-Left – Zoom out. Go to parent block.
  • Ctrl-o – Follow link under cursor. (when editing a block so links are unclickable)
  • Ctrl-Shift-o – Open link under cursor in sidebar. (when editing a block so links are unclickable)
  • Ctrl-Up – Collapse all subordinate blocks under the current block.
  • Ctrl-Down – Expand all subordinate blocks under the current block. (if they are currently hidden)
  • Shift-Up – Select the block above where the cursor is placed.
  • Shift-Down – Select the block below where the cursor is placed.
  • Ctrl-Shift-a – Select all blocks.
  • Ctrl-Home – Jump to beginning of block.
  • Ctrl-End – Jump to end of block.
  • Ctrl-Shift-End – Select all text from cursor to end of block.
  • Ctrl-c then Ctrl-x – Show picture of last editor of block.

How about that we make the shortcuts configurable first, and add 3 different default mappings for MAC/WIN/LINUX later?
I can start working on the configurable shortcuts soon. And then I can add those default mappings designed by this community.
What do you think?


yes, great ! for info I’ve edited the post above to add shortcuts for similar apps (dyna/workflowy/rr), I’ll try to make a cross ref list and add obsidian to get the full picture.

fully user-configurable shortcuts would be the best option

1 Like

Awesome, thanks for the list!

fully user-configurable shortcuts would be the best option

Totally agree on this!


yep, it’s probably the only way to please both win and mac people :slight_smile:
the roam shortcuts list is useful in this regard

1 Like

Don’t tell vimers and emacers, those custom bindings are not enough!!

1 Like

lol. actually I could use some vim hjkl to navigate ! on win, it’s a bit cumbersome to move between lines/blocks, you need the mouse

1 Like

It would be great to have more control over shortcuts, be able to change them and possibly introduce new ones

I would love to use Ctrl-k and Ctrl-k to toggle between suggestions when linking a page (like in Roam Research and many editors)

Thanks for creating this great tool.
Please also ensure shortcut for “Expanding/Collapsing all sections at once” is added to the shortcut list.
Below is VSCode bindings, but others should also do the job.
Ctrl + K + [ -> Collapse all.
Ctrl + K + ] -> Expand all.

VSCode also does this:
If key binding executed on title, then it executes on all items.
If it is executed on an item, it collapses/expands items nested below such an item.


1 Like

this feature would be amazing, like others have said, the only way to have everyone be happy is with a simple interface to assing customized keybinding. Ideally in a simple to use menu, but if not even being able to do it from a config file like config.edn would be a nice way to start, at least for now


for now you can use tab tab while in view mode to expand/collapse all

1 Like

I’m not sure if I might be missing something with the tab tab approach, but it only seems to collapse the first level.

meaning that if there are various sub-level they are all expanded inside of level 1, it’s only the first level that collapses, when one expands level 1, level 2, 3 and so on are all expanded inside level 1.

It’d be nice to be able to have every single level folded by default

I hope that makes sense, in that sense I think what @parth is not yet possible, I’d also love to be able to acheive this, in the same way that it’s possible with org-mode, however perhaps this should be it’s own feature request, ideally with a video to explain it properly


1 Like

yes, I meant it as an existing workaround for now. it would better if it worked as @parth described for sure.

1 Like

got you! yeah that makes sense, wasn’t sure what you meant, the tab tab approach is super helpful and not that obvious, I use it all the time!

Just as a side question, do you know if it’s possible to configure logseq to collapse by default (tab tab style) when opening an exisiting note (such as daily or any other note)? So that I don’t have to tab tab every time I open a note (which I have to do way too often, specially the daily note)

If it’s not currently possible, I might make a feature request for it, since I do prefer having everything collapses by default all the time (org-mode style)


I don’t think it possible currently… if you make a feature request : I think it would be nice to be able to flag the bullet initial state via a :PROPERTIES: like ‘tree: folded’ or ‘collapsed: true’ ? (that way we could have granular control on each block independently)

1 Like

awesome yeah, similar to how org-mode deals with collapsing, there’s a default behaviour, but this can be modified by specific files. Awesome I’ll keep that in mind! Thanks!

I just created a feature request for this, feel free to add more to it to make things clearer if needed!