| This Fork | Incorporated | Original |
|---|---|---|
| metaory/void | onbjerg/void | void-rs/void |
| JSON storage | Arrow pathfinding | protobuf base |
find original void readme here.
This fork transitions void to use JSON storage instead of binary protobuf
- Human Readable: Data can be inspected and edited with any text editor
- Debuggable: Easy to examine and fix corrupted files
- Portable: Standard format supported by all languages and tools
- Versionable: Clean diffs in version control
- Minimal: Only stores essential data, reducing complexity
- Uses
JSONformat exclusively - Removes
protobufdependency - Provides migration tool for old databases
- Maintains data compatibility
If you're upgrading from the original void <1.2.0,
You'll need to migrate your binary database:
scripts/migrate.sh path/to/old/database path/to/new.jsonBy default, void looks for ~/.void.json unless a path is specified:
# Use default ~/.void.json
void
# Or specify a path
void path/to/notes.jsonTip
The JSON format excludes auto-generated data
- Node coordinates (auto-arranged)
- Colors (randomly generated)
- Selection state
- Ephemeral UI state
Clone and build from source:
git clone https://github.com/metaory/void
cd void
cargo build --releaseThe binary will be available at target/release/void
If you don't have cargo, install it via rustup.
| Variable | Description |
|---|---|
KEYFILE |
Path to key remap file |
EDITOR |
Text editor (defaults to vim) |
LOGFILE |
Path for debug logging |
LOCATION_QUERY |
Enable location tracking for nodes |
| Feature | Control | Feature | Control |
|---|---|---|---|
| new | C-n | new child | Tab |
| freeform | new sibling | Enter | |
| delete | Del | move subtree | LeftDrag |
| undo | C-z | auto arrange | C-p |
| mark complete | C-a | drill-down | C-w |
| pop | C-q | hide children | C-t |
| open editor | C-k | prefix-jump | a-z |
| prefix-jump | C-f | hide completed | C-h |
| select arrow | C-r | erase arrow | C-r C-r |
| show debug log | C-l | reparent | LeftDrag |
| scroll up | PgUp | scroll down | PgDn |
| select up | Up | select down | Down |
| select left | Left | select right | Right |
| de-select | Esc | exit | Esc Esc |
| exit | C-c | save | C-x |
| next weighted | C-v | cut / paste | C-y |
| move up | C-g | move down | C-d |
| search below | C-u | select parent | A-P |
| select next | A-n | select previous | A-p |
GNU General Public License v3.0 inherited from upstream
ORIGINAL VOID DOCUMENTATION
- Frequently fall out of creative flow
- Day-to-day work lacks coherence
- Failure to integrate learnings into a cohesive perspective
- Execution of tasks lacks focus and motivation
- Unclear how my efforts are impacting goals
- Things we measure tend to improve
- We should regularly reevaluate priorities
- We should minimize decisions to prevent fatigue
- Individual sensemaking is well served by reflection, journaling, outlining, mind-mapping, etc...
- Don't impose specific workflows, but support many possibilities
- Everything is a tree
- You can collapse subtrees
- You can drill-down the screen focus arbitrarily
- Trees of tasks can be marked with
#task, all children of marked nodes are implicitly subtasks - Tasks can be prioritized with
#prio=<n>, all children implicitly inherit the lowest ancestor's priority - A task can be chosen automatically, with priorities weighting a random selection
- You can create your own sparklines by using
#plot=doneor#plot=new, in combination with#n=10for sparkline size,#since=7d/#until=1dfor specifying time window - Overall completed subtasks are plotted on a sparkline at the top of the screen for the past week
- You can draw arrows between nodes for mind-mapping functionality
- Can shell out and execute the content of a node with C-k. if the node starts with txt: this will be opened in vim or an editor specified in the
EDITORenv var