80fad75a59 | ||
---|---|---|
.gitignore | ||
README.md | ||
go.mod | ||
go.sum | ||
main.go |
README.md
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