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).
~/bin/ which I add to my $PATH
~/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
So where do you store your porn?
- /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
~/tmp
~/temp
~/temper
~/tempest
~/misc
/mnt/other (symlinked)
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.
My homedir is an infernal hellhole of junk accumulated over the past 15 years and I wouldn’t have it any other way
I’d love to keep it clean but too many devs think $HOME is up for grabs, as long as they prepend their directory names with a dot (they think I’ll never notice, but I notice, and I keep a list…)
Dafuq are you doing in other people’s homes?
Sysadmins are all creeps, confirmed
Breaking pots. Don’t mind me.
EDIT: holdup, who are you calling a sysadmin? I administer my system, sure, but that’s about as far as I’m willing to go, thank you.
Breaking pots.
TriangleSpecialist
Are those the Triforce triangles perhaps?
It might be?..
Oops, I meant to say: “hayaaa”
🛡️🗡️
Mine used to be like that, but now my home folder is rehabilitated by turning ~/Documents into a hellhole of accumulated junk instead.
Mine used to be the same but the last OS reinstall I reset everything, moved my files onto an external drive, and only copied them over on a needs basis. I’d been keeping the same home dir since I was like 4 or however old I was when I started using a computer. So needless to say there was a lot there that made me cringe to see every time I tried to navigate my files.
I just prepend everything in the home directory with a dot every 6 months or so, no problems so far
You can also just make a file called .hidden and paste the names in there and it’ll hide them, that way it doesn’t mess up any paths/symlinks etc. Or at least in KDE/Dolphin you can do that, I dunno about other setups.
There are 15 year olds using Lemmy??
/s (my documents folder is the same, but older … much a lot too many very older :|)
At least two of these:
~/Stuff
~/Stuffs
~/Stuffz
~/Shits~/Stuff(1) as well?
No, ofc not, I’m not a degenerate without a plan!!
This isn’t a game.
$HOME/temp, $HOME/git, ln -s $HOME/git/scripts $HOME/scripts
I’m a
~/tmpman myself.
Archive
Archive archive
Archive_11_2025
I am not good at organizing
~/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
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.
Multiple people in this topic say they organise in directories for different programming languages, something I have never considered and I find it to be an odd way of organising for some reason I can’t explain.
Where do you put a project with a Javascript frontend and a Python backend?
In a folder called javpy, of course!
for me I consider that a web project so it goes into the typescript folder, if it’s backend only then python
Why group it into language instead of say a ‘web’ directory or ‘android’/‘mobile’?
I’m just curious, I am more of a ‘throw everything in one directory and home I remember what I’m looking for’ sort of organiser.
Honestly it’s a pretty good way of compartmentalizing projects in your mind.
You usually remember pretty well what language your wrote a project in.
And if you want to find a project again you just have to look in that language’s directory.Second advantage is that if there’s a language you only fucked around a little for fun, it doesn’t clutter the directories of your most used languages.
Yeah that’s a pretty good argument for it.
for me the project exists because I thought “id like to play with <language> today” but not necessarily “I want to make a <platform> project”
I agree, just have it by project. Otherwise I might have to look in different folders to find something. And what does it add, that something is grouped by language?
Since projects of the same language often use the same tooling this makes it easier to clean up the whole directory by running something like this:
for d in ./*/ ; do (cd "$d" && somecommand); donesomecommandcould becargo cleanif you’re in the Rust directory for example.
Public - for everything im seeding and sharing
Apps - for all app images
Games - for all lutris spam and random failed attempts at installing mods.






