Is anyone using NixOS as their daily driver?

I’m currently running Arch and it’s great, but I’m noticing I’m not staying on the ball in regards to updates. I’ve been reading a bit about Nix and NixOS and thinking of trying it as my daily driver. I’ve got a Lenovo x1 xtreme laptop, I don’t do much gaming (except OSRS), use firefox, jetbrains stuff, bitwarden, remmina, obsidian, and docker.

Is anyone running NixOS as their daily? How are you liking it and are there any pitfalls / stuff you wish you knew before?

pimeys,
@pimeys@lemmy.nauk.io avatar

I’ve been running NixOS for the past four years in all my computers. It’s really, really the end game of Linux distributions for me. But it’s not for everybody. The Nix language can be a tough thing to learn, if you’re not a programmer and haven’t done anything with lazy functional languages before. It’s a dynamic language, with not super great documentation for practical things and missing a good language server that would let you to jump to definitions when learning how nixpkgs work and how to build things.

Also, what I think is a serious problem, is how flakes are not yet enabled in the default installation. So first you learn with the basic template, and some helpful person comes talking about how great flakes are, and in a few weeks you might have written your own system flake finally and got it working. Flakes are really important to understand as soon as possible, because with them you get the lock file that gives you real reproducibility between computers and full control on which version of packages you get.

But, when you learn all that, and get your company to go full-on with nix, having flakes in all projects, it’s the best programmer’s operating system out there. Here’s my config to steal stuff.

theshatterstone54,

I was just going through the README and I’m definitely stealing the idea chowning the /etc/nixos dir and symlinking it to $HOME/.config/nixpkgs. How did I not think of this myself?

midas,

Thanks for the config! I’m a developer and that also contributes to my interest - being able to express my configuration like that. Your config is a bit overwhelming, but in a good way, I’ve created a git repo for myself to start off and using yours as a reference since you seem to do a lot of cool shit. Am going to start off with flakes.

Not sure if I’m going to jump in with both feet yet (since apart from my work laptop and servers, this is my only machine) but I am going to journey into writing a conifguration properly and testing it on a VM. Already using nix packages on my Arch install.

flashgnash,

Have been using NixOS as my sole os for a month or so and have zero complaints

It will quite frequently make installing and configuring things that could otherwise be a nightmare on other distros absolutely effortless (to switch DE you change one line of code, for instance)

On occasion however it makes things harder than other distros because you can’t really apply stack overflow questions, differentiation etc for other distros to it as well

Generally speaking 90% of what I’ve wanted to do with it has had a built in option or package that was a one or two line change to a file and a command to rebuild

Also, as long as you install steam via the built in option gaming works perfectly on it for me

Decker108,

I had a colleague who ran NixOS on his work laptop and loved it. He even held a presentation to the rest of the engineering dept about it. Then IT contacted him and said company policy only allowed running Ubuntu and he had to reinstall.

He resigned shortly after.

yum13241,

Cuz fuck Ubuntu and fuck corporate policies about what OS I need to use.

SpicyLiquidJar,

Genuinely curious: why fuck Ubuntu?

yum13241,

Shady stuff Canonical did, crappy point release model (2 years? Even 6 months is a bit of a stretch), and especially snaps.

Drito,

I tried Nixos but it was overkill for my desktop usage. The learning time is a cost but also, on my old laptop, there is a noticeable performance loss comparing to arch. The benefits is not enough for my usecase. I prefer dealing with arch shitty updates.

robin,

I installed it last week. It’s been pretty chill so far. I love the fact that my system is fully reproducible and version managed by git. Everything I need has been available. It feels a bit like the AUR to me: I need something, I look in nixpkgs and it’s already there.

One thing I do find annoying is dependencies for work projects. It took me about an hour to figure out that some library our rust project depended on, expected some specific version of gdk or something, and that’s why the project wouldn’t compile. But apart from that, very nice and would definitely recommend!

charje,

I’ve been using Guix system for a couple years and am really liking it. I got a new computer and put popos on it for the seamless Nvidia drivers, but I still have guix package manager and Guix system on other computers.

iopq,

You can combine stable and unstable packages since they can have different dependencies

Given this you can have the base system be running the unstable versions, while holding back things like wine from upgrading

Ultra980,

I’m using NixOS, and I have a few tips:

  1. Use flakes
  2. If it ain’t working, steam-run it.
flashgnash,

Daily driving it myself but have yet to really use flakes. What’s the benefit of them?

Ultra980,

They’re more reproducible, they make dependency management easier, the commands you use with them are easier to use and more readable, and it’s easier to have multiple packages/systems/home-manager profiles in a single git repo. They also make version management easier

flashgnash,

I’ve heard of the advantages of using them but still not entirely sure what they’re actually used for? What situation would call for using a flake?

Ultra980,

For distributing software (nixpkgs is a flake and many projects have flakes), replacing channels (again, nixpkgs is a flake) or managing configs (check out my repo)

flashgnash,

So the only use of flakes is for packaging software? Haven’t started packaging software for NixOS yet only managing my PC

iopq,

No, it’s also for your system to use locked versions of deps, so if you git clone you get a flakes.lock as well with all the versions. When you install from a git repo you get the same system again

flashgnash,

So it’s a way to ensure you always get the exact same version of dependencies?

iopq,

Yes, you get the same version of deps and the actual software too. For example, wine breaks my game from time to time, but if I got clone my setup I will get the exact version of wine that I use that works, not the latest unstable version

ryn,

right here

lloram239, (edited )

