One would think so but then you find out even more issues crop up with certain software.. Maybe things have changed but I found that anything that relied on opengl and such would need special workarounds to run on non-NixOS when I tried.
This was perhaps only an issue with launching from nix shell.. but it caused enough friction for me that I ended up switching. It's much easier to use, e.g., steam-run/appimage-run/nix-alien/plain-ole-npx for all special cases on NixOS than the vice-versa issues on non-NixOS imho.
I feel like the Atomic Linux approach is already a better fit for desktop usage. Flatpaks for most user software along with other options to install packages with different methods if there are special/legacy requirements.
I think the only negative aspect of the approach is the sheer quantity [1] of package installation options available.
The whole point of NixOS is to make packages a special case of configuration. Running nix elsewhere doesn't do that and for configuration there are more mature tools. It would be like using Ansible(/Salt/Puppet or other similar tools) without any of the upside those have. Don't be afraid to use those tools though, they're great.
> You'd avoid the friction of having to deal with software that doesn't 'just work' on NixOS
I'm not sure what type of software you're talking about, but Linux native software usually works with 'steam-run', which is really the "pretend to be Ubuntu" command.
A lot of people say this, but honestly this kind of sounds like someone who doesn't understand the ethos around NixOS. NixOS isn't just a vanilla Linux distro with Nix preinstalled
The whole point of NixOS is that the entire system is managed by Nix. The entirety of everything is declarative in your configuration file(s) and the entire system can consistently be rebuilt from the configuration. The root system is immutable after being built and as such it is trivial to snapshot.
This isn't just a trivial implementation detail, it changes the entire way that you use the computer. Boot parameters, drivers, installed programs, everything is done via configuration, as opposed to installing Nix on Ubuntu where most stuff is still managed haphazardly and mutably.
You might not think that's good or worth it, but I dispute the notion that installing Nix on a non-NixOS distro gives you the "best of both worlds". They're very different things.
Interesting to see someone writing a blog post and explaining issues they've encountered with their laptop, I participate in the official repository of Nix configurations covering these kinds of hardware quirks [1].
I also have a InfinityBook Pro 14 Gen 9 (Intel Version) and began adding support for this laptop in NixOS Hardware in early March of this year, including settings sane defaults, loading drivers, and even refactoring/backporting modules for other InfinityBook versions.
Great work! I love that NixOS makes encoding these settings so easy. 'Sadly', my T14 Gen 5 AMD worked out of the box with NixOS, so nothing to contribute :). (I see that this model is in the repo with minimal configuration.)
I wonder if Nix is finally OK to use with LLMs. Used to be such a pain and just hours of googling to make simple things work. I think even ChatGPT didn't work well at the time for me, but now at least the try-and-fail can be done by the LLM itself.
I'm traveling for the next couple weeks and don't want to take my home or work laptop, so I'm setting up a nice, old Chromebook with NixOS. I've dabbled with NixOS before. But this time I have been using Claude Code to set it up, and it's really good at it. Makes it painless, even without being very experienced with NixOS.
I've realized most of my blog post is not really about NixOS, it's just about this particular TUXEDO laptop requiring special tweaks to work properly. I've set up Debian 13 with Nix (plus Home Manager) in a VM to try it out and have realized that on the real laptop I would need to perform the same tweaks: install special drivers, install the TUXEDO Control Center (albeit using a supported .deb), and add those same kernel params. The only "care-free" option would be using TUXEDO OS, which I could explore. I've run NixOS on e.g. an AMD ThinkPad T14 and it was seamless, with no tweaks needed.
I suppose using something other than NixOS would indeed make some things easier (in my case Vanta, `pinentry` programs, Playwright and Cypress) and would perhaps let me live a more hands-off experience. I currently run `nix flake update` on my system way too often... but other than that, NixOS is not really getting in the way, at least as far as using this laptop goes.
It's rather bleak that these special "Linux computers" require this much fiddling. None of my laptops are sold as running Linux but all of them were easier to set up than this (only the MacBook Air 2013 required anything at all other than running the Ubuntu installer and clicking "yes").
16 comments
[ 0.17 ms ] story [ 36.6 ms ] threadYou'd avoid the friction of having to deal with software that doesn't 'just work' on NixOS, but still be able to make use of things like devenv.
Though, an understated benefit from using NixOS is that the specific fixes taken are now available "as code".
This was perhaps only an issue with launching from nix shell.. but it caused enough friction for me that I ended up switching. It's much easier to use, e.g., steam-run/appimage-run/nix-alien/plain-ole-npx for all special cases on NixOS than the vice-versa issues on non-NixOS imho.
I think the only negative aspect of the approach is the sheer quantity [1] of package installation options available.
[1] https://docs.bazzite.gg/Installing_and_Managing_Software/
[1] https://guix.gnu.org/
I'm not sure what type of software you're talking about, but Linux native software usually works with 'steam-run', which is really the "pretend to be Ubuntu" command.
The whole point of NixOS is that the entire system is managed by Nix. The entirety of everything is declarative in your configuration file(s) and the entire system can consistently be rebuilt from the configuration. The root system is immutable after being built and as such it is trivial to snapshot.
This isn't just a trivial implementation detail, it changes the entire way that you use the computer. Boot parameters, drivers, installed programs, everything is done via configuration, as opposed to installing Nix on Ubuntu where most stuff is still managed haphazardly and mutably.
You might not think that's good or worth it, but I dispute the notion that installing Nix on a non-NixOS distro gives you the "best of both worlds". They're very different things.
I also have a InfinityBook Pro 14 Gen 9 (Intel Version) and began adding support for this laptop in NixOS Hardware in early March of this year, including settings sane defaults, loading drivers, and even refactoring/backporting modules for other InfinityBook versions.
[1]: https://github.com/NixOS/nixos-hardware/tree/master/tuxedo/i...
Why does a Linux laptop brand ship with an Ethernet NIC (Motorcomm YT6801) that requires an out-of-tree driver? (And a hack to fix ACPI issues.)
I think I know the answer, but...
I've realized most of my blog post is not really about NixOS, it's just about this particular TUXEDO laptop requiring special tweaks to work properly. I've set up Debian 13 with Nix (plus Home Manager) in a VM to try it out and have realized that on the real laptop I would need to perform the same tweaks: install special drivers, install the TUXEDO Control Center (albeit using a supported .deb), and add those same kernel params. The only "care-free" option would be using TUXEDO OS, which I could explore. I've run NixOS on e.g. an AMD ThinkPad T14 and it was seamless, with no tweaks needed.
I suppose using something other than NixOS would indeed make some things easier (in my case Vanta, `pinentry` programs, Playwright and Cypress) and would perhaps let me live a more hands-off experience. I currently run `nix flake update` on my system way too often... but other than that, NixOS is not really getting in the way, at least as far as using this laptop goes.