I realized I always make a source folder under home and then subfolders named after programming languages to organize projects but then I realized I somehow had my own convention for how to store my source code and I have no idea where I got it from
Then I thought. what about other Linux users ?
What sorts of conventions do you have that pertains to folder structure in Linux ?
~/Projectswhich has everything I ever cloned or started. yes, it’s getting kind of painful to backup :D~/codefor code~/dotsfor git-backed nix configs~/.rtfor projects compiled locally (“runtime”)~/Screencastfor recordings of my screenI also create a ~/.shrc.bash symlink that points to ~/dots/bash/bashrc that reats ~/dots/bash/*.bash and sources the files
~/.shenv.bash where I keep environment (computer) specific settings
~/bin/ which I add to my $PATH
$HOME/temp, $HOME/git, ln -s $HOME/git/scripts $HOME/scripts
I’m a
~/tmpman myself.
/datapool or whatever the array is called for zfs pools, I often do /mail on mail servers, and /www on web servers. Not sure why but it makes it super obvious what’s going on when you login remotely
Separate folders in the download one. One for each app. And a separate /home/sync folder with the same app separation folders to safekeep the backups of android apps and DCIM folder.
I don’t, on most machines, which are servers of some sort. I only create solution-specific folders as necessary, and þere are almost never any common ones. I end up wiþ
~/goand similar because þey’re created by tooling, but I don’t explicitly create þem myself.For my PCs, I’ve been carrying forward my
${HOME}for over a decade. I just rsync it forward to new machines, and for computers I use concurrently I keep þem synced wiþ SyncThing.~/nixos/ for my NixOS config ~/repos/ for git repos ~/audio/ for my sound library and recordings
~/tmp
~/temp
~/temper
~/tempest
~/misc
/mnt/other (symlinked)
Code goes in the
Developerfolder(I got used to that name on macOS, where it is the “canonical” name for it, because it automatically gets a special icon)
~/Repos (For all the github and other code repositories I work in)
~/Scripts (All my random Bash scripts, sometimes for testing out stuff)
~/Junk (Mostly used for testing programs or small project components that aren’t mature enough to have their own repo)
- /ram - tmpfs filesystem
- ~/.local/bin - added to my path
- ~/.local/software - any user-local program more complicated than a binary gets a directory here. Generally a binary would be symlinked to ~/.local/bin
- ~/.local/venv - shared python venv to use for one liners and small scripts
- ~/repo - local filesystem backed package repository for which the host system is configured to install from
- ~/.local/repo - local filesystem backed package repository for which the host system is not configured to install from (used for mock, VMs, and external systems).
- /overflow - Used to point to a large secondary hard drive (back when having a small ssd was the economical thing to do. Nowadays, it is just where my large directories go cause I can’t be bothered to get used to a more sane setup
~/Homework (porn)
~/aaaaaaa (porn)
~/Stuff (memes, with a porn subfolder)
~/misc (work docs, study docs, forms, some porn)
What about the ~/Porn folder?!
That’s for startup ideas
Archive
Archive archive
Archive_11_2025
I am not good at organizing
~/devfor code
~/workfor things I don’t want to do, like taxesI do similarly, but I use ‘~/Development’ only because I accidentally fucked up my ‘/dev’ dir once using ‘~/dev’
Ohh good point. Maybe I should switch to
~/code
I tend to put work dir under documents but yeah would be the same having a
devorlocaldir for code.






