137
submitted 1 week ago* (last edited 1 week ago) by underscores@lemmy.zip to c/linux@lemmy.ml

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 ?

top 50 comments
sorted by: hot top controversial new old
[-] Digit@lemmy.wtf 2 points 5 days ago* (last edited 5 days ago)

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).
[-] erebion@news.erebion.eu 1 points 5 days ago

~/git

Everything else is managed by Ansible or synced via Synthing (except ~/Downloads).

[-] Ricaz@lemmy.dbzer0.com 33 points 1 week ago

My homedir is an infernal hellhole of junk accumulated over the past 15 years and I wouldn't have it any other way

[-] TriangleSpecialist@lemmy.world 16 points 1 week ago

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...)

[-] Ricaz@lemmy.dbzer0.com 9 points 1 week ago* (last edited 1 week ago)

Dafuq are you doing in other people's homes?

Sysadmins are all creeps, confirmed

[-] TriangleSpecialist@lemmy.world 6 points 1 week ago* (last edited 1 week ago)

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.

load more comments (3 replies)
[-] CrabAndBroom@lemmy.ml 10 points 1 week ago

Mine used to be like that, but now my home folder is rehabilitated by turning ~/Documents into a hellhole of accumulated junk instead.

[-] FauxLiving@lemmy.world 5 points 1 week ago

I just prepend everything in the home directory with a dot every 6 months or so, no problems so far

load more comments (1 replies)
load more comments (2 replies)
[-] mbirth@lemmy.ml 31 points 1 week ago

My home folders on any OS have a Development folder (which conveniently sits right next to Documents and Downloads) and in that folder, I’ve also got subfolders per programming language that have the respective projects in them.

The other folder I usually have is SyncThing with whatever synced folders are relevant for that machine.

[-] anon_8675309@lemmy.world 17 points 1 week ago

Mine is dev. I avoid capitalizing folder names.

load more comments (3 replies)
[-] Dave@lemmy.nz 30 points 1 week ago

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?

[-] underscores@lemmy.zip 7 points 1 week ago

for me I consider that a web project so it goes into the typescript folder, if it's backend only then python

[-] Dave@lemmy.nz 12 points 1 week ago* (last edited 1 week ago)

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.

[-] GreyCat@lemmy.world 6 points 1 week ago

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.

load more comments (1 replies)
load more comments (2 replies)
load more comments (2 replies)
[-] QuarterSwede@lemmy.world 27 points 1 week ago

~/3D Objects

[-] KaChilde@sh.itjust.works 22 points 1 week ago* (last edited 1 week ago)

~/Homework (porn)

~/aaaaaaa (porn)

~/Stuff (memes, with a porn subfolder)

~/misc (work docs, study docs, forms, some porn)

[-] Holytimes@sh.itjust.works 9 points 1 week ago

What about the ~/Porn folder?!

[-] Sims@lemmy.ml 1 points 3 days ago* (last edited 3 days ago)

I could be wrong, but it seems he just mounted '/porn' directly as '/' ? Efficient, I guess.

..actually, there seem to room for more improvements; I'm not sure there's any need for an 'operating system' on the system - a small fap-app (tm) could likely handle all content on the system ? Work documents could be injected in to the fap-stream (c) when he needs to stop ? That would release many gb for even more fap-ability (c) ?

[-] xor@lemmy.blahaj.zone 11 points 1 week ago

That's for startup ideas

load more comments (1 replies)
[-] Evil_Shrubbery@thelemmy.club 15 points 1 week ago

At least two of these:
~/Stuff
~/Stuffs
~/Stuffz
~/Shits

[-] Cyber@feddit.uk 7 points 1 week ago
[-] Evil_Shrubbery@thelemmy.club 7 points 1 week ago* (last edited 1 week ago)

No, ofc not, I'm not a degenerate without a plan!!
This isn't a game.

[-] homura1650@lemmy.world 12 points 1 week ago* (last edited 1 week ago)
  • /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
[-] skankhunt42@lemmy.ca 12 points 1 week ago

I have /home/username/username/ and I sym link important dirs (like Downloads) to my new home. I strongly dislike all the dot files and dirs cluttering up my home dir.

[-] RiderExMachina@lemmy.ml 9 points 1 week ago

Are you aware of the ‘xdg-user-dirs-update’ command that allows you to edit the ~/.config/user-dirs.dirs config file?

[-] underscores@lemmy.zip 6 points 1 week ago
[-] pemptago@lemmy.ml 10 points 1 week ago

Not the commenter you replied to, but I change my XDG directory names to be lowercase and start with different letters. For example, Desktop, becomes "drop" (as in pick it up and put it somewhere else) and Downloads is a subdirectory dl. A program that would otherwise save to "Downloads" now saves to "~/drop/dl". When I setup my machines I run a script including the line xdg-user-dirs-update --set DESKTOP "drop" to update the XDG directory and I delete "Desketop". So og commenter has the option of updating their userdirs to be nested in their username if they wanted to avoid symlinking. Here's the relevant arch wiki page and xdg freedesktop page.

load more comments (1 replies)
[-] GreyCat@lemmy.world 5 points 1 week ago

It basically allows you to define which paths are used for the Downloads, Documents, Videos, etc.. types of directories.

