Just want to point out that, while it's a mess in practice, there is a correct place for these files and the problem is that many applications ignore it. Configuration files should be written to an aptly named folder in ~/.config/ (or more precisely, in $XDG_CONFIG_HOME which is set to ~/.config/ in most systems). ~/.local/share/ (or $XDG_DATA_HOME, respectively) is for user data, which is different from config.
NixOS and its declarative approach irreversibly changed the way I think about system configuration and maintenance. Home manager and flakes are really important puzzle pieces in that as well.
The steam deck is an amazingly well thought-out Linux computer that just anybody can use intuitively.
From a UX standpoint, I love being able to remap keys on the system level with Interception Tools. (e.g. CapsLock is Esc if pressed and Ctrl if held on all my hardware for all users.)
Not exactly what you are looking for, but modern shells like fish or zsh (probably?) are good at suggesting completions from history. fzf is another great tool for that. Both are super useful for remembering and repeating commands.
So all you need to do is setup btrfs at install time and then configure Snapper. You should consider mounting /home from its own subvolume. That way you can roll back the system but keep all your files.
There are a lot of other things to consider when setting up btrfs, so make sure you read the docs. (A lot of the config can changed at a later point.)
That depends on your threat model. It's a useful strategy to hide your traffic from your local network admin (e.g. at the workplace) and your ISP, but it's a bad strategy for hiding your identity from the sites you're visiting.
Fedora plus rpm-fusion (rather than stock Fedora). I agree that this works really well for beginners, but the extra step of adding rpm-fusion holds some potential for frustration.
Pretty sure codeberg.org uses forgejo under the hood.
Another very solid option for self hosting is just adding a git user to a server with git installed, initiate bare repositories there, then talk to them with git@example.com:repo-name
Just want to point out that, while it's a mess in practice, there is a correct place for these files and the problem is that many applications ignore it. Configuration files should be written to an aptly named folder in ~/.config/ (or more precisely, in $XDG_CONFIG_HOME which is set to ~/.config/ in most systems). ~/.local/share/ (or $XDG_DATA_HOME, respectively) is for user data, which is different from config.