Dotfiles are important. We use them every day for storing configuration for all kinds of applications, knowingly or otherwise. You know the ones, hidden in your $HOME directory,
~/.ssh/
for your ssh keys, or~/.Xauthority
(whatever the heck that does). Something you may not know is these are legacy locations for configuration. Please do not copy their behaviour. Your application’s configuration may be the most important thing on a user’s machine. There are now standardised locations on major platforms for applications to store user-specific configuration.Your application should not be dumping random files into an unconfigurable location in the user’s home directory.
This speaks to my soul.
I get really mad about the dumping into %appdata% PROGRAMS ARE NOT SUPPOSED TO BE INSTALLED THERE!.
Chrome and wemoc does it because they want to get around the admin restrictions. It is awful and evil, and no full program should be allowed (not even an exe file) in the appdata folder. It was designed for other usages. Hopefully micrsoft will close this rediculou loophole that serves noone but the malware makers.
The problem is that Windows has no standard way to install applications without root. They could simply make a ~/apps (or ~/Program Files and ~/Program Files (x86) because they love duplicate standards with spaces in the standard paths, just to make things challenging in the terminal) folder, but haven’t done so for some reason.
I’ve learned all operating systems have their warts: windows, linux, macos, whatever. I don’t like the dotfile in home directory convention either. But just like the directory hierarchy that I tried to fix myself and failed due to software compatibility reasons, it doesn’t matter if we like them or not because realistically these unix conventions/standards are here to stay. They were decided before us and will outlast all of us. If we refuse to embrace/accept the ugly traits. well a clean new operating system designed with the benefit of hindsight that fixes these gripes sounds great in theory, but in practice the network effect limits the operating system choices for virtually all of us. I used to try new operating systems with great interest for how they could improve my experience, but honestly this behavior has faded with time since I couldn’t realistically use any of them as a daily driver.
I feel this would be less of an issue if there were a standard/common library for doing the whole check-XDG-or-fallback.
Yeap, and there’s Linux distros that don’t even ship with XDG utils or set this variables by default unless you install a desktop environment. Some desktop environments and package managers (like Flatpak) mess with these variables, and that lead to some very funny behavior in some scripts and applications.
In all fairness, dotfiles and the whole hidden folder concept should not even exist in the first place, IMHO.
Even with the mess, it’s still miles better than Windows registry, who, ironically, also has this problem with hidden folders.
Whenever a program puts their config in ANY other location, one of the 12, now 13 standards, IDC, I can’t find it, and it’s annoying. Just use dot files in the home directory. If you need more than one, use a dot directory. This is a non-issue. The bigger issues is the 700 standards, excuse me, 701 cause now there’s a new one.
The last thing in the world I want is to have to dig through ~/Library on macos, or worse, AppData on Windows. Why would anyone WANT THAT? You know what happens when you put the config in ~/? It’s easy to find. Let’s make it harder? WHY?
CaptainN-,
People are justified in wanting to fix the home directory as a dumping grounds mess, but none of them can do so effectively because they’re all too late
It would have been great if unix could have used a cleaner hierarchy right from the start, but they didn’t and it can’t be fixed today without causing more inconsistency
I’m retired now, but for my entire IT career (45 years) we’ve used these dot files. Every IT dept at every company on earth expects them to be there, and so do most programs. It would be very disruptive to change that.
I don’t see the problem. I know they are there, I know to look for them, when I don’t want to see them I turn off the ‘show hidden files’ option. I don’t see the problem.
darkoverlordofdata,
Yeah, I agree it’s too late to change these things now, but it was always messy to use the home directory as a dumping grounds. I don’t like it and would prefer a directory structure with better organization where files don’t need to be hidden because they’re not in a place where they’re in everyone’s way.
Also, the way dot files work on unix is annoying when using tools like tar / cp / rsync / etc. It’s way too easy to accidentally skip dot files because they behave exceptionally, which is an extremely bad design choice IMHO.
I’m not a fan of hiding files. IMO, if you need to hide files from yourself, you or your os/apps are doing something wrong. At the end of the day, it’s not an issue I lose any sleep over. One of the benefits of Linux is that it’s easy to restructure things to your liking. The irony is people complaining when you do. Just do whatever works best for you and your use-case, and let the background noise fade away.