Local graph as mind map with keyboard navigation like through file structure

Use case or problem

I’d like my notes to resemble a tree structure and navigate through them with keyboard, for example like:

  • a) folder navigation looks like on macOS:
    • up/down goes between “sibling” folders
    • cmd + down goes into the highlighted folder
    • cmd + up goes to the “parent” folder
    • right arrow shows “child” folders
  • b) tree navigation looks like in JSON files while browsing in Firefox
    • there you basically only use arrows
    • example JSON file if you’re curious to check it out - /r/AskReddit.json (watch out - you really must use Firefox for this, other browsers won’t do)

Proposed solution

A tree structure for notes has one big drawback - it would be good to have some notes in multiple folders, not just in one. Copy pasting such a note to all folders and then maintaining the edits in all of them would be a terrifying task. My example of such a note is a note about nginx, which I’d like to have in webdev, sysadmin and company_website folders.

That’s why local graph functionality of obsidian is so amazing and so far the best solution I’ve found - every note can have multiple parents and you can walk the tree quite easily.

However, local graph has several big drawbacks for me:

  • you must use mouse/trackpad to navigate it
  • hard to distinguish which notes are parents and which are children - the edges are the same color and the best you can do is to toggle arrows
  • same point again, but because parents and children are placed randomly - they can be upwards, downwards, to the left or to the right of the current note - I’d like parents to always be to the left, and children always to the right

How I’d see it:

  • visually it could look like mind map plugin for Obsidian
  • navigate with arrows or H, J, K, L (vim bindings)
  • up/down moves up/down between siblings
  • show the children of the note only after pressing right arrow (like in JSON)
  • hide the children after left arrow (like in JSON)
  • hit space to open/close note (when traversing the tree, the notes do not change on the screen all the time)
  • when opening the note with space, the note doesn’t get focused → still the tree is focused so you are free to close the note with space again or move elsewhere while keeping the note on
  • there should be separate shortcuts to focus the note and to focus the tree
  • default view, which would perhaps be the only one, would have (logically speaking) 3 columns:
    • column 1 → parents
    • column 2 → siblings
    • column 3 (normally closed) → children
  • since the tree structure allows for only one parent, only one would be attached with an edge to the current note - the one that we went through to get to the current note
  • the other parents would be shown in the “column 1”, but they would not be attached visually to the current note - they would be just floating on their own and you could jump to a particular parent with cmd+1, cmd+2, cmd+3 type of shortcuts or something similar
  • when going up and down between siblings, additional parents would update on the screen in real time (as opposed to children, which would be normally hidden)
  • the siblings, parents and children would be sorted from top to bottom in the order they are listed in a note and perhaps further improvement would allow to sort by other parameters like creation date

I’ve checked google and nothing like I described seems to exist anywhere, not just for obsidian. It seems to be a bigger kind of project, although most likely not bigger than some of the unbelievable Obsidian plugins like the kanban plugin or local graph.

Current workaround

So far local graph seems the best.

1 Like

Moved to plugin ideas.

1 Like