Linux has standardized a dedicated 'Projects' directory in the XDG User Dirs specification to provide a consistent location for software projects containing source code, version control, compiled binaries, test artifacts, and dependencies, addressing the common practice of users creating custom folders for their work while encouraging application developers to use standardized paths instead of creating arbitrary folders in the home directory.
Deep Dive
Voraussetzung
- Keine Daten verfügbar.
Nächste Schritte
- Keine Daten verfügbar.
Deep Dive
Linux Just Standardized Something We All UseHinzugefügt:
Most of us have some sort of folder for things that we're working on.
In my case, I have a repos folder for my source code.
I have things like the model folder for 3D models.
Maybe you have a folder for CAD stuff or a folder for game development or 3D modeling or artwork or anything else like that.
Most of us have something.
If you're doing all your work in a web browser with everything saved in cloud storage, sure, maybe you don't.
But it's such a standard thing that if I say it, all of you probably have some idea of a thing you use.
But if everyone has some sort of folder, then maybe that should be standardized.
Maybe there should be a standard folder for projects, for things that we're working on.
For instance, desktop icons used to be a far more common thing and this had to be linked to a folder.
With that, we get the desktop folder.
Most of us have documents.
So you have the documents folder, downloads, the downloads folder, music, music, pictures, videos, so on and so forth.
All of these are standardized folders as part of the free desktop XDG user dirs specification with a few others as well.
But if you want to know the full list of folders, you can go check that out.
Since there's already precedent for standardized folders, someone had the idea, let's just add another one.
But this isn't a recent thing.
Projects directory created September 15th, 2014 by Bugzilla migration user because this came from the original free desktop Bugzilla.
And back then, it got literally no attention.
The only attention it got was in 2018 with the migration over from the Bugzilla.
Currently, XDG user does not specify a directory for environment of projects.
Weird way to phrase it, but I'm assuming maybe English is not their first language.
Anyway, for software projects, these usually include source code, version control, compiled binaries, test artifacts, and downloaded dependencies.
As they are much more than downloads and usually kept indefinitely, they do not fit in there.
The benefit of defining a projects folder would be that when writing a readme or install script for a project, one could automatically download the source to the user-defined location, set up the build environment, and install from there.
About six years later, we got a little bit of feedback.
I wanted to propose this myself, but found out there's already this old existing issue.
The projects directory is the only directory besides.files and other XDG users in my home folder and has been for years.
As the OP describes, I mostly use it for software projects, but I believe it can serve any type of project.
I used it for school projects that didn't necessarily contain software.
I imagine it can be used for projects in other professions as well.
A few months later, someone noted it would also be useful for flat-packed IDEs.
If it's something that has proper access to the file browser portal, that's not an issue.
It's going to work totally fine.
But for a lot of the proprietary applications which support Linux but don't support the flat-packed format, you need somewhere for them to go because they won't just be able to access everything unless you just ignore the sandbox and give them access to the entire system.
So giving them a dedicated folder where everything can be located, this mostly eliminates that issue.
But the real attention came with a comment from Raz very, very recently.
It would in addition be very useful for apps like 3D printers.
It's basically a catch-all when documents doesn't apply.
He also went and opened up a merge request to get this actually done.
I do not know if the original portal was already aware of this, but there was a projects folder already defined in XDG user dirs.
The issue is they didn't create it.
They didn't finish that final bit of hookup to actually use the folder.
If we go to this commit here, this is from February 27th, 2007, initial revision.
Projects is defined in the translate.c file.
If we go to PO and go down to sv.po, in this file we have projects right here.
This already existed in the codebase 19 years ago.
What I think is likely to have happened here is somebody thought it was a good idea to have a projects folder.
They were working on a projects folder.
And then they didn't finish the entire chain of things they needed to do to fully implement the folder.
So 99% of it was already in the codebase and pretty much all it required was just defining it as a default.
Now the folder exists.
This got merged with literally no hassle because it's a single line change.
All the code was already there.
It was just using the code that had already been defined.
And then someone got a little bit impatient when they saw the merge was actually done.
Flatback still has no idea what XDG projects is if you add it to the file systems override.
It needs some time to get shipped by distros.
Definitely more than being in Git for 10 minutes.
It was in Git for about 24 minutes at this point.
I understand you want to use it, but it's not going to ship out that quickly.
And very shortly after this, a change also opened up in GLib.
This currently still sits open.
I assume there's still some code changes they need to do to make that work.
And that'll probably happen with the next major release of GNOME, I would assume.
Especially so if this is going to happen.
What will happen to the folder's design in Nautilus slash files?
Will it get a custom icon like the other folders?
Doing icon design, doing any sort of design does take a bit of time.
You have to go through design review and make sure it fits the styling guidelines, things like that.
So it will probably get merged, I would assume in a couple of weeks, maybe a couple of months.
However, it turns out the discussion was being had back in 2022.
They thought it was a default folder.
It actually wasn't.
So this was probably being created by their distro because some distros did go and create it and it was generally a good idea to have.
But now that this is the default, the discussion here has been reopened.
And again, something is probably going to happen here.
But if you want to use this today, if you're on a rolling release distro like I am, you likely already have a projects folder that exists.
I don't know if any of the print releases have it yet.
I think the change was probably made a little bit too close to when they came out for that to actually be merged in.
But do check for yourself.
Maybe you already have it.
At the end of the day, why does this even matter to begin with?
If you have your own folder, can't you just keep using the folder?
Yes.
Yes, you can keep doing exactly that.
You don't have to use the projects folder.
But by defining a standard, by defining a default, it encourages application developers to actually go and use the default.
Not just dump things in your home directory, dump things in the specific default directory that projects go into.
Because quite a few projects, one of those being Android Studio, like to go and make folders in your home directory, just for themselves.
Here's your Android Studio projects.
Here are your other various projects.
Here's your other projects.
Here's your other ones.
And that gets really, really messy.
Now, one of these is fine.
And you can obviously always go and just move the files elsewhere and then access them like that.
But there are some applications which expect their default folder to exist.
And if it doesn't exist, they will remake it every time you open the app.
But wouldn't it be nice if that didn't happen?
You open up an app for the first time and it goes and makes its subdirectory inside the projects folder.
That is totally fine.
Keep the work segregated from the rest of the work.
But it does it in the projects folder.
However, okay, I do live in reality and I understand that even though config has been defined in XDG user DERS probably since the very start of the project and has existed and a lot of applications do make use of it, there are still apps which spam their configs in the home directory.
or they spam their data files in the home directory even though there is a defined data directory.
Assuming apps are actually using it correctly and not just hard coding the project path which some of them do for config, you also get control.
The power of XDG user DERS is you can go and redefine the directory into a new location.
So if you don't want these in your home directory, you can put them into their own subdirectory.
You can put them anywhere you want on your system that they're going to have read and write access to.
Again, like config though, there are applications which use config but they don't actually use the XDG setting.
All they do is hard code the path.
So you change it and all they do is just make their own config folder again.
But even though there are apps that are not going to use it, it's still a good change because it sets the pathway for things to improve, for things to get better.
If you don't set that path, then nothing is going to change.
So let me know your thoughts.
Do you care about the existence of a projects directory?
Is this something you're going to use?
Is this something you were already using?
Or do you already have a workflow set around your own custom folders?
And that's just what you're going to keep doing.
I would love to know.
So if you like the video, go like the video.
If you really like the video and you want to become one of these amazing people over here, check out the Patreon, SubcribeStar, Liberpay, linked in the description down below.
That's going to be it for me.
And defaults.
Ähnliche Videos
Agentforce NOW AMA: Build with React and Salesforce Multi-Framework
SalesforceDevs
490 views•2026-05-28
How agent o11y differs from traditional o11y — Phil Hetzel, Braintrust
aiDotEngineer
450 views•2026-05-28
WEB TECHNOLOGIES UNIT-2 | Degree 4th sem BCOM Computers web technologies unit-2 full explanation💯✅
LearnwithSahera
1K views•2026-05-29
More tests are always better? How to use AI to identify tests that bring little value
Alliance4Qualification
335 views•2026-05-29
Search Algorithms Explained in 60 Seconds! 🤖💨
samarthtuliofficial
218 views•2026-06-01
People of Game of Thrones using JavaScript DOM
AltCampus
296 views•2026-05-30
Introduction to Problem Solving Part - 1 | Lecture 1 | Intermediate DSA
ascensionix
107 views•2026-05-29
So What's Odin Lang Even Good For
TechOverTea
131 views•2026-06-01











