What folders do you make in addition to the default ones ?
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 ?
Ricaz @lemmy.dbzer0.com - 3day
My homedir is an infernal hellhole of junk accumulated over the past 15 years and I wouldn't have it any other way
33
TriangleSpecialist @lemmy.world - 3day
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...)
17
Ricaz @lemmy.dbzer0.com - 3day
Dafuq are you doing in other people's homes?
Sysadmins are all creeps, confirmed
9
TriangleSpecialist @lemmy.world - 3day
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.
6
Victor - 2day
Breaking pots.
TriangleSpecialist
Are those the Triforce triangles perhaps?
3
TriangleSpecialist @lemmy.world - 2day
It might be?...
Oops, I meant to say: "hayaaa"
3
Victor - 2day
🛡️🗡️
2
Random Dent - 3day
Mine used to be like that, but now my home folder is rehabilitated by turning ~/Documents into a hellhole of accumulated junk instead.
10
FauxLiving @lemmy.world - 3day
I just prepend everything in the home directory with a dot every 6 months or so, no problems so far
5
Random Dent - 3day
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.
2
communism - 2day
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.
4
Evil_Shrubbery @thelemmy.club - 3day
There are 15 year olds using Lemmy??
/s (my documents folder is the same, but older ... much a lot too many very older :|)
1
mbirth 🇬🇧 - 3day
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.
30
anon_8675309 @lemmy.world - 3day
Mine is dev. I avoid capitalizing folder names.
16
astronaut_sloth @mander.xyz - 3day
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 an ISOs folder to hold my OS ISOs for VMs and old CD-ROM game ISOs.
4
AnarchistArtificer @slrpnk.net - 1day
Having a development folder is such a good idea that I feel silly for not thinking of it sooner. Thanks for the idea.
2
Dave @lemmy.nz - 3day
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?
29
underscores @lemmy.zip - 3day
for me I consider that a web project so it goes into the typescript folder, if it's backend only then python
7
Dave @lemmy.nz - 3day
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.
12
Grey Cat - 3day
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.
6
Dave @lemmy.nz - 3day
Yeah that's a pretty good argument for it.
3
vandsjov @feddit.dk - 3day
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?
3
underscores @lemmy.zip - 3day
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"
3
Quibblekrust @thelemmy.club - 3day
In a folder called javpy, of course!
4
Starfighter @discuss.tchncs.de - 3day
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); done
somecommand could be cargo clean if you're in the Rust directory for example.
3
QuarterSwede - 3day
~/3D Objects
27
KaChilde @sh.itjust.works - 2day
~/Homework (porn)
~/aaaaaaa (porn)
~/Stuff (memes, with a porn subfolder)
~/misc (work docs, study docs, forms, some porn)
22
Holytimes @sh.itjust.works - 2day
What about the ~/Porn folder?!
9
xor - 2day
That's for startup ideas
11
That Weird Vegan - 1day
So where do you store your porn?
1
Evil_Shrubbery @thelemmy.club - 3day
At least two of these:
~/Stuff
~/Stuffs
~/Stuffz
~/Shits
15
SayCyberOnceMore - 2day
~/Stuff(1) as well?
7
Evil_Shrubbery @thelemmy.club - 2day
No, ofc not, I'm not a degenerate without a plan!!
This isn't a game.
7
skankhunt42 @lemmy.ca - 3day
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.
12
RiderExMachina - 3day
Are you aware of the ‘xdg-user-dirs-update’ command that allows you to edit the ~/.config/user-dirs.dirs config file?
9
underscores @lemmy.zip - 3day
Can you expand on this ?
6
pemptago - 3day
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.
10
AnarchistArtificer @slrpnk.net - 1day
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
3
RiderExMachina - 3day
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.
5
Grey Cat - 3day
It basically allows you to define which paths are used for the Downloads, Documents, Videos, etc.. types of directories.
5
skankhunt42 @lemmy.ca - 1day
Huh, no, I had no idea that was there. Thank you.
1
homura1650 @lemmy.world - 2day
/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
12
BCsven @lemmy.ca - 3day
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.
10
hushable @lemmy.world - 3day
I have a ~/Sync folder 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.
3
Grey Cat - 3day
Shouldn't that be a subdirectory under the documents folder ?
1
BCsven @lemmy.ca - 3day
If you want it that way, but then I'd have a mix of synced folder and regular folders inside Documents.
I like to keep if completely separate, for backing up user documents via dejadup differently than the synced stuff.
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.
8
TropicalDingdong @lemmy.world - 3day
I just live out of my downloads folder until its time to back up the important stuff to the server and reinstall/ distrohop.
8
pineapple - 3day
~/ linux iso's
8
moopet @sh.itjust.works - 2day
~/tmp
~/temp
~/temper
~/tempest
~/misc
/mnt/other (symlinked)
7
morto - 3day
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
7
Strit - 3day
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.
7
monovergent - 3day
~/.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.
7
bitwolf - 2day
~/dev for code ~/work for things I don't want to do, like taxes
7
Apparatus @programming.dev - 2day
I do similarly, but I use '~/Development' only because I accidentally fucked up my '/dev' dir once using '~/dev'
8
bitwolf - 2day
Ohh good point. Maybe I should switch to ~/code
4
steeznson @lemmy.world - 2day
I tend to put work dir under documents but yeah would be the same having a dev or local dir for code.
2
MyNameIsRichard - 3day
~/Projects - for my coding projects
~/Qt - which holds the Qt framework
~/Torrents - For torrents that I share
6
treep @lemmy.world - 3day
~/diy for my collection of knitting, crochet and sewing patterns and other assorted diy stuff
~/work duh.
~/tools for my collection of more or less useful small scripts
~/sync for my syncthing folders
~/data symlink to my data partition (most of the others are also symlinks to their location on data)
I don't really have a convention for programming projects yet. They used to land inside of ~/diy or in ~/tools or just random folders on data. I've got a ~/code folder now, but its contents are a mess.
6
VoxAliorum - 3day
Always backup your tools folder... In the past I only created backups for my "real" code folder and I was quite upset when I lost my small scripts in the last drive death.
6
Pika - 3day
I always make a ~/.local/{bin,opt,share} if the distro lacks it. and a ~/bot that I use for my development stuff
6
RedSnt 🧩♂️👓🖥️ - 3day
Ahh, a ~/.local/opt folder makes so much sense. I'm currently just using a ~/.opt folder, same purpose.
2
Pika - 3day
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
2
Ricaz @lemmy.dbzer0.com - 3day
Why bot?
1
Pika - 3day
The majority of my development work is on chat bots or sites so I've always just used bot as the name
2
www-gem - 3day
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 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".
6
www-gem - 3day
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.
1
IsoKiero @sopuli.xyz - 3day
~/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.
6
vandsjov @feddit.dk - 3day
I remove files and folders older than 30 days in my Downloads folder. But my work does make me download things that I often only need for less than a day. If I need to keep something, then it goes into whatever folder or online service where it should be. It is deleted to my trash bin and that has another 30 days before being permanently deleted. I haven't had to pick anything out of the trash just yet.
2
InFerNo - 3day
Projects for all kinds of projects
aur_builds for the package I use from the AUR. No hand holding here, I build and install my AUR packages artisanally.
5
Victor - 2day
I build paru-bin manually, then it upgrades itself, very handy 😎
1
justlemmyin @lemmy.world - 3day
~/Homework
5
Björn - 3day
I just call it ~/Porn.
5
☂️- - 2day
porn gets its own directory under ~/videos
3
TurboWafflz - 3day
I usually make src, junk, and applications for appimages and unpackaged binaries
5
Count Regal Inkwell - 2day
~/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)
5
Caveman - 3day
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.
5
Victor - 2day
Have you tried chezmoi?
2
Lettuce eat lettuce - 2day
~/Repos (For all the github and other code repositories I work in)
~/Scripts (All my random Bash scripts, sometimes for testing out stuff)
~/Junk (Mostly used for testing programs or small project components that aren't mature enough to have their own repo)
4
fum @lemmy.world - 1day
~/bin/ which I add to my $PATH
4
stupid_asshole69 [none/use name] - 3day
Especially for systems remotely managed by ssh:
~/Desktop/stuff/mystuff/junk/funny/
4
mko @discuss.tchncs.de - 3day
For source code or any project - a folder Projects (on my personal setups) or Documents/Projects/PersonalRepo (more customer specific folders under the Projects sub-folder)
Anything under ~/Projects that isn’t just a throwaway will be a git repo.
Anything under ~/Documents/Project/*Repo will be a git repo.
3
tyler @programming.dev - 3day
~/dev
~/dev/oss
~/dev/work
~/dev/personal
3
utopiah - 3day
~/Prototypes for ... my prototypes, typically either starting from an empty directory or cloning a repository and adapting it for my needs. I have this directory on nearly all my devices, desktop of course but also NAS, server, phone, standalone XR headset, etc.
~/Apps in addition to ~/bin, typically binaries but all AppImages
3
ZWQbpkzl [none/use name] - 3day
I generally follow the same pattern as you. ~/Code with programming language based sub folders. But there's also a ~/Code/Work and ~/Code/Orgs which is for code that has a certain purpose. Generally the by-language subfolders are for projects I cloned, not authored. There is a fair amount of symlinking also.
Also /data for long term storage drives. Directories under ~/Audio and ~/Video will usually symlink to there.
3
hexagonwin @lemmy.sdf.org - 3day
i have a 'src' directory. tho my home directory is extremely messy, ls | wc -l gives me 170 now..
3
phaedrus - 3day
I do a similar thing for code stuffs, generally always make a ~/Git and ~/Godot so 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.
3
TrickDacy @lemmy.world - 3day
Okay what is this <sub> convention everyone is using and why is it sometimes </sub> ?
1
phaedrus - 2day
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.
1
TrickDacy @lemmy.world - 2day
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!
3
phaedrus - 2day
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.
2
TrickDacy @lemmy.world - 2day
Just so you can see what I saw:
3
hushable @lemmy.world - 3day
From back when I used to freelance as a photo and video editor. ~/Media which was a mount point for my second hard drive with all the personal and paid customer's I was working on, it was a mix of Music, Photos and Videos that I was creating, but not consuming if that makes sense.
Just a remnant from back when I had a small SSD with my OS and a second larger mechanical drive for everything else
3
Matt - 3day
~/Documents/incubator for my personal projects.
~/Documents/<Git forge>/<user/org>/<repo> for contributing/working on my saved projects
~/Documents/schule for school
3
IanTwenty - 3day
This dir structure for git projects is the best one I think, especially if managing multiple identities/git configurations. Git has a 'includeif' to change your setup depending on which dir you are currently in:
Under ~ I usually make ~/Application for flatpaks/appimages etc, ~/Script for any kind of script I write in bash, python, or whatever else, ~/Audio for audio/music production stuff, and ~/Games for emulators and such. ~/Documents is reserved for actual documents containing text data usually.
3
Cysio - 3day
~/Git for all git clones
3
NutWrench - 2day
~/Transfer
for SyncThing
2
Moondye - 2day
~/nixos/ for my NixOS config
~/repos/ for git repos
~/audio/ for my sound library and recordings
2
termaxima @slrpnk.net - 2day
Code goes in the Developer folder
(I got used to that name on macOS, where it is the "canonical" name for it, because it automatically gets a special icon)
2
PenguinCoder - 3day
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.
In terms of what I manually create. Dot directories normally get automatically created but I guess I'd create a ~/.config if it didn't get created.
2
Renohren @lemmy.today - 2day
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.
I have ~/work/code/project-name-1, ~/work/code/project-name-2 or ~/priv/code/project-name-3, but not by language... I only separate work and private repositories.
2
selokichtli - 2day
Apps (local executables, appimages, etc.), Projects (Work, hobbies), Sync (things I need everywhere), tmp (files I will probably delete sooner than later), and Data. Also Vaults and Boxes, only if I need them.
1
DonutsRMeh @lemmy.world - 3day
I have one for my git repos that I clone and keep building from source. One for various projects. One for scripts…. And so on
1
chaoticnumber @lemmy.dbzer0.com - 3day
A gits dir and a dir called "wd". Short for working dir.
Its a dumpfest of scripts, tomls, yamls, directories galore. The gits dir is where I keep my cmdb, that one is organized. wd is like a playground where I allow myself not to give a shit
1
Frosty - 3day
I have repos for things I’ve cloned from codeberg or other repositories.
There’s also Nextcloud for files I’ve synced from there.
1
mystic-macaroni - 3day
~/repos
1
kutsyk_alexander - 3day
I have a test folder where I clone various git repisitories, compile programs from source or test some small scripts.
1
lilith267 @lemmy.blahaj.zone - 3day
Defaults are good for me but I like mounting my secondary drive to ~/Storage with subfolders media, projects, games
1
oscardejarjayes [comrade/them] - 3day
A projects folder, usually. All the other folders at the root of $HOME are created by some application or another (XDG folder creator, applications that don't respect XDG).
I make a YouTube subfolder to be downloaded YouTube videos in, and subfolders for podcasts, but those aren't at the root of $HOME.
1
obscure0602 @lemmy.world - 3day
~/repos
1
sem - 1day
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.
1
Chewt @beehaw.org - 1day
~/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
1
mesa - 3day
Usually git or development.
1
Auth @lemmy.world - 1day
Public - for everything im seeding and sharing
Apps - for all app images
Games - for all lutris spam and random failed attempts at installing mods.
1
taaz @lemmy.world - 1day
~/Projects which has everything I ever cloned or started.
yes, it's getting kind of painful to backup :D
1
owsei @programming.dev - 1day
~/code for code
~/dots for git-backed nix configs
~/.rt for projects compiled locally ("runtime")
~/Screencast for recordings of my screen
I 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
1
Björn - 3day
I usually make ~/Packages for various binary packages that I can't add as repos for whatever reason. And ~/Packages/src for stuff I compile myself.
And ~/Games for games.
1
Theoriginalthon @lemmy.world - 2day
/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
1
Ŝan • 𐑖ƨɤ - 2day
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þ ~/go and 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.
1
stupid_asshole69 [none/use name] - 2day
You gotta have your ~/ashdkeuh/
1
biocoder.ronin - 2day
I have internal RAID1s that store at least two directories apart from any OS or home dev.
../repos
../misc
Misc contain timestamp fstabs, mdadm.conf, rust/python/apt user-inatalled package names, among other notes and small files.
I also sync my master org directory between my documents snapshots and the repos dir
1
vortexal - 2day
Outside of some folders I made specifically because an app required it, I have a "games" folder for most of my games and a ".lutriswine" folder to have Lutris use a different directory from Wine.
1
cevn @lemmy.world - 2day
projects, games, and programs are the non default folders in mine
underscores in linux
What folders do you make in addition to the default ones ?
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 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.
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.
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.
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.
There are 15 year olds using Lemmy??
/s (my documents folder is the same, but older ... much a lot too many very older :|)
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.
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?
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.
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?
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"
In a folder called javpy, of course!
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:
somecommandcould becargo cleanif you're in the Rust directory for example.~/3D Objects
~/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?
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.
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 ?
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
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.
Huh, no, I had no idea that was there. Thank you.
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.
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.Shouldn't that be a subdirectory under the documents folder ?
If you want it that way, but then I'd have a mix of synced folder and regular folders inside Documents.
I like to keep if completely separate, for backing up user documents via dejadup differently than the synced stuff.
~/proj
~/note
~/sync
~/docs (/book etc)
~/imgs ~/util ~/test ~/temp
~/Projects
Archive
Archive archive
Archive_11_2025
I am not good at organizing
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 just live out of my downloads folder until its time to back up the important stuff to the server and reinstall/ distrohop.
~/ linux iso's
~/tmp
~/temp
~/temper
~/tempest
~/misc
/mnt/other (symlinked)
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,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.
~/.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.~/devfor code~/workfor things I don't want to do, like taxesI do similarly, but I use '~/Development' only because I accidentally fucked up my '/dev' dir once using '~/dev'
Ohh good point. Maybe I should switch to
~/codeI tend to put work dir under documents but yeah would be the same having a
devorlocaldir for code.~/Projects - for my coding projects
~/Qt - which holds the Qt framework
~/Torrents - For torrents that I share
~/diy for my collection of knitting, crochet and sewing patterns and other assorted diy stuff
~/work duh.
~/tools for my collection of more or less useful small scripts
~/sync for my syncthing folders
~/data symlink to my data partition (most of the others are also symlinks to their location on data)
I don't really have a convention for programming projects yet. They used to land inside of ~/diy or in ~/tools or just random folders on data. I've got a ~/code folder now, but its contents are a mess.
Always backup your tools folder... In the past I only created backups for my "real" code folder and I was quite upset when I lost my small scripts in the last drive death.
I always make a ~/.local/{bin,opt,share} if the distro lacks it. and a ~/bot that I use for my development stuff
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
Why
bot?The majority of my development work is on chat bots or sites so I've always just used bot as the name
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.
~/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.
I remove files and folders older than 30 days in my Downloads folder. But my work does make me download things that I often only need for less than a day. If I need to keep something, then it goes into whatever folder or online service where it should be. It is deleted to my trash bin and that has another 30 days before being permanently deleted. I haven't had to pick anything out of the trash just yet.
Projectsfor all kinds of projectsaur_buildsfor the package I use from the AUR. No hand holding here, I build and install my AUR packages artisanally.I build paru-bin manually, then it upgrades itself, very handy 😎
~/Homework
I just call it
~/Porn.porn gets its own directory under ~/videos
I usually make src, junk, and applications for appimages and unpackaged binaries
~/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)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.
Have you tried chezmoi?
~/Repos (For all the github and other code repositories I work in)
~/Scripts (All my random Bash scripts, sometimes for testing out stuff)
~/Junk (Mostly used for testing programs or small project components that aren't mature enough to have their own repo)
~/bin/ which I add to my $PATH
Especially for systems remotely managed by ssh:
~/Desktop/stuff/mystuff/junk/funny/
For source code or any project - a folder Projects (on my personal setups) or Documents/Projects/PersonalRepo (more customer specific folders under the Projects sub-folder)
~/dev~/dev/oss~/dev/work~/dev/personal~/Prototypesfor ... my prototypes, typically either starting from an empty directory or cloning a repository and adapting it for my needs. I have this directory on nearly all my devices, desktop of course but also NAS, server, phone, standalone XR headset, etc.~/Appsin addition to~/bin, typically binaries but all AppImagesI generally follow the same pattern as you.
~/Codewith programming language based sub folders. But there's also a~/Code/Workand~/Code/Orgswhich is for code that has a certain purpose. Generally the by-language subfolders are for projects I cloned, not authored. There is a fair amount of symlinking also.Also
/datafor long term storage drives. Directories under~/Audioand~/Videowill usually symlink to there.i have a 'src' directory. tho my home directory is extremely messy, ls | wc -l gives me 170 now..
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.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.
Just so you can see what I saw:
From back when I used to freelance as a photo and video editor.
~/Mediawhich was a mount point for my second hard drive with all the personal and paid customer's I was working on, it was a mix of Music, Photos and Videos that I was creating, but not consuming if that makes sense.Just a remnant from back when I had a small SSD with my OS and a second larger mechanical drive for everything else
This dir structure for git projects is the best one I think, especially if managing multiple identities/git configurations. Git has a 'includeif' to change your setup depending on which dir you are currently in:
https://git-scm.com/docs/git-config#_includes
Under
~I usually make~/Applicationfor flatpaks/appimages etc,~/Scriptfor any kind of script I write in bash, python, or whatever else,~/Audiofor audio/music production stuff, and~/Gamesfor emulators and such.~/Documentsis reserved for actual documents containing text data usually.~/Git for all git clones
~/Transfer
for SyncThing
~/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)
Conventions I have are:
noexecI 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.~/{nextcloud,git,pictures/screenshots,music,docs,videos}In terms of what I manually create. Dot directories normally get automatically created but I guess I'd create a
~/.configif it didn't get created.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.
$HOME/temp, $HOME/git, ln -s $HOME/git/scripts $HOME/scripts
I'm a
~/tmpman myself.I have
~/work/code/project-name-1,~/work/code/project-name-2or~/priv/code/project-name-3, but not by language... I only separate work and private repositories.Apps (local executables, appimages, etc.), Projects (Work, hobbies), Sync (things I need everywhere), tmp (files I will probably delete sooner than later), and Data. Also Vaults and Boxes, only if I need them.
I have one for my git repos that I clone and keep building from source. One for various projects. One for scripts…. And so on
A gits dir and a dir called "wd". Short for working dir.
Its a dumpfest of scripts, tomls, yamls, directories galore. The gits dir is where I keep my cmdb, that one is organized. wd is like a playground where I allow myself not to give a shit
I have repos for things I’ve cloned from codeberg or other repositories.
There’s also Nextcloud for files I’ve synced from there.
~/repos
I have a
testfolder where I clone various git repisitories, compile programs from source or test some small scripts.Defaults are good for me but I like mounting my secondary drive to ~/Storage with subfolders media, projects, games
A projects folder, usually. All the other folders at the root of $HOME are created by some application or another (XDG folder creator, applications that don't respect XDG).
I make a YouTube subfolder to be downloaded YouTube videos in, and subfolders for podcasts, but those aren't at the root of $HOME.
~/repos
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
Usually git or development.
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
I usually make
~/Packagesfor various binary packages that I can't add as repos for whatever reason. And~/Packages/srcfor stuff I compile myself.And
~/Gamesfor games./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.You gotta have your ~/ashdkeuh/
I have internal RAID1s that store at least two directories apart from any OS or home dev.
../repos ../misc
Misc contain timestamp fstabs, mdadm.conf, rust/python/apt user-inatalled package names, among other notes and small files.
I also sync my master org directory between my documents snapshots and the repos dir
Outside of some folders I made specifically because an app required it, I have a "games" folder for most of my games and a ".lutriswine" folder to have Lutris use a different directory from Wine.
projects, games, and programs are the non default folders in mine