First up, forget about install NixOS as a full distribution for the moment, instead just install the Nix packagemanager on your current system. That gives you like a quick&easy way to enjoy most of the benefits of NixOS without replacing what you already have up&running.

As for things to note:

  • nix-command and flakes are the new way of doing things, but still not enabled by default, this can make some old documentation a bit confusing, as this update completely changes the CLI interface, just enable them and ignore everything that keeps taking about the old `nix-env"
  • you’ll be downloading a lot, NixOS has no binary compatibility for libraries, meaning, if a library changes, everything that depended on it changes as well, this can cause seemingly trivial updates to balloon into 30GB downloads
  • expect your installation to be bigger than usual, as upgrades will keep all the old software around, i.e. you can just boot into the previous version with a single click until you nix-collect-garbage -d all the old stuff, on systems with 32GB flash you have to be a bit careful to not run out of storage
  • no LTS releases, you’ll have to update every six months
  • almost no compatibility to third party software by default, /bin/sh and /usr/bin/env are the only thing it has in common with the normal FHS file system layout that everybody else is using, so expect every install.sh to fail, there are of course ways around it (e.g. buildFHSEnv), but they require some extra effort
  • all system configuration happens in /etc/nixos/, the rest of /etc is just read-only symlinks
  • .nix configuration file syntax is a lazy evaluated functional language, that looks somewhat similar to JSON, it’s quite a simple language, but not one that you can easily figure out just by looking at it (e.g. “:” defines a function, functions can only have one argument, everything else is done with currying), read the manual
  • search.nixos.org/options will be your best friend and nix repl followed by :l to tab-complete your way through the Nix structure

Overall I am very happy with NixOS. Switching to NixOS was the first time in a decade that Linux started to be fun again. It comes with an enormous package collection. Building your own packages is trivial. It is possible to upgrade, downgrade or just run multiple versions in parallel, so no forced-upgrades as on other distributions. Also the Nix package manager can work as first-class build system, meaning git repositories can be treated as full packages (assuming they contain a flake.nix), packages by the distribution no longer have to exist as this weird appendage that has to exist independently from Upstream.

snek_boi,

I’ve been daily driving it for six months now. I wish I would’ve know the Nix language well enough before jumping in to attempt declarative configurations. Not that it’s hard.

I have had issues that have had me temporarily try Pop or Debian, but dependency hell is real and the Nix community is wonderful. I have been able to solve every single one of my handful of problems in less than a day or two (sometimes in minutes) with the community.

Edit: oh yeah, and documentation is not great… Again, the community has been my source of answers to many questions.

As many others have said, it’s hard to imagine life without NixOS once you get the hang of it.

quentangle,

Another daily driver user here (for about a year now). NixOS on all hardware that can run it (desktop, servers). Nix-darwin/home-manager/nix-on-droid everywhere else.

I don’t see myself going back to anything else, it’s great.

flashgnash,

Just having a look at nix on droid, from what I gather it’s basically just termux but with the nix package manager right?

quentangle,

More or less, yep. It is integrated well though. For instance, you configure the terminal font with your nix config instead of setting it in the termux theme app.

flashgnash,

Oh sweet, would I be a complete maniac for trying to run a DE with and xrdping in from Android as I’ve heard people do with base termux sometimes?

quentangle,

I haven’t tried doing that, but it would definitely be possible. You won’t have out of the box support for X-related configuration like you do on NixOS though.

If you give it a shot, please let me know how you go.

flashgnash,

Ahh I’m not sure how I’d do it without being able to use the nix config to be honest was kinda hoping to just use the normal settings for enabling DEs

Might still have a crack at it but NixOS might not be the right tool for the job

axelf,
@axelf@lemmy.ml avatar

I have been a very happy NixOS user for 2 1/2 years now! (github.com/axelf4/nixos-config)

wewbull,

404

The biggest barrier for me is the language. It makes no sense to me and I’m a Haskell (as well as others) coder. Also the documentation is non-existent.

sibloure,

The right parenthesis got caught in the link

theshatterstone54,

Just delete the right ) and it will work. It got caught in the link

Cralex,

I wanted to install it on my Pinebook Pro (AARCH64, with Tow-Boot installed to SPI) but I haven’t gotten it working.

pr06lefs,

Regular nixos user here. Also failed on pinebook nixos, then bricked it trying to install something else. Ah well, seemed like it would be a cool machine.

oldfart,

SPI flash bricked the machine? That should be a fairly easy repair for your local electronics shop, if you tell them what file to flash there

pr06lefs,

Its been a while since I did it. I needed towboot but you couldn’t install that with the default distro, then I tried installing another distro and now it doesn’t even show an LED when I plug it in. Is it flash, is it something else? Dunno. Just hasn’t been enough of a priority for me to spend more time on it.

WilfordGrimley,

Same boat here.

I think it has to do with the config file for firmware.

acow,

Daily use for several years. Nix the package manager has been the bigger impact for me as I use multiple systems, and they’re not all running NixOS, but my nix configs work across them all. As for NixOS, I would not necessarily recommend it for a non-programmer, but if you’ve ever found yourself thinking about how operating systems are assembled from parts, then NixOS could be a very good fit for you.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • linux@lemmy.ml
  • GTA5RPClips
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • Durango
  • cubers
  • Youngstown
  • mdbf
  • slotface
  • rosin
  • ngwrru68w68
  • kavyap
  • tacticalgear
  • ethstaker
  • JUstTest
  • InstantRegret
  • Leos
  • normalnudes
  • everett
  • khanakhh
  • osvaldo12
  • cisconetworking
  • modclub
  • anitta
  • tester
  • megavids
  • provamag3
  • lostlight
  • All magazines