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 - d to delete node - 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