Skip to content

scheme-script/scsh-xattr-mindmap

Repository files navigation

Visualising File System with simple tools.

Drawing mindmaps from you File System with scsh and xattrs.

Concept

I like the idea of visualising concepts, while computers are notoriously non-visual by default. For my own purposes, I wanted to find a tool to visualise at least the data on my own hard drive.

Mind-mapping is one of the most famous methods of doing that, along with the tag cloud. I tried various tools for mind mapping, including xmind, and others, but found them to be too heavy.

Usage

filesystem-mindmap-scheme.chibi.scm root-dir 1> dirmap.dot
circo -Tjpg dirmap.dot > dirmap-dirco.jpg
feh dirmap.jpg

feh is the viewer I use, because it works well with gigantic images. The default size is 4A0, which is 90 by 64 inches — 5760 squared inches. It is unlikely that you can display more than that with file names.

File name colours are taken from 8-color dircolors. man dircolors 256-color dircolors not implemented (patches welcome).

Below is the demo: a directory of a Slarm64 repository ~2020. Not every feature is shown, but you get the idea. The full png is 44Mb (the link is below the image). That is 1x2.5 meters. The original plan was to print a poster and put it on the wall.

./2021-04-13_Slarm64-repo-tree.smaller.png

Download

Dependencies

  1. Chibi-scheme
  2. graphviz (built with -O3)
  3. gnu coreutils (for dircolors)
  4. attr
  5. ~snow-chibi install ‘(independentresearch xattr)’

Wishlist.

  1. More heuristics (pull requests welcome).
  2. Formatting in xattrs.
  3. uuid-associations in xattrs
  4. Recursing into projects/maildirs in a customisable way.
  5. Recursing into files semantically.
  6. Tags and such.

Prior art

  1. xmind

The older scsh version

Do not use this version. It is for reference only.

Building:

All these tools are not maintained for many years, so be very wary.

Also, their installation machinery is broken.

I recommend the following work-around:

Build and package scheme48 and scsh as usual, with --prefix=/usr/local. This usually involves installing into DESTDIR=/tmp/package-name or something. This way your package manager will know where the files are, and you can do make install right from the source directories, without littering, because badly installed files only replace those tracked by the package manager.

I had to run make three times, because the build system is broken.

Then patch scheme48 to use 4G of words adjust the line in c/init.c: c/init.c:19:#define DEFAULT_HEAP_SIZE 4000000000 // 4000000L make && make & make && sudo make install

Due to hardlinks, we need to keep all the file system structure in memory, and that is a lot of memory. (Or maybe I am just a bad programmer.)

Maybe you also need to replace ‘-h 0’ in the scsh Makefile.in with ‘-h 4000000000’? IDK.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages