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.
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 :
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
Hi,
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.
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
I’m not sure if I might be missing something with the tabtab 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
got you! yeah that makes sense, wasn’t sure what you meant, the tabtab 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 (tabtab style) when opening an exisiting note (such as daily or any other note)? So that I don’t have to tabtab 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)
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!