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 ?
I make an ~/all/ directory as a catchall for things that don’t fit elsewhere, since ~ is used by so many automatic softwares and config files, I like having a place that only I’ll write to.
I also make ~/bin for general use and ~/all/GitHub/ for software I install from GitHub.
~/Scripts for any bash or python scripts
~/Gits for any repos I clone
~/Projects for any projects im working on (not organized by programming language, but I do have some dirs called zig, go, etc., for when im learning a new language and want to make some projects for learning purposes)Most other files go into ~/Documents if they don’t have a home already, or don’t fit into the above directories
Public - for everything im seeding and sharing
Apps - for all app images
Games - for all lutris spam and random failed attempts at installing mods.
~/bin/ which I add to my $PATH
~/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
$HOME/temp, $HOME/git, ln -s $HOME/git/scripts $HOME/scripts
I’m a
~/tmpman myself.
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.
/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
~/tmp
~/temp
~/temper
~/tempest
~/misc
/mnt/other (symlinked)
~/nixos/ for my NixOS config ~/repos/ for git repos ~/audio/ for my sound library and recordings
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.~/Homework (porn)
~/aaaaaaa (porn)
~/Stuff (memes, with a porn subfolder)
~/misc (work docs, study docs, forms, some porn)
So where do you store your porn?
What about the ~/Porn folder?!
That’s for startup ideas
- /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
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)





