I found the replies from three years ago useful:
https://news.ycombinator.com/item?id=14604454I use my email inbox as a task-queue, and try to move important info into personal notes (vimwiki), so I consider email alongside files and folders. I've learned to optimize my notes for information retrieval, rather than easy entry -- spelling out new acronyms, for example -- with the goal of making it searchable later. I think there was a HN post about personal note taking last month, re: productivity.
I'm heavily command-line focused and my preference for long-term storage is Markdown.
I use PDFs in only a few ways:
- References, bulletins, bills, etc. through `less`. `:r!less foo.pdf` will load it into vim, and I tend to check those into vimwiki. Editing by hand allows individualized tags, and anonymization, which is important in my sector.
- Articles via Mandeley (but this is overkill unless you want to cross-reference between new articles)
I distribute my home directory with rsync and backup regularly with restic. Both have sophisticated exclude rules, if you need 'em. restic observes the tar-compatible CACHEDIR.TAG droppings, which is easier to use than rsync's proprietary rule filters. For example, a properly-formed CACHEDIR.TAG in ~/.local/cache will direct tar and restic to skip that big directory.
To edit a remote file, slice out something important for later into notes, `vim scp://remote/path` is a neat trick. Only a few keystrokes to put it into vimwiki, or vice-versa (edit the remote file by inserting part of a locally-stored note). vimwiki is the only plugin required.
Many of my systems are shared between multiple human users. On home systems, some users are only interested in using file shares (not terminal access). I create groups Videos, Music, Photos, etc. Make each human user's respective directories stickied to those groups, and you can read (and, importantly, backup) without `sudo` intervening (see `sudo -n` if you find yourself toiling over this). On home and work systems, I use `stow` perhaps more than I should: I build with PREFIX=$HOME/.local/$toolname, then stow it into place with `cd ~/.local ; stow -S $toolname`. This allows custom builds of, say, `cmake` or `git` without system-wide changes. Oh, for Python 2 specifically, I install my own pip out of reach of anyone else.
`stow` is a symlink manager intended to lubricate different UNIX packages that are individually lodged under /usr/local/stow. It's written in Perl, so some systems (early stages of linux-from-scratch, for example) have xstow, which does not have Perl dependency. I see a lot of comments here about ~/Desktop and ~/Photos management, so here's one idea:
Create ~/Archive/2020-06/{Desktop,Photos} and, inside ~/Archive run `stow -S 2020-06`. This creates symlinks ~/Desktop -> ~/Archive/2020-06/Desktop and similar. When you feel like dumping weight, script up something like `mkdir 2020-07/{Desktop,Photos} ; stow -D 2020-06 ; stow -S 2020-07`. The timestamped organization is preserved for you without having to interact with timestamps.
PS> The screenshotting facility is underdeveloped for command-line workers. I'd rather be able to grab the local tmux scrollback buffer, throw it into the editor, possibly saving it to notes, even if just temporarily. An image would be unacceptable, so I overrode the screenshot key to grab tmux scrollback if in focus. This permits a specific search when I can't remember the branch where an obscure error occurred years ago.
PPS> You can script your own capabilities for `less` to open nonflat files. It automatically throws PDFs through pdftotext, but you may desire something like:
- Pretty-print and colorize JSON
- Read OpenOffice docs
- Syntax highlighting
- Parse SSL certificates