Home Directory Cluttered With Dotfiles? Move Them!
HTML-код
- Опубликовано: 11 сен 2024
- In this video, I want to talk a little bit about the XDG Base Specification which states that certain types of files must go in certain locations. For example, all of your config files should go in HOME/.config. All of your cache files should go in HOME/.cache. And so on. Is the XDG Base Specification a hard and fast rule that you must follow? And if you choose to follow it, how do you go about cleaning up your HOME?
REFERENCED:
► wiki.archlinux...
► github.com/b3n...
WANT TO SUPPORT THE CHANNEL?
💰 Patreon: / distrotube
💳 Paypal: www.youtube.co...
🛍️ Amazon: amzn.to/2RotFFi
👕 Teespring: teespring.com/...
DONATE CRYPTO:
💰 Bitcoin: 1Mp6ebz5bNcjNFW7XWHVht36SkiLoxPKoX
🐶 Dogecoin: D5fpRD1JRoBFPDXSBocRTp8W9uKzfwLFAu
📕 LBC: bMfA2c3zmcLxPCpyPcrykLvMhZ7A5mQuhJ
DT ON THE WEB:
🕸️ Website: distrotube.com/
📁 GitLab: gitlab.com/dwt1
🗨️ Mastodon: fosstodon.org/...
👫 Reddit: / distrotube
📽️ LBRY/Odysee: odysee.com/@Di...
FREE AND OPEN SOURCE SOFTWARE THAT I USE:
🌐 Brave Browser - brave.com/dis872
📽️ Open Broadcaster Software: obsproject.com/
🎬 Kdenlive: kdenlive.org
🎨 GIMP: www.gimp.org/
🎵 Tenacity: github.com/ten...
💻 VirtualBox: www.virtualbox...
🗒️ Doom Emacs: github.com/hli...
Your support is very much appreciated. Thanks, guys!
There is a reason why standards exist. Imagine the Linux commands wouldn't all work the same way with standard input and output in example, you would have figure out every program. The more standards you follow, the better. But you are allowed to break these "rules", if you have a good reason.
That is my opinion.
It's about "common sense", nothing more than that. Linux is freedom, if you want to create your own distro to your own "weird" standards when it comes to locating files and directories then nothing stops you from modifying source code to go do it.
Good Opinion on XDG ! It works and here is the why ! (Retired Pilots opinion) Safety margins are greatly improved. Imagine you work for an major airline that has 15,500 plus pilots and they all have to fly together and yes some on similar aircraft others on different aircraft. It's called standards. Flow patterns are trained and practice on each and all aircraft so switches are position correctly by pilots. PF pilot flying and PNF pilot not flying have different routines whether one is left seat CA or occupying right seat FO. At the airlines you are NOT allowed break these standardization rules, but there is one exception that is in emergency. (FAR 91.3) in an emergency the PIC can deviate from any mandated rule to protect and save people or aircraft harm. :) But DT keeps breaking the Linux rules.. :) Going to need to fine and give him time off... :)
I think that while we can do whatever we want, we should also strive towards complience with sensible standards. We are free to put binary executables into /etc but I doubt there is someone who will actually do this.
oh yeah all of my binaries are in the totally sane directory of /tmp/bin :#
@@aonodensetsu /tmp is a good placed for systemd. ;-)
@@0x007A why sysd hate 😂
@@therealslimaddy I tossed that in for Brodie's sake. ;-)
@@0x007A nvm I use openrc anyway 🤣
I'm going to fullfill your expectations about the comments and tell you that the XDG Base Specification should be used by everyone or at least make programs allow the users to define the config directory. The home directory should be one of the cleanest folder structure for end users and it kinda annoys me if there are unexpected files scattered around.
You don't have to follow the XDG guidelines, but you should build enough Freedom into projects so that those who want to, can. If he chooses to use $DT_ as the prefix for all his base path variables, that would be totally fine. That would have Freedom baked into it. Anyone could move anything wherever they want. But using $HOME as the base path is a problem. Even if he used $DT_HOME that would be Freedom respecting, though not ideal.
Yes, the XDG Base Specification should be followed going forward for new software or if maintainers want to do it, but for older software, it is not worth the trouble. After all, let's not forget it is simply a cosmetic improvement.
@@rsmith31416 it's not "just cosmetic". People don't keep their houses clean just for looks, they do it to make life easier, to make getting to things easier. Same with a computer directory
Might as well give up now since you'll never succeed at getting people to "do it my [your] way!".
@@wreedb Your home directory is not your house. Lack of hygienic conditions in your house makes you more likely to develop infections and therefore, there is a biological imperative to keep it clean. The same cannot be said of your home directory. I know a lot of people, particularly technologically inclined people, develop some sort of OCD with these things, but let's not pretend this is more important than it really is.
I am sorry DT...it was me...and I didn't realise that I made things hard for you. To be clear...I was not trying to be a conformist. The commit message was just to make it short and clear about what I did.
As far as I remember, you had made a video mentioning the merits of keeping the home directory clean. Now, if anyone installs XMonad right now, he/she might notice that it doesn't create the ~/.xmonad folder. The locations I have used are the default ones that a fresh install of XMonad uses now. I just wanted your configs to be on the same foot with the recent changes being introduced, since it is the most comprehensive documentation of XMonad for the novice users that can be found on the internet (if I may say so).
Anyways, a big thanks for all the hard work you put in. Your repository is something that I can always look up to whenever I mess up my configs. Hope I didn't make your day too bad with the pull request. Apologies...😟
So, essentially, it turns out that xmonad does put this in the .config folder? And you were just doing what the program itself wants to be done as opposed to what DT is doing? This video is definitely more conflicting with that known. So kudos to your effort even more so! I don't really understand what DT is getting at in this video. It really doesn't make any logical sense.
I do believe everything related to configuration should be in the .config folder. What if every app decided to put binary files in the /etc folder? It would make no sense. There's a difference of being "free" and also being "sensible" if you are publishing something. If DT was arguing for people to be sensible, then I would fully agree with it. But essentially telling devs who are publishing something for mass consumption to "do whatever you want" is quite reckless and irresponsible of him.
Without standards, you give corporations the ability to lock users in (with Apple's silly Lightning cable... and people being forced to waste money on a single cable when most other devices are USB-C compliant). Standards are often introduced to give developers and software the opportunity to co-operate, communicate, and collaborate.
So yeah, I respectfully disagree DT, and I think your messaging is dangerous. Developers have some level of responsibility, and telling developers who publish something for consumption of others to "do whatever they want" is not correct.
@@JamesMowery Another DT double standard. Its ok if he does it. When other project do it its not ok.
@@Ultr4noob Well...that's one of the pros of using Linux. We get to know and interact with so many real people. Some are happy, some are a bit sarcastic, but real nonetheless. It is okay to like something today, and hate it the next day.
But ya, I felt a bit bad for the tone of this video. He could have just rejected the pull request if he didn't like it. But, I guess I have to be more careful from now on, submitting pull requests only for features instead of some house-keeping or cosmetic changes.
Being a student, I am used to being reprimanded for little or no reasons. So this wasn't too bad. Just a little whoopsie towards my desire to get into contributing to open-source instead of just using open-source software.
@Arijit Kumar Haldar Yes, when you look at the Xmonad install guide it does say to install in ~/.config.xmonad. It also says "Older versions of xmonad used ~/.xmonad instead. This is still supported, but XDG is preferred."
Thanks
Don’t feel bad at all, you did a wonderful thing. DT is just being a contrarian for the sake of it here, and he’s also contradicting an earlier video he made about dotfiles cluttering your home directory and XDG being the solution.
The .config folder exists for a reason. Any software that doesn't use it is purposefully ignoring a main part of linux and degrading themselves in the eyes of most of the community.
DT: "Quit throwing everything on your desktop. That is not good for organization, structure ..."
but cluttering your home dir with dot files is not a big deal.
After all, you are a rebel.
I think it's funny that you made a video about how "We've Lost Control Of Our Home Directories" and now you are saying that XDG it's an unnecessary thing. Guess people just want to see their file structure organized.
I was thinking the same thing.
I like having less things in my home folder, and I like having a folder those things consistently go into, and that's as far as I care about the XDG base spec.
I think adhering to XDG standards isn't necessarily _conformist._ Like, just as a metaphor, I like to think of this kind of infrastructure pretty much like actual objects-in-real-life infrastructure; I'm free to use whatever sink and toilet design I like, but unless I want to dig my own septic pit I at least have to make sure I get the right pipe fittings to hook up to the municipal sewage system, y'know. Or to pick a more tech-adjacent example: We've all kinda accepted that x86-compatible processor architecture is the most ubiquitous, and while you're certainly free to compile your kernel for an ASIC, chances are pretty high that the first download for Ubuntu, Fedora or Arch are gonna be for the "standard PC"; heck, even LFS stipulates some common ground to start off from.
Not that you shouldn't be allowed to disagree, of course, but I personally find this to be a good example of compromises benefiting the whole group at a _comparatively_ small expenditure of personal freedom. Like how we all agreed not to kill each other; it's giving up my freedom to just deck a dude out in the street in exchange for most everybody else promising not to cave my skull in.
In any case, thanks for bringing your opinion to the discussion, like I said I don't claim XDG to be the right fit for _everybody,_ just that it's a good starting-off point for the majority of users; and thanks for bringing up xdg-ninja, didn't know that existed before 👍
You don't have a freedom to just randomly deck some dude in the street. Not murdering people isn't having a little of your freedom taken away. Killing someone would be infringing their right to life. You have no such freedom to infringe on other people's rights.
That's a far cry different from saying people should give up their freedom to make their computer program work how they want it to and instead do it how you or some declared standard wants them to. Maybe they should, but these two scenarios are not comparable. Especially considering that murder is illegal and punishable virtually everywhere and the comparable scenario would be forcing people (not just letting them "choose" to listen or "compromise" or not) to follow the standard or risk their program being disallowed from existing or at least be massively suppressed and hard to get.
@@michael-r4k Okay, maybe I should have clarified my example a bit better. "Illegal" and "rights" are concepts that are man-made and arbitrary (as opposed to "laws of nature" like gravity); I'm not allowed to kick your ass, but apart from judicative consequences there's nothing physically stopping me from doing so. That's what I meant by "freedom to deck somebody"; I, at any point in my life, have the choice to adhere to rules or not, and my point was that adhering to rules/laws/standards/guidelines/etc., even if it means not doing everything you want to at every instance, isn't necessarily bad. It shouldn't be unquestionable, of course, if I want all my binaries in "/var/www/Program Files(x86)/" then I should be able to; however, without standards, you have to explain every time you talk about a problem with your system what all the exceptions to the "usual file system layout" are.
I really should have picked a better example, but I thought hyperbole would get my point across more vividly. Of course it was not at all meant as a serious point to compare assault and file management preferences.
xdg is silly and benefits no one, is just dumb & stupid
@@LordHonkInc and how what you are saying does not apply to a simpler and clearer standard like "~/.program" this way is so much more cleaner than xdg, because I don't have to think of additional environment variables, when I have a problem with a program all I have to do is go to ~/.program and thats it, my problem is contained, but with xdg I have to search individually in every single nook that the xdg people thought to put them in.
xdg isn't setting order where there was chaos, xdg is creating totallitarian, miopic, onesided regimen where there was freedom and order.
It's actually the opposite! XDG variables give YOU the FREEDOM to move files to the locations that YOU decide instead of being FORCED by the applications to place them wherever they like on YOUR PC.
Oh yeah! Let's go! I've done this days ago! home dotfiles just annoy me! Luke Smith also has awesome videos about moving files to XDG
Luke Smith also makes videos about "Why roads are evil" and then in his next video shows his "self-sufficiency hippie-dom" with a great big bench saw in his garage that presumably needed a truck coming up an "evil" road to deliver it to his home in the first place.
His Linux videos are cool, so is his love of Thinkpads - but everything else is "Church of Luke Smith" with he and his disciples all with their heads lodged firmly up their own bottoms.
@@terrydaktyllus1320 nothing wrong with that
@@terrydaktyllus1320 You completely missed his point. Luke isn't personally against roads. He was making the case that when you create roads you become (forcefully) dependant on them and require vehicles. We can see this in the US where you need a vehicle unless you live in the middle of a metropolitan area. He never denied that there is conveniences that come from roads and he never said that we shouldn't have roads.
@@notuxnobux Then I missed his point - no problem because I am not part of his "fanatic congregation" anyway.
Nothing more to see here - who appointed you his spokesperson anyway?
@@shallex5744 Of course not, if you worship Luke Smith.
DT: "I don't understand why that is a problem"
Love your vids DT but just some constructive criticism here. You tend to think your concerns are justified and other people's concerns are just "negativity". I'd try and reflect on your way of thinking.
Buddha agrees.
The XDG spec is absolutely paramount going forward... to the point that if I'm looking for a piece of software and software A supports XDG and software B doesn't, I'm giving software B the middle finger.
The frustrating thing is maintainers that refuse to make changes - or accept pull requests - to add XDG compliance via an environment variable.
As a developer, it's pretty trivial to add that support without breaking anything. They could do it the way git does for instance, where if you generate a git config it will create ~/.gitconfig, but if the user manually creates ~/.config/git/config (or renames ~/.gitconfig to it) and starts issuing commands to update the global git config, git will pick up that file andd run with it forevermore without giving the user any problems.
Luckly, you can sandbox software B and use virtual file system to redirect all read writes from .a to ~/.config/a
@@richardlighthouse5328 Why would I jump through that hoop instead of just supporting developers who give a shit?
@@praetorxyn Sometimes you're forced to use a software, because others are worse. For me it's Firefox who creates .mozilla folder and other alternative is chromium which is more worse.
@@richardlighthouse5328 That's exactly why I don't use Firefox, aside from it being worse than say, Brave. But I know that Firefox has a command line flag you can give it for either its data / config folder in order to make it not create that folder, so you could create an alias for it and edit the shortcut to add that argument in.
Devs can choose not to make their apps XDG compliant. I will choose not to use those apps
So which is it? You're using Linux because you're a rebel or because FOSS is so good?
Either way, don't confuse rebellion with being contrarian. Straying from standards should be done with clear purpose. Non-conformity in every aspect of everything for the sake of it is obviously a terrible mindset.
One of the best and truest comments in this section. Thank you for expressing what you said. I agree 100%. I teach, and I stress very hard with students to be conformists. So much easier to adapt and then innovate. Worst thing is to try and be different without purpose.
Thank you.
I'm genuinely quite surprised with what DT was saying in this.
"Since you want to rebel so much as to be a Linux user, you should also rebel against standards because you're trying to be non-conformist" sounds like some kind of strawman argument against Linux thought up by someone who has only seen memes about the topic and nothing else.
DT has also expressed many times in other videos that the main reason he uses FOSS is because he genuinely prefers it and thinks the ecosystem is far superior. I don't think he meant quite what he said, but it doesn't change the fact that he said it and published it.
He even came up with something he could have used as a purposeful argument against XDG dirs, (interoperability with older standards) and yet still chose to present it as a nonconformist thing. Oh well.
Makes perfect sense to keep things clean, lean and orderly. 👍
It makes no sense and is a waste of time.
@@phuchu it makes sense as it will make exporting configs to a new computer, and delete files while computer space is full will become easy
but honestly it is kind of a waste of time, if anyone is so dedicated in doing it... and do it every single time, and i suspect him having ADHD..
@@phuchu It makes complete sense as it allows backing up all configuration without backing up data easy, for instance, and avoids unnecessary clutter. It also makes a dotfiles repo much easier to maintain without having to worry about symlinks etc to get things where stuff "expects them to be" out of developer stubbornness / laziness / spite (I say this as a developer, and the maintainers of a lot of things such as ssh, cups, etc refuse to approve pull requests that would add optional XDG compliance without them having to do any work whatsoever).
You can turn it around a bit DT, if everyone followed the XDG specs it had been lot easier for you to
You do you. 👍
I'm someone who finds dot files in my home directory distracting. But, I'm OCD/Autistic and the world should be a certain way. Config files shouldn't be split into multiple locations IMO. With that said I do take great pains in my bash profile, rc, and in my xprofile to make sure the XDG environment variables are always set so programs that want to honor them can.
Many programs that are older though don't actually hard code the rc location. Many have a 'default' which might be in $HOME, but that can usually be overidden with a commandline option or environment variable as your xdg-ninja program points out in a lot of cases. For those cases it's my choice to setup aliases that use the XDG_CONFIG_HOME variable and put it to use. So while they're not 'compliant' they can easily be configured because they support CHOICE, which is what you and I both appreciate about the Linux ecosystem.
Free and open source software, at the end of the day you can do whatever the hell you want....
But having icons on home screen is a red line for you... and according to you no one really should have them...
Hmmmmm...
Alanis morissette song comes to mind
You can believe in freedom but have opinions on what people should or shouldn't do.
Coercion is what makes it not freedom. He isn't forcing anyone through a monopoly of violence.
@@allenellsworth5799 point out where I said he was forcing anybody to do anything
@@pw1187 Because it is only a double standard if he is. Otherwise I don't see how it is.
@@allenellsworth5799 you have no clue what song I was referring to do you?
With that response I can see you have no effing clue
And it's not hand in my pocket either
And dude just quit while you're ahead
@@pw1187 🤣😉alright
Well-done video, you're my favorite gamer girl!
When I ported my zsh configurations to EndeavourOS, I decided to clean up my home directory. A few games leave one dot directory that I can't route easily, and Mozilla based or owned software is annoying and insists a hidden directory in home proper is the only way.
Hey, do you think 52 dot folders and 29 dot files is enough reason to consider cleaning? Should I wait until it's 100? I even have 6 folders placed there by other programs that _don't_ have dots to hide them under the rug. Honestly, my home folder is messier than my desktop _ever_ was, and you admonished me to clean _that_ up...
Dear DT.
I get you thinking and I sympathise, nobody like to go back and do work they thought they'd got sorted.
That said I think a lot of people might really dig having this in DTOS. I could be wrong, but I didn't know what the xdg base specification was until now but I do find extra files and directories in ~ annoying. I actually have a "Directories/" directory where I put all my other Directories that don't really fit any of the default categories. I know it's not for everyone but I just think it looks pretty.
Anyway I just think users who don't care still won't care but users who like it will love it and will likely really appreciate your extra work and that of the person who made the merge request.
Kudos for doing this even though you're not one of the people who are bothered about it, that makes it all the more appreciated.
I've never had so much disagreement with a DT video! But let's start with the agreements.
Agree:
- Linux is about Freedom
- Don't comply with the masses
- Don't expect others to comply with your preferences
Disagree:
- configs for _whatever_ should just be in $HOME/.whatever
- don't expect _whatever_ to allow you to relocate your files
- comply with _whatever_ placing cruft wherever it prefers
DT, if you want to stray from the XDG guidelines for file locations, you should totally do that. But if you are going to do work to produce something that a dozen people are going to use, you should bake Freedom into it from the start. It gets harder to retrofit Freedom with every passing day. Use variables for base paths. You should use XDG variable names, but you have the Freedom to name them whatever you choose. As long as you use variables that others can change, you are doing enough. ☮️❤️🌈
Yes, I so agree. If all of the (even legacy) apps would do this, then LInux would be so much easier to understand, modify, and extend. Coming from Windows, I sure appreciate the XDG specifications.
@@PoeLemic yes, that is the main thing that annoys me on windows. software is like somebody letting their dog loose in your house and it's crapping everywhere it wants. that's why the few pieces of software i've developed on windows, all of it stays in it's own folder, including the config files and dependencies. it doesn't touch your registry and it doesn't touch your home folder unless you specify in the folder-local config.
I understand your approach - but, honestly, I think that the XDG has it's meaning. E.g. I'm backing up my /home every hour over network and I want to have my backups (and their deltas) small and fast if possible. That means excluding some directories that I don't care about much and that contain large, often changing files (virtual machines, ~/.cache, file content index, etc.). The more directories I have too add, the more the backup config gets complicated, or my backups take more time and more space for no reason.
The older software which does not adhere to XDG Base Specification could easily be updated by their maintainers. The $HOME directory should never have been a free-for-all dumping ground; it is one of the oversights, in my opinion, of the original file system layout design of the *nixes. I wonder what Buddha thinks about your "rage." ;-)
How did you learn English? Think about how "ough" is pronounced in the words "through", "tough" and "plough". There's no rules that cover the pronunciation, you just to have to remember it.
It's the same with Linux - remember the rules that cover most things and also the exception to those rules.
There is a lot of old software that can still be compiled (usually with work) that is essentially unmaintained. If you need it, you want it to make sure it works, newer standards are a luxury for which you might not want to pay.
As for forethought, the config files are text and personalized in your $HOME directory and mostly named to not show up using {/usr,}/bin/ls unless you wanted to see them.
Most GUI file browsers have an option to toggle viewing of DOT files.
Keep in mind that when this started, windows was still basically single user and dropping *.INI in the WINDOWS directory which at least were text readable. While windows evolved to use the registry, it has it's own problems.
NEXT used ~/Library which was taken up by OS X, and probably should have become the standard.
I work on Linux and alongside colleagues who are Windows experts and I utterly admire their ability to navigate that most illogically organised database of configuration settings known as the "registry".
HKEY_LOCAL_MACHINE??? Seriously?
Give me flat text files somewhere in $HOME any day of the week!
@@terrydaktyllus1320 Windows also uses %APPDATA% for flat file configurations, which mirrors XDG_CONFIG_HOME AKA ~/.config, which is where configuration should logically go.
Dot file managers like chezmoi even make it pretty simple to keep a source of truth file for e.g. VS Code settings.json and say linking into the appropriate place depending on what the OS is, so it will go into %APPDATA/Code/User/settings.json on Windows, ~/.config/Code/User/settings.json on Linux, and ~/Linrary/Application\ Support/Code/settings.json on macOS.
@@praetorxyn I stopped reading at the first paragraph. I do not use Windows and do not need to understand how to configure it. Therefore your tutorial on Windows configuration is entirely wasted on me.
I also dislike JSON files, there is nothing wrong with flat text files containing "parameter = value" settings.
"If it ain't broke, don't fix it."
When writing programs/software, there are several things that you can choose from. You can choose different languages, ie. C, C++, fortran, python, COBOL, haskell, whatever. You can use different databases. You can require different hardware peripherals. What "standards" do is allow you to know how the OS will work with your choices as well as allow someone else to learn, maintain or change the hardware and software specifications.
If you work in the Linux Server space, and create backup scripts, you learn to appreciate the amount of standardized directories for each purpose that xdg provides. You can be safe not to miss anything.
For my private usage I couldn't care less, but coming from the server space, I somewhat expect similar behavior from most software as well for ease of configuration and finding anything I need without too much reading documentation just for folder structure.
Best case scenario, well-documented code\configs.
Great content nonetheless, love your videos.
It started long ago ... SYSV and BSD battles.
Not really that important. But standards are good. Everyone should have their own.
non conformist doesn't mean walking _backwards_ just because you can do it.
Acctually those standards are good but maintaining old software to follow them is bad
so, we can just forget about old ones and follow the standards in our new software
I generally try to respect what I know of the XDG specification, props to this person for putting in the effort. It does make syncing/backing up configuration a lot easier.
DT " X project shouldn't have a proprietary browser by default"
Also DT: "This is FOSS you should be able to do whatever the hell you want"
Sorry DT had to do it. Too tempting.
Sometimes I wonder if DT is trolling or is truly blind to his own double standards. Not trolling here just notice double standards in many of his videos. Still my favorite "Linux" youtube content creator.
@@davidgomez79 It isn't a double standard at all.
@@allenellsworth5799 please do elaborate. Don't get me wrong I'd prefer if projects used open source browsers by default but it is in fact a double standard.
@@davidgomez79 These aren't double standards.
@@allenellsworth5799 so he can do whatever he wants with his project but others can't? One standard fore him and another standard for others. Call it whatever you want but a rose by any other name.........
Nice info dt
As usual!
Ok i kinda lost it on the "Y. U. Bald Homie" guy
Honestly, I would prefer all configuration files ended up in .config, but that's the OCD talking
Given the title, I was pleasantly surprised. I've been using various versions of *NIX on and off for over 20 years. I still use some software that is virtually unmaintained and am annoyed if I upgrade something and it can't find my config files. The point of using DOT files was so they would not clutter the $HOME. If you want to move them to ~/Library, ~/local, or new pet ~/.local, I wish they'd all lose the DOT.
I would expect GNOME/KDE/XFCE or other large projects to expect compliance to newer standards going forward, but dropping something because it's not, or wasting hundreds of hours weeding out what scripts need to be changed, testing, and troubleshooting them probably is not time well spent when it already works.
Well here's one thing, I want git on my manual configurations.
So not only rc files but also whatever is system wide and I configure by hand, should be in one folder, so I can carry it or git it.
FREEDOM! You're awesome, DT. You got me to switch and I've learned so much about Linux from you. Not looking back.
As a software engineer, I'm going to tell you right now this was the coldest of ice cold takes. I have to fight other programmers that I work with to confirm to guidelines at work and open source software that I contribute to or else maintaining the software can be an absolute nightmare.
Why use linux at all then if what you just said flies in the face of Linus Torvalds philosophy in maintaining the LINUX KERNEL? People rag on him for being a hard ass when it comes to pull requests for the kernel but if he wasn't like that, the kernel (which is already really complex software) would be a total nightmare to improve and fix bugs on.
If it works, it's not about right or wrong - it's about the energy in to benefit out ratio. That's no one else's call unless they spot something that was missed and correction is in order.
I used to organize my home directory via XDG so that I could more easily find my customizations, sync my dotfiles, and keep things uncluttered. It was a time-consuming battle that offered me nothing once I switched to GNU Stow. I actually reverted most of my XDG path configuration because it just added an unnecessary layer of indirection. I still think that programs should default to XDG or at least offer the option to use it, but I won’t base my own sanity on some hypothetical ideal future. The home directory will likely always be messy and GNU Stow works fantastic for me.
Can you explain how to use stow to get well structured directories like XDG?
Don't show hidden files in home and use 'ls' without '-a' 😉. I understand the annoyance when showing all files and I tried to move things into .config for a while until I realized that I only use dot files for myself in code directories.
Nix OS does NOT follow the recommended file structure from the Linux Foundation
Even the XDG base spec isn’t that great. I prefer the way macOS puts everything in a “Library” folder. Caches, preferences, user data, etc. In recent years they’ve also hidden it in the file manager. Even ten years of using the same account on macOS results in a cleaner home folder than a month-old Linux install, when I reveal hidden files. Linux is about freedom so users should have the freedom to put dotfiles somewhere besides the root of their home folder. But all the hard coding makes it virtually impossible to get the root entirely cleaned out.
In windows, it was always required to keep root directory clean as possible. This would require that we have user homes where everything would go.
Hey DT, so If I'm just starting out with my private Repository, then unless something requires legacy file placement, I should implement xdg formats so I don't have to go through moving and changing links and reference lines within the files to reflect the changed location of files? I want to learn to use github but think I'd rather have local private repositories. I really need to learn bash scripting.
I’d probably not have accepted. My computer, my organization: And to hell with a busybody coming into my home and thinking they’re doing me a favor by telling me to rearranging my shelves.
If they ask first, then at least they’re being polite about it.
I think dt is playing us again, he knows everyone'll comment against this but he wants to play the algorithm 😂
I started trying to tidy my home to conform to the XDG Base Specification, but gave up when I realised I liked it less than the clutter. A sane standard would be great, and home should not be cluttered, but I'm just not feeling it with this one.
Maybe I'm just weird, but if .program was instead .semantically_sensible_directory/program, with all its configs, cache and other data in subdirs within, that would do me fine. Easier to delete when you remove the program because it's all in one place, easier for devs to code for because it's all in one place, fewer directories cluttering home (just the directory containing the program dirs). Granted, you have to specifically exclude cache files from each dir on backup, but that's scriptable, and to me a small tradeoff for having data and configs in the same place.
YMMV, of course. We're all wired differently, but it would feel more organised to my brain than spreading a program's files over CONFIG_HOME, CACHE_HOME, and DATA_HOME, which always take me a minute to remember when I want to do something.
I don’t know why people hate on the fish shell it’s actually really good.
All my dotfiles are randomly split between /usr/share/wallpapers and ~/Desktop. I'm a true rebel
In my software I always used a function to get the cache/config directory so to add support for XDG directories I just had to add 1-2 lines to those functions and the whole program supports XDG base specification. So in my case, why not support it. But I think that software should at least use $HOME/.config/program instead of putting the config in $HOME/program because it makes it easier to backup config. Instead of checking where every software saves configs, just backup $HOME/.config.
I don't think XDG Base Specification is be all and end all, however I do certainly do think it's nice to have less hidden crap in $HOME
XDG Base Specification is like alphabet soup. Your comments on XDG bring back a memory of a RUclips on OpenBSD were this user switch from Linux to OpenBSD because the files system layout made more sense to him. I like OpenBSD it's a very good operating system, it has a place and excels on file system servers, routers and firewalls. But this guy was using OpenBSD on a laptop. Point is if the future proves past or the past proves the future I'd say the XDG layout will be the future. At this point I know my way around on OpenRC on Gentoo, systemd on Archlinux, /etc/rc.conf on FreeBSD or "OpenBSD "Do not alter rc.conf (8) directly. Instead, use the rcctl(8) utility to maintain the /etc/rc.conf.local file". Chose your flavor !
Pro tip for Windows programmers: even some tools on Windows respect XDG environment variables! Definitely worth setting them up to point to the folders of your choice for cleaner $HOME!
I get the nonconformist stuff but there's standards for stuff for a reason, but it's also weird that Linux doesnt enforce XDG compliance? Literally just a warning error for the dev would annoy them enough to move it themselves
No. Apps that put random files in my home directory are unethical and asses. I completely agree with you that it is not really worth spending your time to fix other peoples mistakes, but it is really important that apps are made ethically and respect the user. Nvim does this by default, vim is still being developed, and if it does not respect the standard it is its fault, not the standards fault for being developed after they started developing the app.
I dont even really care as much if they respect the XDG standard, it is more about respecting the user. Putting files in some reasonable location.
The OS needs to stop granting entire system access to programs I install. At installation and startup vim should not even know anything but .config/vim and .local/share/vim exist it should interact with the FS through an api.
Linux is about user freedom, not the freedom of developers to disrespect users and take control away from them.
XDG as commandments? No. But as guidelines? Yes! I mean, you could keep your forks and spoons in the bathroom, or in the garage, but isn’t it better in just about every way to put them in the kitchen instead? Just sayin’.
.config/ dir is great idea actually, amazing how much time took to figure it out. its not only cloggin even navigation and search for config files much easier.. casue you just cd .config. Linux must evolve to became better OS without such changes this is not possible, its like holding on with X11 then obivious what no future here..
It's much better to have it all in .config. But I don't think I will ever put in the effort to set it up like this. I would recommend making scripts posix compliant instead of bash scripts if there is even the slightest possibility that your script is going to run on a server or inside a container at some point. Especially containers might only have something like busybox.
Most things really should be following the XDG base specifications unless there's a good reason not to.
To me, XDG is just about organizing the home folder, so it isn't that bad. Anything that helps me clean up trash, I'll welcome it.
Where can I find the panel you have on your desktop with system info and keybinds?
Part of the reason why I have my Rust toolchain in /opt instead of in my home directory is exactly this. .cargo and .rustup both take up a lot of unnecessary home directory space. Alas, to each his own.
Without XDG structure the configuration for $HOME backup is just horror. Then it's necessary for every dot dir of an App to configure which subdirs to exclude from backup because they contain cache, status files.
That's also why i banned snap packages cause it is incompatible to XDG.
Does XDG specify that every Linux user should be bold?
We should get a cookie and a candy bar for making our home directory cleaner.
Hey DT, would you potentially be interested in a manager program for your files?
The xdg base dir specification is a pretty sensible one for someone like me(and maybe many others) who wants a well organized home directory structure, i.e configuration files for almost all programs should go in .config/ which makes absolute sense. It's ok if someone doesn't want to follow them but dedicating a full video just to assert this opinion is kinda pointless in my opinion, I mean all the points made in this video indirectly contradicts the ones you made on a recent video of yours talking about users polluting their desktop with filles and executables, everyone knows there's no hard and fast rules and people can throw shortcuts in their desktop as much as they want to, but it ultimately is a bad practice in many cases - which is the point
😃 now i can install dtos...
Yes, you can do whatever the hell you want but you need a standard or a rule to everything specially when you are making something that is going to used my many people.
I actually agree about XDG. I don't even care where the configuration files are since they are dot files I never see them with a standard LS. I have to explicitly use -a or -A to see them and I hardly ever do. I also don't think we should blindly adhere to POSIX as quite a bit of it just annoys the crap out of me. If you knew how much I hate exec*() functions, and for that matter, how fork() and clone() work. Yeah, pthreads, yay, which isn't consistent across platforms either and requires another library to be specified when building, still annoying. I wish there were a standard to replace POSIX that everyone would just use because I'd love for something that's not a PITA.
"You use Linux.. You're a rebel!!" C'mon DT! 😁 Because being in your 20s with pale skin, zits and a neckbeard is SO damn edgy and rebellious. 🤣🤣🤣
I'm of the opinion *IF IT AIN'T BROKE DON'T FIX IT* but if I can make something more efficient and faster do it up.
Broken no but ~/.temp-log will get visually lost for example
Good video.
Thank you, I have successfully configured. but one problem for dtos is i can't use micro
One of the things that angers me the most, by far, is when I install/run something and it makes a $#%^ directory on my home
I am looking at you, Project Zomboid.
why not only use hard or soft links for the programms that not allow to move config
😀
I personally praise xdg to unclutter my home directory
i only complain when something is not according to spec, or uses its own interpretation of what it should be, when there is no way to change it, in any way. Like if i were to create a program that , dumps a shitload of files in every directory, that is hidden from the user at system level, so that everything made on a system with it installed , and is moved to a different one , hast the shitload of files show up on that pc,... and i call the files MACOS or something.
What window manager is this?
there's a diff in linux between being free and claiming free
I put all my files in /freedom
Yeah why follow the Linux Directory Structure when I can put all my files into a single folder called "/freedom" because I am free to do so 😂
u do you have an old dtos installation, can i have it. or can you help me how to insert hackell logo. one more time thank you very much. sorry but I've been using your dtos for almost 1 year and am used to the previous version
please help me because it's been 2 days i don't have a laptop to use. I am waiting for you. looking forward to your response
"[...] The idea of being a black metal artist is being a non-conformist. So, just be sure to follow all these strict rules and you will be a total non-conformist." - Stevie T - ruclips.net/video/RJrBPEXJEOY/видео.html
Replace "black metal" with "Linux" and that's the vibe I get from this video.
use whatever you like it is linux lol.
besides looking for configurations directly on home is easier rather than going to .config then .application. It just feels like an extra step. If you ask me software configurations that people are not likely to change should be thrown in .config and rest in home directory for faster access like .vimrc.
I'm a rebel but I'm a rebel with standards 🤓
eh it just makes things easier for the end user imo
I wish more programs followed it but its not a big deal if not
who the hell say "merge request*
_Don't fix it if it a'nt broken_
GNU / Linux means freedom and liberty .... so if you do not want to move things around, you don't move them :D
say that to KDE dumping stuff on my .config ah they deserf they own .file
I once tried moving my dot files, but it did not work. 2 weeks after moving them my aunt died. A month later, I lost my job. I'm just sticking with the default for now.
so the guy who was telling us not to clutter the desktop is okay with cluttering the home folder? your desktop doesn't have any icons? what do you want, a gold star?
.config would be much better
well, if your config files go into ~/.config then you are polluting your ~/.config directory.
In other words, is a meaningless & empty argument because you should just use ls and not ls -a
Oh my home directory is a sin, a blasphemy. Basically I put my scripts and some programs like pfetch, gnome-randr, falstad circuit simulator and appnativefy and my bashrc pull things from there. That way it's just easier for me to move the enitre folder to multiple machines ARM and X86 and from that folder choose and put the correct bashrc in home and done
More freedom =/= good. Sometimes freedom needs to be controlled. They have the freedom to write the software they want, but they should not have the freedom to litter my home directory with shit.
GVDT