How do you organise $HOME?
Home directories often turn into spooky graveyards of random files, temporary directories and images of lolcats. It takes courage to delete the mess, because there may be one or two important files hiding amongst the pr0n. As a result, many scientists have grown afraid to run “ls ~” in public, fearing that the output of said command will expose them as file-hoarding maniacs. (By the way, the fear of running “ls ~” should be called domusindexophobia in Latin.)
For years I have employed the popular strategy of sticking random files on the desktop, and whenever it becomes a mess, create a folder called “oldstuff” and move everything into it. The strength of this strategy is that it can be repeated indefinitely (oldstuff2, oldstuff3, oldstuff4…), the weakness is that you remain a file-hoarding, domusindexophobic maniac.
In the past few months I decided to adopted a more sensible strategy. From henceforth, my home directory shall never contain more than 7 (non-hidden) directories:
- ~/tmp: all downloads and unimportant files go here; may be emptied without notice.
- ~/bin: locally installed software, i.e. “./configure –prefix=~/bin/foo” and my Python distro.
- ~/dev: source code trees for programming projects (sub-directories are GitHub repositories!)
- ~/proj: various non-programming projects.
- ~/doc: subdirectories for receipts, boarding passes, papers, books, etc.
- ~/lts: things to archive forever (“Long Term Storage”); e.g. photos and science data (with README files!)
- ~/msc: a resort for things which don’t fit elsewhere.
There is just one exception to this rule: the additional directories which are forced upon me by the Apple Homedir Police in OSX are allowed to be present (I hardly have a choice), but they are not allowed to contain anything useful. There is no exception to the rule in any of the Linux boxes I use.
I employ different backup strategies for each folder. For example, parts of ~/lts sit on an external network drive, while much of ~/doc sits on DropBox and most of ~/dev sits on GitHub.
Is this a Sensible Approach™? What does your nest look like?