mind mapping has been useful to me for years now but i've been displeased with all the virtual tooling for it. i don't entirely mind doing them on pen and paper but routinely reach for them when at the computer and it feels like a phantom limb to not have software for it.
i don't like how tablet/mouse oriented what i've found is...or how expensive. i also prefer text mode stuff in general bc i can focus on it better.
but i have mostly been unable to imagine a good interface design for text mode mind mapping.
what about a modal approach with a tiny command line?
the verbs in mind mapping are:
- new node
 - find node
 - new edge
 - edit node
 - pan around
 
from normal mode:
- i to create top level note in the current field
 - / to search for a node in current field
- select from fzf style list
 
 - ? to search for nodes in all fields
 - hjkl to pan around
 - HJKL to big pan around
 - c to connect to existing node (fzf search again)
 - 
- to zoom in, bigger boxes + less truncation
 
 - 
- to zoom out. zooming out is smaller boxes + truncated text
 
 - N to create a new field
 - pgdn to cycle fields L->R
 - pgup to cycle fields R->L
 
from focused node mode:
- escape to go to normal mode
 - i to create new node edged from this node
 - e to edit node (subwindow with $EDITOR embedded)
 - m to maximize node contents
 - hjkl to navigate the edges
 - enter to activate highlighted edge and go to connected node
 
the big open question to me is placement. i want to auto suggest a place for new nodes (top level or not) but then leter user move around. i think it's best to just allow overlapping? i could program finding a place but it seems like too much effort.
as for storage, i think anything short of sqlite would lead to a lot more complexity and work.
future directions:
- extracting hierchical lists from a root node
 - convert to set of markdown file
 - auto sorting of nodes to fill space