I’m planning to install Arch Linux for the first time. Any recommendations on setup, must-have applications, or best practices? Also, what’s something you wish you knew before switching to Arch?
Arch was the distro that got me to stop distro-hopping. It's stable, it has a rolling release, and it's mine (as in, customizable, manageable).
I guess, if there's anything I wish I'd known off the bat is that the Arch documentation is probably the best available. So much so, a LOT of it applies to Linux in general and not strictly to Arch.
If something breaks, READ the error messages, understand each component, and check the wiki, there's a very high chance the troubleshooting section has the exact issue laid out.
I'm using manjaro-i3 for a pretty long time now (6-7 years) and I'm fully satisfied, I won't change any time soon. It was not very difficult at first, even though I wasn't a linux user when I moved to manjaro. I would just maybe move to sway instead of i3 which seems probably more modern now.
EndeavourOS is arch based with less hassle. Its more than good enough for most people. don't get trapped by minimal install bs and other non-consequential opinionative approaches to software.
Select btrfs as your file system and use timeshift. If you fuck up or if your updates fuck something up. There are other ways of doing rollbacks and this is just what I became familiar with. I've used it two times in the past year, its worth it.
Bookmark the archwiki, 99% of the time the answer to the questions of 'how to' and 'can i' are in there
There are multiple DE's. Pick what works best for you before you toss that bootable USB installer. You of course can switch later down the line, but experimenting now will save you config troubleshooting later, just stick to what feels/looks best. Look around on the web to see what appeals to your workflow. There are others like Cosmic and Wayland that are not included in the arch gui installer, in which case, follow the install procedures for the DE you want and remove the old ones to avoid config overlap.
Check ArchLinux.org for news before you kick off an update. It's got an RSS feed and a mailing list if that helps.
Read the Wiki, and turn to it first for any issues you have.
This one may be a special "me" problem, but if you're manually interacting with wpa_supplicant, stop and go read the Networking page in the Wiki again.
Learn how to use journalctl (at least superficially) before something goes wrong.
Generally you want to restart after an update to the kernel or graphics drivers or things start degrading strangely.
Be aware that some apps will install fine from the arch repo but some others will be better installed from flatpack (e.g. inkscape) or directly as an executable (e.g. Godot).
On steam you may need to specify your video card if you run an AMD card using the DRI prime command. Some games will require -vulkan to use vulkan rather than game settings.
Note: experience may vary by compositor (xorg/wayland), desktop environment, drivers, system hardware, and your willingness to dive into details.
The whole arch advantage (imo) is that you have a full understanding of what's in your machine and how it works.
As a beginner you won't understand and that's okay, but you should try different things (or don't and just focus on what works for you) as long as the end result is you doing: pacman -Qe and going "hmm that makes sense", and imo the undesired result is going "hmm what do these all do, why do I have 2000+ packages"
Do yourself a favour and install it on a virtual machine first. Screwing up an install on Arch is frighteningly easy. The Arch Wiki is your friend, use it. Also, read the installation instructions before you begin the installation, not during. If this sounds like too much of a headache (understandably so), then give EndeavourOS a whirl.
archinstall is one of the better/best distro installs around - it just does what it says it will and is pretty intuitive
LUKS encryption is easy to set up in archinstall - strongly recommend encrypting your root partition if you have anything remotely sensitive on your system
If you do use encryption but don't like typing the unlock password every reboot, you can use tpm to unlock - yes, this is less secure than requiring the unlock password every time you reboot, but LUKS + TPM unlock is still MUCH better than an unencrypted drive just sitting there
sbctl is a good tool for secure boot - If you want to get more secure, locking down bios with an admin password, turning on secure boot, sbctl works really well and is pretty easy to use. I would suggest reading up to understand what it's doing before just installing/configuring/using it
Stick to the many guides available and you will be fine. One thing which I either missed or was glossed over in most guides is to install the Linux-firmware package. It is considered an "optional" package, but on all the machines I have ever used I have run into issues without it.
Install it in a VM. Create snapshots. When you fuck it up then revert the snapshot.
Once you're decent at figuring out what to and not to do then try to get proficient at file system snapshots so you can do the same thing more or less on bare metal.
I didn't read the documentation so I didn't know you weren't supposed to use sudo with yay.
-Ss can be added to pacman to search for packages. Pretty useful if you don't want to DuckDuckGo them every time.
As for applications one neat one I don't see recommended very often is xkill. You can use it to kill applications kind of like you would with the task manager in Windows. htop is probably a closer comparison to the task manager in general though.
There are a lot of Arch-based distros that are incredibly easy to install if you want a very easy setup process that doesn't involve a lot of terminal work.
I've been using Arch off and on for a long time, since it was horrible to install and updates did often break stuff. This is not the case now 🖖, and the Arch wiki is your friend.
Consider using btrfs with automated snapshots using yabsnap. It includes a configurable pacman hook in case something goes awry. Also just nice to have snapshots in case you accidentally delete a file or something.
Use paru, an AUR helper. Good for random things which may not be officially packaged. Expect to run into failures, and learn to diagnose them. Sometimes it's just a new dependency the packager missed. For both paru and pacman, clean the cache once in a while or automatically, or things will get out of hand.
Do the "manual" setup, at least the first time, so you have an idea what's going on. Don't forget to install essential stuff like iwd (if needed) when you do pacstrap, or else you might have to boot from live again to fix it. Once you're done, take care to follow the important post install steps, like setting up a user with sudo, a firewall, sshd, etc.
As for general setup, I've recently embraced systemd-networkd and systemd-resolved. Might be worth giving it a shot, since there is no default network manager like application. You can even convert all your wireguard client configs into networkd interfaces.
Best practice: Keep a personal log of various tweaks and things you've configured, and set up automated backups (more of general guidance).
Use btrfs with snapshots. Verify you know how to boot into snapshot after a failed update and repair the system. This is the most important thing and lets you experiment much more freely.
For starts, read the wiki. Specifically, read the installation guide at least twice to get a feel for how it works and what the Arch vibe is like. This is also your chance to figure out just what you want to do. Do you want to use GRUB or UEFI? Which sounds like a better fit? What filesystem? What do you want to run? mdadm or not? A little bit of planning and reading is better than reinstalling half a dozen times (ask me how I know...)
Must-have applications? Screen or tmux. SSH. Whatever shell you're comfortable with (bash is how I roll, but you might be a fan of fish).
Start from the install guide on the wiki. It'll branch out fast and just follow all the links and read. If something goes wrong, check if you missed something on the wiki. It's an amazing resource.
Also, look up your hardware on the wiki before you start.
It doesn't hurt to have the LTS kernel installed as a backup option (assuming you use the standard kernel as your chosen default) in case you update to a newer kernel version and a driver here or there breaks. It's happened to me on Arch a few times. One of them completely borked my internet connection, the other one would freeze any game I played via WINE/Proton because I didn't have resize BAR enabled in the BIOS. Sometimes switching to the LTS kernel can get around these temporary hiccups, at least until the maintainers fix those issues in the next kernel version.
The AUR is not vetted as much as the main package repositories, as it's mostly community-made packages. Don't install AUR packages you don't 100% trust. Always check the PKGBUILD if you're paranoid.
Make backups of your important files, or use a separate home partition. When I used arch, more than once I had a bricked install after doing updates. The last straw for me was when after updating my network completely went out. I switched to fedora and haven't had issues for 2+ years. Also, (this goes for every distro, but more so arch than others) NEVER update if you don't have at least some time in front of you in case something happens. Arch was definitely a good learning experience and it was fun at first tweaking everything, but the drawbacks in stability got a bit old after a while. The AUR is a godsend and it's the best thing ever, you should also be using an AUR helper like Yay to make your life easier.
The archinstaller script is pretty good if you're just needing a basic setup. Ive been really happy with a btrfs partion from the recommended disk layout, then using btrfs snapshots + grub bootloader to load from snapshots. You can also create a hook on pacman so that you create a snapshot when you upgrade packages.
Since you didn't mention your experience, id recommend looking at the various desktop environments so you know which one to pick during install. You can ofc change later.
And read the arch docs. They are very good and have a lot of time invested into them. If you find you don't have the patience to read them then you're probably going to want to look at a different OS. Good luck!
And when people tell you that you shouldn't use aur helpers like yay to blindly install/upgrade aur packages, there's a reason for it. Read the PKGBUILDs.
Those who are (wisely) suggesting snapshots, do you guys use a different partitions for data and OS? Because if you do revert to an older snapshot after a while, you'd loose new data, too (unless you recover it from current state)?