load more comments (1 replies)
load more comments (1 replies)
[-] SolarPunker@slrpnk.net 11 points 1 week ago
[-] BCsven@lemmy.ca 10 points 1 week ago

Hardware folder (synced via sync thing). All hardware PDFs, notes images etc get subfolders by manufacturer. It is helpful for keeping track of use manuals, firmware or config settings for each piece of hardware.

load more comments (3 replies)
[-] aesopjah@sh.itjust.works 9 points 1 week ago

~/proj
~/note
~/sync
~/docs (/book etc)
~/imgs ~/util ~/test ~/temp

[-] Baguette@lemmy.blahaj.zone 9 points 1 week ago* (last edited 1 week ago)

Archive

Archive archive

Archive_11_2025

I am not good at organizing

[-] bitwolf@sh.itjust.works 8 points 1 week ago* (last edited 1 week ago)

~/dev for code
~/work for things I don't want to do, like taxes

[-] Apparatus@programming.dev 8 points 1 week ago* (last edited 1 week ago)

I do similarly, but I use '~/Development' only because I accidentally fucked up my '/dev' dir once using '~/dev'

load more comments (1 replies)
load more comments (1 replies)
[-] TropicalDingdong@lemmy.world 8 points 1 week ago

I just live out of my downloads folder until its time to back up the important stuff to the server and reinstall/ distrohop.

[-] Strit@lemmy.linuxuserspace.show 7 points 1 week ago* (last edited 1 week ago)

I usually create ~/git/{github,gitlab,codeberg,AUR,etc} where I clone the git stuff I need.

The rest is usually handled by my nextcloud that creates the ~/Nextcloud folder.

[-] Infrapink@thebrainbin.org 7 points 1 week ago

I rsync my home folder across installs. These are my standard extra folders.

~/Books, with subfolders by topic.

~/Comics, with subfolders by publisher, then by title, possibly with an intermediate folder for author or franchise.

~/Programming, with subfolders by language, then project.

[-] moopet@sh.itjust.works 7 points 1 week ago* (last edited 1 week ago)

~/tmp

~/temp

~/temper

~/tempest

~/misc

/mnt/other (symlinked)

[-] pineapple@lemmy.ml 7 points 1 week ago

~/ linux iso's

[-] morto@piefed.social 7 points 1 week ago

I always make a bin folder in my home for putting my custom scripts and downloaded binaries. At least on fedora, ~/bin is already in the path, so I don't have to make any additional configuration to make stuff in there become commands for my cli

[-] monovergent@lemmy.ml 7 points 1 week ago* (last edited 1 week ago)

~/.drafts, in which my text editor taskbar shortcut script creates files YYMMDD_text_N. I passionately believe in eliminating the chore of manually naming my spur-of-the-moment notes and text files.

~/progs or ~/bin where loose programs not provided by my package manager reside.

If there's a secondary drive, /media/disk1 as the mount point in fstab.

[-] wwwgem@lemmy.ml 6 points 1 week ago

Your organization will vary with your usage. If you're looking for something suitable for work, I would highly recommend the PARA approach. https://fortelabs.com/blog/para/

I've tweaked it to my needs. Combined with fzf, it makes my workflow so smooth and efficient. https://www-gem.codeberg.page/sys_stay_organized/

[-] thejml@sh.itjust.works 6 points 1 week ago* (last edited 1 week ago)

I want to follow this, and I sorta do... but ADHD makes the P,A and other A basically the same category. And the R is just "stuff I put down to look at but haven't yet".

load more comments (1 replies)
[-] IsoKiero@sopuli.xyz 6 points 1 week ago

~/autoclean and a cron job to delete everything older than 7+ days from there. I can just download whatever, throw it in a special folder and it's gone after few days. Keeps my ~/Downloads a bit more clean, easy to store temp txt files to keep track of what I currently have on hand and so on.

load more comments (1 replies)
[-] Pika@sh.itjust.works 6 points 1 week ago

I always make a ~/.local/{bin,opt,share} if the distro lacks it. and a ~/bot that I use for my development stuff

load more comments (4 replies)
[-] turbowafflz@lemmy.world 5 points 1 week ago

I usually make src, junk, and applications for appimages and unpackaged binaries

[-] VinesNFluff@pawb.social 5 points 1 week ago* (last edited 1 week ago)

~/Brojetos (anything relating to making stuff, writing, drawing, video creation, programming, etc., professional or personal)

~/temp (a non-hidden temp folder with a script that wipes it when the PC shuts down or reboots, used for downloads and such to prevent the "downloads folder is an abomination" problem that plagues any computer after a while of usage)

~/AppsGames (appimages, applications compiled from source and not installed to system, personal use scripts, wineprefixes, non-steam games)

aaaand ~/OtherAminals (for stuff I want to keep but have no idea where else to place)

[-] olafurp@lemmy.world 5 points 1 week ago

I just at ~/projects it contains a boat load of stuff including my Neovim and bash stuff.

Guys, use GNU Stow + git for your configs shit's good.

load more comments (1 replies)
[-] justlemmyin@lemmy.world 5 points 1 week ago
load more comments
view more: next ›
this post was submitted on 09 Dec 2025
137 points (97.9% liked)

Linux

57274 readers
692 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS