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 ?
My home folders on any OS have a
Developmentfolder (which conveniently sits right next toDocumentsandDownloads) 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
SyncThingwith whatever synced folders are relevant for that machine.Mine is dev. I avoid capitalizing folder names.
Yep, I also have a directory for my programming projects on each of my machines, but mine is
Programming. On my main desktop, I also have anISOsfolder to hold my OS ISOs for VMs and old CD-ROM game ISOs.Having a development folder is such a good idea that I feel silly for not thinking of it sooner. Thanks for the idea.
Conventions I have are:
- Downloads folder is ephemeral, don’t store/keep things in there I might want
- ~/scripts - personal scripts and one offs
- ~/Documents/projects/[subdir] - any tech project I may be working on, gets homed here
- /tmp - always mount it
noexec
I also start off allocating ~ 50GB to
/(root) volumegroup. Wine and proton have been taking up nearly the full space though, may need to expand it on my desktop soon.~/3D Objects
I always make a ~/.local/{bin,opt,share} if the distro lacks it. and a ~/bot that I use for my development stuff
Why
bot?The majority of my development work is on chat bots or sites so I’ve always just used bot as the name
Ahh, a
~/.local/optfolder makes so much sense. I’m currently just using a~/.optfolder, same purpose.yea it makes it so much easier since there’s only one user in the system anyway so makes no sense for everything to be installed system level
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
I usually create ~/git/github where I clone the git stuff I need.
The rest is usually handled by my nextcloud that creates the ~/Nextcloud folder.
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.Are you aware of the ‘xdg-user-dirs-update’ command that allows you to edit the ~/.config/user-dirs.dirs config file?
Can you expand on this ?
Reading back, my comment sounds snarky, but I was genuinely trying to be helpful.
Like what pemptago was describing, instead of symlinking your directories to /home/username/username, you could simply update that file and achieve the same effect, but in a more “official” way that may prove more robust.
It basically allows you to define which paths are used for the Downloads, Documents, Videos, etc… types of directories.
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.I don’t use Arch, but I am eternally grateful for their excellent documentation.
I am also grateful to you for your comment, because this is a good idea
I do a similar thing for code stuffs, generally always make a
~/Gitand~/Godotso I always have a spot for things.I also delete most of the auto-created ones if I’m using a DE that does that, because I have my own organization going on with various external/network drives. Only one I have always kept is
~/Downloads.Okay what is this
<sub>convention everyone is using and why is it sometimes</sub>?I’m not sure exactly what you’re asking about. Do you mean the directory names?
In unix,
~expands to the user’s home directory path and/just separates each level in the path.Just so you can see what I saw:

Very weird. For some reason Boost displays those like the strings I wrote. Looking at this in the web client now, I see
~. Which btw I’m familiar with :) Thanks for the response!Ohhh, very odd. I’ve been noticing a lot of inconsistencies between Lemmy and PieFed like this, and now an app is something else entirely. Seems the fediverse is not unified on markdown support!
Apologies if I came off as condescending, not my intention.
~/.drafts, in which my text editor taskbar shortcut script creates filesYYMMDD_text_N. I passionately believe in eliminating the chore of manually naming my spur-of-the-moment notes and text files.~/progsor~/binwhere loose programs not provided by my package manager reside.If there’s a secondary drive,
/media/disk1as the mount point infstab.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/
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”.
Drawing the line between each category indeed takes some time. Our brain is not use to this approach anymore. Perseverance is key, but it’s kind of a commitment.
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.
Shouldn’t that be a subdirectory under the documents folder ?
I have a
~/Syncfolder with a symlink to all my Syncthing shares, which I have quite a lot of. Helps me find them quickly and reminds me that everything in there us pulled or pushed somewhere else.
I
rsyncmy 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.I usually make src, junk, and applications for appimages and unpackaged binaries
~/Projects
I just live out of my downloads folder until its time to back up the important stuff to the server and reinstall/ distrohop.













