Hello! I plan to switch over to Linux from Windows, I have had previous experience in using Linux related to a couple of servers and was therefore trying to find one that fits my desktop needs. I am currently considering NixOS and Arch, but are really intrigued by NixOS’s declarative approach. The maintainability is my concern, if every action needs some sort of user interaction through programming and debugging to run properly I might be better of using Arch. Therefore I had some questions I didn’t find on the internet or understand, so any help would be appreciated!!
If I were to download games (or whatever) from applications such as Steam or Heroic (from the Nix package manager) would they work out of the box? Say I want to download Hollow Knight, would ‘install’ then ‘play’ work?
Is everything in my NixOS configuration file? DE, applications, preferences, etc. In the sense that every program that my computer will ever run would have to be there, no weird program I could install and forget about for 5 years, just a clean system (from the perspective of the configuration file)?
Is performance an issue for games or other demanding applications such as rendering in Blender? In my understanding things is isolated similar to Docker containers, do that give overhead?
I need an application which is only provided as .deb and .rpm, could these files be modified to run on NixOS through a packaging file?
As someone who use a lot of creative programs (DaVinci Resolve, Blender, Krita, etc.) is there any immediate issues that comes to mind for people who need to do creative work in their workflows?
Thanks for reading through! Not very familiar with this, but hope to give it a try if it works for my needs:)
I’ve never used Arch so I can’t comment on this, but a friend of mine runs Nix on Arch instead of using NixOS. Something you could consider.
Ha, funny you should mention Hollow Knight I hadn’t played Hollow Knight until last year after I installed NixOS. Played on Steam on NixOS and got all achievements. No issues. And since Proton works so well, you can even install mods that are only built for Windows; I’ve installed a debug mod for Silksong, for instance.
You can put as much or as little into your NixOS configuration as you want. It’s really a sliding scale. You could put everything in there, but you really wouldn’t want to; for instance, as mentioned above, Steam manages the set of games you have installed. You wouldn’t list that set of games directly in your NixOS config. And you can always put random files onto your computer. But NixOS gives you the ability to manage everything declaratively.
This is not the case. Nix uses sandboxing for building software, but when you run it, it’s not sandboxed unless the program you’re running specifically uses a sandbox.
Never tried it. I wouldn’t be too surprised, but it’s not a typical use case as far as I know.
Can’t comment on this, but obviously you’d expect popular programs like those to work pretty well if you just get them from Nixpkgs. Especially if you’re using NixOS as opposed to running Nix on a different distro.
Not necessary. Steam games aren’t in the configuration file for example.
If the software has the needed support it should work without overhead. (I am thinking about cuda support for ollama)
That isn’t the case.
That could become tricky. Especially if you are new to nixos. If you need a lot of software that isn’t in the nixpkgs i wouldn’t use nixos. Maybe try arch with nix installed and there you can use home manager to manage nix packages/ configurations. If you feel secure enough you can switch to nixos. (It should be fast if you have populated your home manager file on arch)
If you feel comfortable writing your own derivations, use dpkg-deb -x for .deb or rpmextract for .rpm, then you can do typical autoPatchelfHook/substituteInPlace/patchShebangs workflows. Search nixpkgs for examples, GitHub code search is one of your most powerful tools when learning Nix.
Distrobox is also quite good in these scenarios if you don’t feel comfortable writing your own derivation for something, as you can just make an Arch or Fedora container with tons of host integration and imperatively install stuff there.
Not quite, if you set up Impermanence then you can get this, but that’s rather advanced. It still will be a lot cleaner than most long-running installs of typical desktop distros, though.
As others have said, steam and heroic-based games just work™.
Other games (and unpackaged software) might be a bit trickier, ironically especially ones with native Linux support. For the most part everything is still possible, since at the end of the day it’s just a case of launching a binary with the Linux kernel, just need to supply the libraries for it to work, and make sure it doesn’t have any bugs that prevent it from working when certain FHS dirs aren’t there. There are many approaches to this, it’s just not always easy.
Sometimes, you can find more information in the wiki
For steam, after installing it via nixos (programs.steam.enable = true;) you just use it like in windows. I would say it easier to use in nixos than in other linux distros, as you can easily enable protontricks, gamemode and protonup-qt.
You can find quite a complete database (with user reports) here: