For UX, I think using arrow keys to navigate nodes (files/folders) in Finder.app (macOS) is good design.
- To navigate between blocks/nodes, please refer to Finder.app
- To adjust indent and navigate between pages, please refer to many IDEs.
(1) Navigation with arrows
My suggestion is using pure arrows in Navigation Mode. Mixing semantic would confuse users. Currently in navigation mode (where you can use arrow keys to jump between blocks; you can press esc
to escape edit mode to navigation mode):
- Pressing
up ↑
ordown ↓
in navigation mode will choose previous and next block. - Pressing
left ←
andright →
in navigation mode will enter into Edit Mode. This is not intuitive.
In Finder.app of macOS, pressing left ←
or right →
would move the selected item to higher level or lower level of the block.
Here are my suggestions for shortcuts:
- Pressing
right →
- if the selected block (as folder in Finder) is not expanded, expanding the block.
- if the selected block is already expanded, do nothing.
- Pressing
left ←
- if the selected block is expanded, collapsing this selected block. Or…
- if the selected block has a parent block/node in this page, jump to the parent block.
- if the selected block is already collapsed and having no parent block in this page, do nothing.
-
enter
/esc
and modes:- Pressing
enter
in navigation mode would enter edit mode for selected block. - Pressing
enter
in edit mode would create a new block below and jump to that block. - Pressing
esc
in edit mode would escape edit mode (get into navigation mode), and select the current block. - Pressing
esc
in navigation mode would select nothing.
- Pressing
This would be handy to organize and jump between blocks using only arrow keys.
(2) Select previous/next block on the same indentation level.
Currently, pressing up ↑
and down ↓
will select the previous/next block whatever the indentation level.
Sometimes, we need to quickly jump to the previous/next block on the same indentation level to review the current branch. It lacks shortcuts to do that.
Here are my suggestions:
- Pressing
option + up ↑
andoption + down ↓
to select the previous/next block on the same indentation level. It won’t go into the children block or parent block. If there is no previous/next block on the same indentation level, just do nothing.
(3) Recursively Collapse/Expand
Currently, logseq only provide Collapse/Expand all
. We need the Collapse/Expand recursively
function like Finder in macOS.
- Pressing
Option + right →
- Expand the current block and all children block recursively.
- Pressing
Option + left ←
- Collapse the current block and all children block recursively.
(4) Zoom in/out in navigation/edit mode
Currently, the shortcuts for zoom in/out are cmd + .
and cmd + ,
. Using cmd + up
and cmd + down
by default might be better.
In Finder.app,
- pressing
cmd + down
is go into the selected folder in current canvas (Zoom-in in logseq). - pressing
cmd + up
is go back to the parent folder in current canvas (Zoom-out in logseq).
This is the same behavior in Finder.app to get into the folder.
(5) Adjust indent
Like many other IDEs, using cmd + [
and cmd + ]
to change the indent instead of tab
and shift + tab
by default .
(6) Go to previous/next page
Using cmd + shift + [
and cmd + shift + ]
to go Backward/Forward instead of cmd + [
and cmd + ]
by default to avoid conflict shortcuts with Adjust Indent.
Conclusion
Combining above shortcuts, you can only use arrow keys with cmd/option/ctrl/shift to jump and navigate between blocks. You can keep your hands on the same area of keyboard to navigate without moving your hands/fingers to other keys.
We can modify the keyboard shortcuts on our own, but some of functionalities are not provided in current version of LogSeq.
By the way, please consider providing a Search Bar to search shortcuts in the list.