My friend, a generally non-technical person is looking for a good gaming distro. He has been daily driving Windows and OS X before, his main motivation for switching Linux is to streamline his contributions to a game development project we have, that is largely Linux-based (we use Nix for dev environments and build automation).
The only Linux distro I've ever used for gaming is SteamOS, and all my other experience is in the Nix/Arch domain, so I am not sure what to recommend to my friend.
As I mentioned, the only hard requirement we have is a possibility to sustainably use Nix package manager with experimental functions (command, flakes), - and I am willing to help my friend setting it all up. But I also would like him to be able to use the OS for gaming whilst experiencing only the expected and acceptable amounts of pain.
So far we have Nobara and Chimera on our radar. Is there something you can recommend? Any advice in general would be helpful, thanks in advance!
TLDR: You don't need a rolling release distro like Arch or its derivatives or any "gaming" distro for gaming anymore.
Many experiments have shown that these distros specifically "made for gaming" have no real advantages. If your friend is a beginner, I would absolutely not recommend Arch Linux, but rather Linux Mint. I have recently found this experiment: https://youtu.be/UtXw9on6qs4 (table at the end of the video) that supports this recommendation.
I'd still recommend a bleeding edge distro if the friend in question has recent hardware and/or likes to play games on release. It doesn't have to be arch though, and you can probably grab a recent kernel on Mint too if necessary.
Thanks for sharing that video. It's one of the most ambitious ones I've seen out there. However, if I understood correctly, only average fps is compared right? So not the (more important) 1% or 0.1% lows.
I game on Linux mint and have had very little issues out of the box. Worth noting its super easy to game on and steam is seamless. Not a hard distro to learn with tons of forums and updates. Lightweight and overall no major complaints as I only broke my system myself tinkering with things I wanted to tweak. I've always fixed it relatively easily and I don't know much about terminal commands. Tons of info online, mostly copy and paste. Cheers.
None of the desktop environments included with Linux Mint (really) support Wayland. X11 allows any app to keylog easily. X11 is quite bad for Security. Cinnamon has experimental support.
I would recommend Bazzite or Aurora/ Bluefin. Bluefin is Gnome, and Aurora is KDE.
Both Bazzite and Bluefin are very similar.
Bazzite is gaming focused, and the other one is more general purpose, but you can use them interchangeably and also rebase from one to the other.
They are the poster childs of the uBlue project, which uses, modifies and redistributes Fedora Silverblue images.
They both are part of the Fedora Atomic family, which makes them nearly indestructible, convenient and secure.
They focus a lot on containerised workflows, e.g. Distrobox, Flatpak, Homebrew, and, as you mentioned, Nix. They all come pre-installed, and if they don't work ootb (e.g. Nix), they are just one ujust command away.
I have used both over the past year and I couldn't be more happy. Give them a try!
If you're on Nvidia, go with something like Nobara or Bazzite. Nvidia's linux drivers are in flux right now (esync/wayland), you want a distro that is aggressively chasing the latest drivers but lets you take a step back with atomic updates.
If you want an Arch-based gaming distro there is Garuda (also a non heavily-themed version). I used Garuda before switching to plain Arch. It ran pretty well and I really liked the btrfs filesystem and the snapshots. It meant I could easily restore a backup of my system if I manage to break it. Which I did a few times.
Plain devuan or debian is fine, assuming you do a bit of configuring of kde or whatever before handing it over to the user. No need to use a super obscure fork, as those compound trust issues, and you have to wait for your downstream distro to sync with upstream, even if upstream is already up to date.