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 ?
Uh-oh… I’m going to answer this. n_n
99% just dirs in ~/. ( Does making new dirs in /bedrock/strata count when manually adding strata? That’ll be about all there is in the other 1%. )
- ~/bin
- ~/gittings
- ~/gittings/Digit (where I keep my local copies of my own git repos)
- ~/images
- ~/images/scrots
- ~/images/ all the different things like dsktpbckgrnds, charts, memes, photos, gifs, etc & EDITS where I save most GIMP file artwork
- ~/sounds
- ~/.fonts (if the system does not create this already… so I can put my big tiny font collection “dbtfc” of otb and ttf fonts I made, in there, and have them “just work”).
Oh, and this one’s a little fun:
- ~/testdir in which i make a dir, a file, a media file, an executable, a fifo, a symlink, and a broken symlink, so I can ls that dir to see how everything looks in new themes.
And locations for my sshfs mounts and external drives (faster to type than putting them each in ~/mount or ~/media or ~/mnt).
- ~/bb
- ~/o
- ~/m or ~/t as symlinks to ~/mozart and ~/tyson depending on if on tyson or mozart. (I name my thinkpads after famous people born on the same day it arrives in the post).
And then on bb external hd, loads of dirs, some notable ones
- ./bkps
- ./software
- ./software/distros (where I store ISOs and system tarballs)
- ./software/configs/ ; crypto/ ; doc/ ; games/ ; langs/ ; other/ ; virtuals/
- ./cinema/
- ./cinema/library (hiding the library in cinema, so I see it more often ;D)
- ./cinema/_docu (for documentaries, lectures, interviews, etc)
And on the webserver
- ~/web
- ~/web/stuff
- ~/stuff (symlink to ^, that I use like my own personal pastebin) (… ~/o/stuff, from local machine).
~/git
Everything else is managed by Ansible or synced via Synthing (except ~/Downloads).
~/tmp
~/temp
~/temper
~/tempest
~/misc
/mnt/other (symlinked)
~/bin/ which I add to my $PATH
$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.
~/nixos/ for my NixOS config ~/repos/ for git repos ~/audio/ for my sound library and recordings
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)
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.
~/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
/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
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.






