So I came from VoidLinux which served me superbly with i3 for some 6-7 years but back then, I had no GPU interests — now I do, so I got a new machine with NVIDIA and my previous smooth setup was no longer smooth at all. Leading me back to the land of “end-user-friendly, ready-to-go, batteries-included distros” where Garuda stood out to me, and delivered, too!
Well the questions: I see that ~/.bashrc is prepopulated with plenty of stuff. I’m not sure I’m digging this, plenty of it seems neat enough, but:
does this provide what other parts of your Garuda-specific tools/scripts/etc depend on? Such as upd etc? If I modify it to my taste, might an update in a month or in 2 years rewrite it?
I’m not sure if Arch is very different in this respect from most old-school distros, but might this not be better placed in, say, some /etc/profile.d/garuda-specific.sh (during installs/upgrades) for example? Would run upon login of every user, the scripts in that dir all do IIRC. And then the user’s home dir would be “truly hers/his/etc”, and should/would be empty post-install (apart from this BS of course )
Our default shell for pts is fish you will find it’s config files in ~/.config/fish/ dir I believe you can find out more about fish on your own online. bash is the login shell. and no, no updates will ever overwrite your bashrc if there ever are updates to bashrc or any other config files they are kept in /etc/skel left for users to decide if they wanna move to newer config or not.
Slightly offtopic I would suggest meld for comparing files. It’s great .
The bashrc and fish config loads fastfetch, sources find-the-command, initializes starship a cross terminal prompt and defines a bunch of aliases all of which can be removed and overwritten as user desires.
upd is an alias for the garuda-update shell script written by garuda devs to handle system wide updates and provide a lot of automatic fixes, which updating a rolling release might bring. For example if updating your system suddenly crashes it for everyone and it has a common fix like adding command line params (ibt=off an example) we can do that with garuda-update, it can also refresh mirrorlist and stuff.
So you can remove the rc file and still use garuda services.
@NaN is right, it’s just a default config with some stuff that is generally liked by the team and/or community. You can change it or delete it according to your preference. It gets deployed from /etc/skel during the installation, but won’t be modified at all after that unless you reset it on purpose.
This is just an alias; the actual command is garuda-update. Keep the alias if you’d like, it’s just a little shorter to type. If you delete it or change it you can still use the garuda-update command.
This would not be better because then the file will be overwritten during an upstream change. It is better to leave it in the user’s home directory where it can be changed according to their preference, without the user needing to worry about the settings being reset during a package update.
Not everyone is using Bash of course, but this whole philosophy would also apply to other configs like ~/.profile, ~/.zshrc, or ~/.config/fish/config.fish.