- Source code repositories (personal and work)
- Extra git workspaces
- Virtual machine images
- Documentation and manuals
- Books
I've been iterating on this for many years and have yet to find something "perfect". For source code I've tried the Golang approach of organizing by git repo, using a flat hierarchy under a Source directory, and organizing by work/personal. I've built tools using fzf to quickly switch between projects. I've also made auxiliary directories in home for things like ISOs and qcows. What are other people doing?
- ~/Programming for my projects I worked recently on
- ~/Programming/obsolete for my projects I didn't work on for a longer time
- ~/Projects for projects I currently work on
- ~/tmp for projects where I just write e.g. a small patch for a MR and then push and forget about it
- ~/Downloads/pdfs for all pdfs I downloaded
- My VM images are wherever GNOME Boxes decided to save them
- Documentation and manuals are not in my home directory, but hosted on a Raspberry PI
- ~/Uni for all things for the "Hochschule".
~/Agenda/$project/$project.md for my notes, one file for each project, each project has it's own encryption key
~/Containers for my Wine prefixes, containers
~/Downloads/{Music, Games, Books} for everything else
I version control my configuration files, projects and notes.
On my work laptop:
I keep all git repositories in one folder. One repo per project.
If a random file that's not in git pertains to a specific client (PDF, spreadsheet, etc), it goes in a client/project specific folder on my desktop.