Missing Navigation shortcuts

For UX, I think using arrow keys to navigate nodes (files/folders) in Finder.app (macOS) is good design.

  1. To navigate between blocks/nodes, please refer to Finder.app
  2. 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 ↑ or down ↓ in navigation mode will choose previous and next block.
  • Pressing left ← and right → 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.

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 ↑ and option + 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.

When using ENTER to enter edit mode, how would you place your cursor at the begining or end of the block you are edititing. That is very convenient currently in my view.

I would prefer not using ENTER to enter edit mode, but use F2 or something. Feels very unnatural to me. I am on Mac for more the 6 years now (not by choose but because my place of work uses mac’s :frowning: ) and I still get a very unnatural feeling to use ENTER to rename a file for instance. That is IMHO just bad design.

About 2.
If I understand you correctly you want to change hotkeys when you go up the tree. Within the same indentation use UP and when you want to go up further you need another hotkey? Very strange IMO.

About 3.
We do have recursively fold/unfold. Try CMD-UP and CMD-DOWN when you ESC to naviation mode and have nothing selected. I use that a lot on larger notes. Works kind of like an index for me. fold/unfolds all the way up and down over all blocks. If you want it to do that for 1 block just select that block. As I read your proposal that functionality is going to disappear?

About 5.
I don’t use IDE’s but a lot of text editors and all use TAB and SHFT-TAB for indentation. So what do we win here?

About 6.
This is typically Mac/Apple thinking. The functions you use a lot on a daily base are getting the weirdest hotkeys. Do I really need to hit 3 key’s just to go back a page !!! I use that all the time. All browsers work with CMD-LEFT and CMD-right to go to next or previous pages.

I agree that some shortcuts are less familiair then you might be customed to but I do have quite some issue’s with the setup you describe. I do not know what would be the best. But as you have the option to change them to your liking I think that should be your way forward.

Regards,
Jeroen

@JeRoen Thanks for reply.

About 1.
You can press Enter to enter Edit Mode, and then using CMD+LEFT to go to the beginning of the block. Finder, Xcode, VSCode and etc. use ENTER to change the name of the selected file.

About 2.
Suggest providing OPTION+UP or OPTION+DOWN to jump to the next block within the same indentation. It’s useful to make a quick review without reading details (children blocks).

About 3.
After folding recursively, how do you expand ONLY first layer and ALL layers of children blocks, respectively? CMD-DOWN only can choose one of them to do (currently only expand the first layer, and I did not find a shortcut being able to expand all children blocks recursively at one time).

About 5.
As a 15-years mac user, I have experience on Xcode, Notes (macOS built-in app), Reminder (macOS built-in app), Pages (macOS built-in app), VSCode, TextMate, Sublime, Typora, MacDown and etc., most of them use CMD+[ and CMD+] to adjust the indentation of lines of code/block. They are very common shortcuts in macOS.

Keeping the same shortcuts is important for productivity and experience. I understand that there are many kinds of users with different preferences. Maybe we can provide a picker menu to let user choose the default setup.