I Used NixOS For 9 Months - Long Term Review

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 386

  • @TheLinuxCast
    @TheLinuxCast  4 місяці тому +18

    I publish a weekly exclusive podcast for my patrons! Check it out patreon.com/thelinuxcast
    0:00 Intro
    0:40 Spoiler: It's Good
    1:03 A Real Linux Distro
    2:55 The NixOS Configuration File
    11:02 Software
    13:37 What is a Flake?
    20:50 Home Manager
    23:34 Documentation
    26:27 My Thoughts
    34:58 Wrapping Up

  • @BlackTakGolD
    @BlackTakGolD 4 місяці тому +325

    Coming from windows, I always thought Linux was how NixOS works, you declare things and make a fixed config and tinker, swap stuff there, test stuff there, rollback, etc., but when I switched to Ubuntu, Manjaro and PopOS, it was unexpectedly unsystematic, it was basically how I approached windows before, download some apps, use the CMD for some stuff when needed and then get unpredictable behavior over time -- I'm not a technical user of NixOS by any means, but the level of systematic configurability you get, allows for this predictability I so desired.

    • @seritogakko5920
      @seritogakko5920 4 місяці тому +20

      Also, when switching from Windows, I was waiting for trouble-free updates, NixOS allows you to do daily background updates with automatic reboot at night, it’s been working for me since february and there are no problems

    • @seritogakko5920
      @seritogakko5920 4 місяці тому +4

      no dependency problems by design

    • @cejannuzi
      @cejannuzi 4 місяці тому +14

      RIght because billions of Windows users dream about declaring and fixing their configuration file. LOL.

    • @lainalien
      @lainalien 4 місяці тому +44

      @@cejannuzi "this is my experience" "so ur saying this is everyone's experience? guffaw"

    • @noahjoyner8232
      @noahjoyner8232 4 місяці тому

      @@seritogakko5920 i have finally hit my first nix is issue and its really not a nix issue but software compatibility issue

  • @vimjoyer
    @vimjoyer 4 місяці тому +197

    Great video! NixOS is the best 💪
    Your explanation of flakes is somewhat misleading. Flakes aren't an alternative to NixOS configurations; they just wrap any Nix code (configurations, shells, or even simple expressions like 5 + 5) and manage external dependencies. But flakes are indeed very very very hard to explain, so that's fine.

    • @TheLinuxCast
      @TheLinuxCast  4 місяці тому +54

      See, this is what I'm saying. Ask three people, get three different explanations. But I know I didn't do a great job explaining flakes. It's definitely the weakest part for me

    • @reo101
      @reo101 4 місяці тому +10

      There is literally one definition: a bunch of nix code + its versioned inputs/dependencies. The "bunch of nix code" can abide by a "flake schema" (bringing some consistency) (optionally abiding, no one is forcing you, it's just that some tooling expects it to work properly, like `nix flake show`) like putting nixos configurations (which are, again, just a "bunch of nix code" themselves) in `outputs.nixosConfigurations.${system}.${name}` (for some `system` and `name`), packages in `...packages...`, etc.

    • @reo101
      @reo101 4 місяці тому +4

      I don't want to sound arrogant, but the beauty is precisely in the simplicity/abstractness. Doesn't need to be more complex. You need to teach it to someone just as a configuration.nix alternative? Show them simple definition + examples, there really isn't much not to get (as in understand) here

    • @MyAmazingUsername
      @MyAmazingUsername 4 місяці тому +10

      ​@@reo101 You can explain it much simpler: It's reusable nix configuration fragments.

    • @pajn
      @pajn 4 місяці тому +5

      I'd say it was an excellent description in the context of the review. For most people watching a review like this "an alternative way to configure that will also lock all versions" is just enough. A big problem in the nix community and (imho) why the documentation never improves is that the haskell sickness of rejecting any level of handwavyness is rejected and something re-explained by the next person's level of understanding, leaving new users in an effectively infinite "like this, no like this, no more like this"

  • @falajose3080
    @falajose3080 4 місяці тому +121

    I used NIXOS as a Linux noob and without any programming knowledge. Man, it took me a long time to be able to do anything, but it was fun.

    • @NeoAemaeth
      @NeoAemaeth 2 місяці тому +6

      It's a great learning experience.

    • @re1konn
      @re1konn Місяць тому +1

      you are a god

  • @inflatablemicrowave8187
    @inflatablemicrowave8187 2 місяці тому +8

    I seriously appreciate the in depth reviews where people actually use the things they are reviewing rather than giving it an overhead like everyone else. So rare, and such an incredible resource. Thank you so much :)

  • @thingsiplay
    @thingsiplay 4 місяці тому +100

    So that's why you had less time for UA-cam recently.
    Now it makes sense.

  • @Gumbachi
    @Gumbachi 4 місяці тому +37

    I am not an advanced user by any means but for me the main benefit of flakes is being able to declaratively select a nix-channel and save it to version control so it's applied automatically.
    Same goes for home manager, I know what it can do but pretty much only use it as an auto symlinker for my config files so I can edit everything in it's own config file but all in one place instead of scattered around the system.
    The real beauty of nix is being able to experiment and learn and then roll back with no consequences if something goes wrong.

  • @FreshTattoo71
    @FreshTattoo71 4 місяці тому +20

    good video bro.speaking clearly the whole way. thanks .

  • @callmesteve7874
    @callmesteve7874 4 місяці тому +79

    NixOS is the new Arch.
    Can't wait to see "I use nix btw" memes everywhere.

    • @LiaraFromM.E
      @LiaraFromM.E 3 місяці тому

      Noo the stealing

    • @RedPsyched
      @RedPsyched Місяць тому +2

      I have a tshirt that says "I use Nix btw" xD

    • @ArtemSayapov
      @ArtemSayapov 13 днів тому

      I use nix btw

    • @callmesteve7874
      @callmesteve7874 11 днів тому

      I still prefer arch btw.

    • @ArtemSayapov
      @ArtemSayapov 11 днів тому

      @@callmesteve7874 nix is superior ngl.
      Tbh, you do you, but I really recommend nixos.
      It's been so fun to configure in the past couple weeks

  • @wojownikwody1804
    @wojownikwody1804 4 місяці тому +16

    I'm a long time user, simply because I do own a lot of computers. I run all my desktops, laptops, media center on Linux and I simply wanted to have centralized reproducible and modularized configuration for all of them kept in a repo as a single source of truth. I've learned it and it worked, as simple as that. I totally understand the resistance of other users who configure their single workstation or a laptop in a traditional way and don't want to be bothered with any of that, especially with entitled and toxic community that sticks NixOS down their throats - trust me, I hate them too, it doesn't help at all. I could argue that this is the exactly the same case as with Arch - it's not that hard and "super elite" when you install it and you scratch your head thinking "is that is? is that really this best distro for illuminati?". Geez, it's just an OS and it's just a computer. Don't be a fanboy, we don't want to be like Apple/Android warriors, do we?

  • @spinjrock
    @spinjrock 3 місяці тому +9

    I've messed with NixOS for a while now in a few different use cases. I've found that for me, it lives best on my home server. The configuration file creates a psuedo self documentation. When I log back in to fix something broken I often forget how I configured certain services. The config file means that everything I changed on the server is in one place. Firewall, crontabs, networking, services, it's all there. Plus it's been very stable. I combine NixOS and Docker to create some pretty complicated setups all self described by a few files.

  • @overloader6726
    @overloader6726 4 місяці тому +49

    As a developer and nix user i cant help but feel like nix just isnt made for non developers. The config is great for reproducability with a fleet and putting a flake in a project repo is great to set the same versions for everyone

    • @etcher6841
      @etcher6841 4 місяці тому

      I feel the same way

    • @joaomendoncayt
      @joaomendoncayt 4 місяці тому +8

      That's fair, but with the security coming from immutability, the most widely covered packages repository on linux land, and the ease of swapping components around makes it insanely great for everyone, really - just sad that you lose posix and they decided to make yet another dsl instead of using something like lua.

    • @overloader6726
      @overloader6726 4 місяці тому +5

      @@joaomendoncayt I kind of understand it. A functional language lends itself to this kind of thing

    • @overloader6726
      @overloader6726 4 місяці тому +2

      @@joaomendoncayt also I haven't looked too far into immutability. What makes it secure?

    • @joaomendoncayt
      @joaomendoncayt 4 місяці тому

      @@overloader6726 When you change anything in your system (be it a package or a setting), you literally make a new unique build.
      with nix, you'll never brick your system and have to make a fresh iso install - you can just rollback to your previous build with 1 command on the tty!

  • @InspiredPlans
    @InspiredPlans 2 місяці тому +4

    One super cool thing about NixOS is this... Though you may not tap all of its power, the power is there if you ever want to. To gain the benefit and beyond of a normal distro, the learning curve is not really that significant. So, for the most part the burden to "learn the language" is really only if and when you want to tap into more power. In the meantime, you still get an incredibly flexible, super-stable, and wonderfully reproducible system. I love the fact that my system just keeps getting better and I never lose my progress, I can transfer my config pretty much anywhere very quickly whether that is a new machine entirely or additional systems. I'm definitely very happy I switched!

  • @hand-eye4517
    @hand-eye4517 4 місяці тому +8

    as someone who struggles with organization nix gives me a sense of fresh air that everything on my system is understood and clean all in one place

  • @seritogakko5920
    @seritogakko5920 4 місяці тому +42

    with pkgs in the list of software allows you not to write pkgs. before the title

  • @databug
    @databug 4 місяці тому +31

    I tried Nix for about 1 month or so. I thought it was really cool and I loved the reproducability of it. I couldn't really get my head around flakes. In the end I felt it was overkill for what I wanted. I just need an OS that I can game on and do some basic stuff. I also do music production and I couldnt quite get all that working.

    • @GWFO
      @GWFO 4 місяці тому +1

      Same boat literally even down to the music Part now I'm on endeavor 😂😂😂my home 🥹❤but someday I'll try nix again 😵‍💫

    • @catto-from-heaven
      @catto-from-heaven 4 місяці тому

      I had the same experience. At first, I thought it was super cool, but I end up realizing I really didn't need the reproducibility it offers. I'm using Fedora Workstation now, and I'm MUCH happier

    • @mangodude-nq6su
      @mangodude-nq6su 4 місяці тому +5

      I went Nix to Arch to Mint. Too much tinkering!

    • @boirfanman
      @boirfanman 4 місяці тому

      ​@@mangodude-nq6su I went from Arch to Bazzite to Endeavour to Mint. I couldn't stop breaking stuff. Was good fun following the Arch Wiki and installing it, though.

    • @CalHarding01
      @CalHarding01 4 місяці тому

      May I ask what issues you ran into in terms of music production? I ask because I'm thinking of using NixOS, but I also want to record music on my machine...

  • @jrunestone
    @jrunestone 4 місяці тому +3

    Great video! I love that I can experiment with NixOS and not be afraid to mess something up, just roll back to the previous generation. I don't love realizing that a package doesn't exist in the official repo and have to figure out how to package it myself.

  • @vp4744
    @vp4744 4 місяці тому +7

    Good review, agree with most of your comments. The most important comment I'd like to make is that the documentation is atrociously bad. Not just bad English bad, but bad logic, bad structure, bad advice, bad emphasis, bad support. For a project that is 21 years old, yes Nix is that old, the written word is horrible.
    The other point I want to make is for new comers, you don't have to make the same mistakes as the old nix users. You can can adopt flakes right from the beginning and ignore all the old hassles. That's what saved me. I struggled for a week to get my bearings, but it was worth not having to deal with old imperative config files. Now everything is automated on my laptop/server config.

    • @liteflow10
      @liteflow10 Місяць тому

      @@vp4744 first thing i got was homemanager. Im so glad that i wanted to make all dot files in my config near main flake. It makes my config so much powerful when i can configure not only os itself but apps config from my maim configuration

  • @JessicaFEREM
    @JessicaFEREM 4 місяці тому +25

    Don't forget that the Nix Package manager is on all OSes

    • @Anonymous4045
      @Anonymous4045 3 місяці тому

      Well, not really windows, since it's installed via wsl.

    • @JessicaFEREM
      @JessicaFEREM 3 місяці тому

      @@Anonymous4045 that still counts but not 100% bare metal.

    • @laupoke
      @laupoke 3 місяці тому

      @@JessicaFEREM wsl is linux bruh

    • @xanderplayz3446
      @xanderplayz3446 Місяць тому

      @@Anonymous4045 But I bet you could get it running on Msys2.

    • @mgord9518
      @mgord9518 Місяць тому

      @@JessicaFEREM That's like saying Photoshop is on Linux because you can use a VM

  • @modernkennnern
    @modernkennnern Місяць тому +2

    I've only used NixOS for a few days now, so I'm still in language-learning mode, but so far this feels like what Linux should be.

  • @itme_brain
    @itme_brain 4 місяці тому +8

    Great review agree with almost all your points.
    I would like to add that you don't have to "nixify" all your dotfiles to feel the power of home-manager, you can use the normal program dotfiles and then use the home.file API to programatically symlink your dotfiles to your home directory

  • @yewenyi
    @yewenyi 4 місяці тому +22

    Well I am over 60 and I use NIXOS. It works the way that I think that Linux should work.

    • @TheLinuxCast
      @TheLinuxCast  4 місяці тому +8

      And that's good for you. Not everyone is you though.

    • @yewenyi
      @yewenyi 4 місяці тому +8

      @@TheLinuxCastyes. It needs an easy to use front end. If I were more capable I might write one.

    • @yewenyi
      @yewenyi 4 місяці тому

      @@TheLinuxCast yes. It definitely needs an easy to use front end. I think that it would be easy enough.

    • @TheSast
      @TheSast 2 місяці тому +2

      @@yewenyi the only one I have seen is SnowflakeOS and the related projects.

    • @yewenyi
      @yewenyi 2 місяці тому +1

      @@TheSast yes, I looked at Snowflake but it is still in early development. Should be great when it is done.

  • @hadockzin
    @hadockzin 4 місяці тому +7

    I've been waiting for this video for so long

  • @pooyanisalmani2844
    @pooyanisalmani2844 Місяць тому

    wow finally someone talking about nix in a way that is understandable!
    thanks man this video cleared up so many confusions i had, about the nature of flakes, home manager, configuration file, and everything about nix!

  • @thesaigoneer
    @thesaigoneer 4 місяці тому +2

    Great review. As an on/off Nix user (but also a non-dev) I recognized a number of your points ;-) Flakes in my joghurt and run Nix from the config file. As such it is great and geeky, but not for everyone (just like Gentoo which I ran for some months as well). One aspect i'd like to add in favor: due to its 'generation' approach there's always a fallback image to boot from. i've ran Nix also as an 'immutable', with cli tools from nixpkgs and distrobox and flatpaks on top. That's a very solid base, especially with auto upgrades turned on. Thanks, Matt!

  • @billybaker1468
    @billybaker1468 24 дні тому

    Well done! Thank you for putting this together. NixOS was recommended to me by an inner nerd that I respect. However I'm in the same boat as you.
    I really appreciate your very considerate explanation of the trials an tribulations using.
    Subscribing and looking forward to more from you.

  • @uwuzote
    @uwuzote 3 місяці тому +3

    Flake is a way to pin dependencies for nix expressions, and that expressions can be packages, libraries, nixos modules, home manager modules, shells

  • @simonlauer9379
    @simonlauer9379 4 місяці тому +29

    with pkgs;
    and then prepending every package with pkgs
    😱

    • @TheLinuxCast
      @TheLinuxCast  4 місяці тому +13

      Hello, noob here.

    • @etcher6841
      @etcher6841 4 місяці тому +7

      @@TheLinuxCast hello noob, I'm dad

    • @NathBeLive
      @NathBeLive 4 місяці тому +3

      Haha I noticed that too, but im a mega noob so I can't even say anything.

    • @cenunix
      @cenunix 2 місяці тому

      @@TheLinuxCast I’m glad you took a deep dive on NixOS, but I think you’ll enjoy it even more the deeper you go. Yes some things can be annoying but getting the reps and understanding down will make your experience even better. As someone who has flakes home-manager etc all configured, I think it’s worth trying it all out if you are still at least somewhat interested.

  • @marcosolivsilv
    @marcosolivsilv 4 місяці тому +2

    About a year ago, I started using Linux. First, I tried Mint for a week, then I installed Debian, but after 3 months, I decided to go with NixOS. As a common user, I'm really happy with it because all I ever wanted was a stable and relatively up-to-date system that I don't have to worry about.

  • @fernandobalieiro
    @fernandobalieiro 4 місяці тому +7

    Great video!

  • @apoorvsingh9316
    @apoorvsingh9316 6 днів тому

    I saw a video on youtube where the guy was using nix as a kind of package manager for his operating system. He was storing all his Mac OS configurations, along with the apps and homebrew on it and he was doing this so that he could setup any new mac machine with just one command and it was really cool.
    He had his Neovim config and dotfile configs over on nix too

  • @wmtitus
    @wmtitus Місяць тому

    Thank you for your candid LT review. For me too, I find it a personal experience and I am very drawn to it and also yet to make up my mind. Yet I've always looked for ways for computers to do the work for me rather me doing the work for the computer. Also special use cases I'm starting to think of. We'll see...
    Mel

  • @fluxza8018
    @fluxza8018 3 місяці тому

    Great video. I have been trying to decide if I should use Nix for my dev machine, and you gave me a lot of the information I wanted in a very approachable manner. Many thanks!

  • @Flackon
    @Flackon 3 місяці тому +1

    Worth noting that if you "install a lot of packages", you can do so imperatively in a way that's not different from any command line package manager. You can even do it in a nix shell and it will be cleaned in the next garbage collection. Then, if you're happy with the package, you can put it in the config file to make it permanent in the next system/home rebuild

  • @jamesofscout4886
    @jamesofscout4886 4 місяці тому +3

    NixOs is in my Opinion, pretty much the best to use in company Laptop Fleets. As reproducibility sound really great for Admins. It seems to be a good counter to AD at least on Theory

  • @CRYPTiCEXiLE
    @CRYPTiCEXiLE 4 місяці тому +3

    I personally really like NixOS and this is a user using GNU/Linux for over 20 years the "traditional" way... NixOS I find even just use the default system with the configuration file is a good solid based system I like how u can go to rolling or stable, i like the stable every 6 month release cycle, i like that you can use the latest kernel on the stable channel as well.. yes you know some basic with configuring the config file, but its no different than configuring tiling wm and others ... it's really a matter of choice and taste.. i love gentoo and i also love arch and to me nix gives me both of that kind of system in one with a immutable secured way as well/

  • @OrcsBR
    @OrcsBR 3 місяці тому

    This is really a great great review. Congrats! You should say your name on the start of every vid, I've been seeing your videos for some time now and I always forget it!!! You're most of the time only the LinuxCast guy!

  • @rahantr1
    @rahantr1 4 місяці тому +5

    I think you need to asses it from an cloud based application engineer perspective to see the real value of this distro.
    Imagine you and your team are building cloud images for a build farm that'll serve thousand of developers. you will need custom load balancers, build machines, may be a few machines to collect logs and metrics. You also want to treat all different machines as code and keep it in a version control system. Then these config files, flakes and quirks make sense.

    • @TheLinuxCast
      @TheLinuxCast  4 місяці тому +2

      @@rahantr1 I've never been a cloud based engineer. So it's hard to know how one of those thinks.

    • @rahantr1
      @rahantr1 4 місяці тому

      ​@@TheLinuxCast well, the video was quite good actually. you are probably closer to dev-ops than you think you are.
      if interested, easiest way to get a perspective would be to follow a quick GCP/AWS cloud certificate course. these systems provide infrastructure to the applications I mentioned. learning to use one, can help you take things to a new level. 👍

  • @kesslerdupont6023
    @kesslerdupont6023 4 місяці тому

    I can’t wait to see some of the ideas of immutable distros and nix in general mature and receive improvements in the future in terms of desktop and mobile personal computing.

  • @mischavandenburg
    @mischavandenburg 3 місяці тому

    Thank you for this great video. I’ve been meaning to play with nixos for the longest time but your points on the skills not being transferable to Linux convinced me to remove it from the list. The time is much better spend on going deeper on Linux.

  • @Raftzard
    @Raftzard 4 місяці тому +1

    I'm a nixos (and still linux a bit) noob and zaney's is an awesome config. Simple and yet very powerfull. Thank you for this review, now it is clear why nixos is awesome and weird at the same time.

  • @afroceltduck
    @afroceltduck 4 місяці тому

    Congrats on finally getting the review done!
    In theory, I should like NixOS. You can get nearly any package you want, and to install it, you pretty much just write the package name in your config. And you can reinstall your system super easily without fiddling around with a lot of settings (I suppose you still have to do that with the individual desktop environments?). But, the thing that keeps me away is all the negatives that you stated. It's just too much of a learning curve to be worth the effort.

  • @anakinhamilton978
    @anakinhamilton978 4 місяці тому

    I saw the announcement for this review and then went looking just a few days ago for THIS video!

  • @PerfMonk
    @PerfMonk 4 місяці тому

    I feel the same after using NixOS for a few years. I have installed it on a USB-SSD disk to test and kept it since it's a intriguing distro and I wanted to learn more about it. I found the documentation very confusing also. Another thing that bother me is when someone change the properties of something I installed before. Then if you rebuild Nixos you have error in your config file. Hyprland does that regurlarly and it gets on my nerve a lot. But I understand that Hyprland is a work in progress and that changes will happen. I wanted to use flakes too, but it's impossible to learn in any ways, at least for me. Being able to rebuild my NixOS on another computer is nice but not that usefull to me. It more a thing usefull for big business where they want to build servers exactly with the same recipe . Thank for the review!

  • @Rbourk252
    @Rbourk252 4 місяці тому +3

    While watching this I had a read over the NixOS website and scanned over the nix manual. It looks like something that I could get immersed in. It makes great sense. There are no books you can buy from Amazon for Nix as far as I could see. It’s all documented online. Programming isn’t a problem for me and neither is Linux. I like the idea of taking one system and copying it straight over to another device. I’d have to get other projects completed before I start tinkering with this I think. I have a spare mini pc so I could mess about with it on that. Great post. Thanks.🙏

  • @Mainak908
    @Mainak908 3 місяці тому +1

    After fireship's nix video...i am here. Now i would like to play with nixos😂

  • @antepetrovic4054
    @antepetrovic4054 4 місяці тому +3

    8:20 if you have completion and nix related extensions enabled in neovim, then you can get autocompletion for the package names.

  • @diego898
    @diego898 4 місяці тому +4

    I use home-manager to install my "user" packages, but I also do not use it to deal with my config files.I already use gnu stow as my dotfile manager, just to keep them all in one place. Stow just symlinks them out from there.

  • @adjbutler
    @adjbutler 4 місяці тому +1

    the main idea of flakes is it moves away from nix-channels which is imperative style of managing which version of nixpkgs you are using to a declaritive one.
    Flakes are replacing nix-channels but also have move features and cool stuff you can do with them as well.

  • @einargs
    @einargs 2 місяці тому

    I switched to Nixos after like a year of Ubuntu and a year before that of a chromebook chroot. I've been using it since 2018 and it's great. Sometimes packaging new things is a pain, but it's worth it in my experience. And sometimes it's painless. (And I only need to do that when I e.g. need the latest release of a specific programming tool etc, or some really niche thing.) And the benefit is that once something is packaged it's so easy to use.

  • @iatheman
    @iatheman 3 місяці тому

    Great video! Nix is enticing... I'd move to it in a heartbeat if it weren't for the confusing Nix language, vague documentation, and scattered explanations.

    • @Anonymous4045
      @Anonymous4045 3 місяці тому +1

      I'd suggest setting it up in a vm and working on your config from there. That way you can see how it all works and get a working config, so all you'd need to do is install it on hardware and grab the config you made in the vn.

    • @iatheman
      @iatheman 3 місяці тому

      ​@@Anonymous4045 I thought of it. I just don't want to have to deal with a language that's poorly explained and documentation that's not in a good state. I'll play with it on a VM when I have spare time.

  • @RonnyOlufsen
    @RonnyOlufsen 4 місяці тому

    Awesome review my friend!👍😊❤

  • @Drezaem55
    @Drezaem55 2 місяці тому

    I get how adding and removing packages often can be tedious for people who trial a lot of packages, but as someone who doesn't add and remove packages often it's very convenient. I always forget all the letters I need to give pacman in order to correctly delete a package, and some people disagree on what is correct. With nixos it's just 1 command to add or remove any number of packages.

  • @kasperkondzielski3028
    @kasperkondzielski3028 3 місяці тому

    You did well. Thanks for reviewing nixos. There are some things that I don't fully agree with. The most prominent one is that you don't have to master the nix language to benefit from using nixos. Sure if you do then you will be able to use nixos to its full potential - reuse code between multiple configurations, calculate things in nix etc. But for a single PC configuration that is usually not needed. With home-manager and nixos modules configuring your system in 90 % cases boils down to `services.sshd.enable = true`. Even packaging new programs for nix is doable without mastery in nix language (this totally depends on the complexity of the program that you want to package).
    You will still benefit from reproducibility, ability to rollback your changes and the ability to keep your configuration in git. Also many things can be done much simpler in nixos due to its declarative nature. You don't specify how to do something but rather what state you want to have at the end. So if there is already a support for something - all you have to do is to add few lines into your configuration and call the usual `nixos-rebuild` command.

  • @oscardziki4543
    @oscardziki4543 3 місяці тому

    Awesome material. Thank you.

  • @auralluring
    @auralluring 4 місяці тому +2

    i hadn’t put together how similar my relationships to nix and emacs are oh my god. i give nix a go every once in a while because i miss the declarative configuration, and then i inevitably get frustrated at the nonstandard-ness and poor documentation. with emacs i go back because i miss org mode, and then i get frustrated because i spend so much time fiddling around with it trying to get it to do what i want, just like nix! 😅
    and the way declarative config and org support are both things i desperately want separate implementations of so i don’t keep repeating this cycle… wow
    trying to manage emacs config *within* nix (home-manager) was hell btw

  • @Ohhimark100
    @Ohhimark100 4 місяці тому

    Was looking forward to this one!

  • @Artoooooor
    @Artoooooor 2 місяці тому

    Damn. When I distro-hop next time I'll try NixOS. Now I am on EndeavourOS and really like it.

  • @k.b.tidwell
    @k.b.tidwell 2 місяці тому

    Really good, well-thought-out video Matt. I always enjoy your delivery, not to mention that even though you're older than my son, your personality reminds me of him so much.
    So, besides nurturing an OS god complex, what's the big compelling reason to use NixOS over a more regular distro for normies (non-coders)? Is there anything you'd call better about Nix other than having molecular control over configuration?
    EDIT: Ok, sorry, I zoomed ahead to My Thoughts, and I see that it's really an ideal distro for coders for satisfying that overwhelming desire to crawl among the electrons. That's good if you're there, but the cost/benefit ratio isn't there for me. The concept is completely intriguing, and maybe I'll hit that stage of desire when I'm retired and need a consuming hobby.

  • @juipeltje
    @juipeltje 4 місяці тому +1

    I was looking forward to this video cause i switched to nixos a few months ago, however after a few weeks of using it i felt like i had no choice but to leave again because i couldn't get my gpu to unbind completely when trying to pass it through to a vm, it would just hang. I decided this week to give it another try because i really wanted to go back to nixos if i could, and after some more digging it turned out that for some reason a random driver was claiming my usb port on the gpu, which caused it to hang. Blacklisting the driver fixed it so the way things are looking now i can go back to nixos again :D i can relate to your confusion when it comes to flakes, i feel like i'm slowly starting to understand it better now but i don't think i'm using it to it's full potential, but the way that i use my flake and how i look at it is that i basically jist use it to declare my inputs, which means i don't manualy have to mess with channels anymore when doing a clean install, because it's all in the flake. Something i haven't done yet is declaring things like passwords through secrets, but i'm not sure if i'll ever start using that. Eventhough i know it's supposed to be encrypted through a hash, i still feel paranoid about uploading those things to github. But i do love the reproducibility of nixos combined with the huge amount of packages, so i'm looking forward to going back. I'm now in the process of preparing by touching up some of my nix configs.

  • @bobmcbob4399
    @bobmcbob4399 4 місяці тому +1

    Thanks for the high level overview. It really is different and has a lot of benefits. I wonder if it functions like docker compose yaml to work out the differences and only apply them. Probably does.

    • @coffee-is-power
      @coffee-is-power 4 місяці тому

      Yes it does kinda work like that, it basically tries to build your system, it figures out which package are already built and what needs to be built (by building I mean download and install the package to the nix store) and only builds the necessary packages

  • @backhdlp
    @backhdlp 4 місяці тому

    I'm surprised how simple your configuration is after 9 months. I've been using NixOS for 4 months I think now and I'm in the process of refactoring my already pretty complex configuration into 3 flakes.

    • @TheLinuxCast
      @TheLinuxCast  4 місяці тому

      I cleaned it up quite a bit. Removed programs and such.

    • @chonkydog6262
      @chonkydog6262 4 місяці тому

      Im in the same boat as you, always surprised how all youtubers reviewing this distro don't think to separate their config at all

  • @donaldwilliams6821
    @donaldwilliams6821 4 місяці тому +5

    I use NIXOS and I have no issues with anything you said. You reported your experiences both good and bad. NIXOS isn't what you need for how you work.

  • @mjscpr
    @mjscpr 2 місяці тому

    That was great, thanks!

  • @huljaxful
    @huljaxful 4 місяці тому

    I think you made a good video. It looks like a platform on it's own. For some people probably the best platform but not for me :) i just hope you weren't close to having a nervous breakdown about the thing.

  • @samconnelly7630
    @samconnelly7630 3 місяці тому +1

    I have had packages that I want to use- but haven't been in NixOS. There is TILP, which used to be in Nixpkgs until it had been removed due to libglade. Then, there is the TI-84 Plus CE C toolchain, of which I only have the compiler and linker build on my system. There is also TIEmu, a TI-89/92/Voyage 200 emulator. Otherwise, it has been great in terms of package availability.

  • @HannesWithoutJo
    @HannesWithoutJo 4 місяці тому

    Since I didn't want to switch to nixos right away I just use the home manager on my arch machine to get a taste of it. Translated my vim config and it worked pretty well. I also never had a plugin manager for vim and home manager works pretty great for that.

  • @5mrd
    @5mrd 4 місяці тому +3

    Plasma 6: Pinned kde application icons go blank after a Garbage Collection(weekley). Bug?

  • @DoyoTayo
    @DoyoTayo Місяць тому +1

    I feel like Ansible is more simple and more straightforward than this nixos configuration file. You pretty much do the exacte same thing and the skill can be used at work if needed. What are your opinion ?

  • @timf8684
    @timf8684 4 місяці тому

    Thanks for the efforts.

  • @adjbutler
    @adjbutler 4 місяці тому +1

    if you want to be a dev ops person nix is great to learn

  • @Marc42
    @Marc42 4 місяці тому +1

    He did it people! 🎉

  • @SA1G0N_
    @SA1G0N_ Місяць тому

    I would say that NixOS is extremely good for a common user or deploying apps/services due to its highly replicable nature. If you're a developer though, then more traditional distros are the way to go.

  • @vinapocalypse
    @vinapocalypse 4 місяці тому +3

    I'm interested but I feel this is sort of a step backwards. Why would they not have an application that can configure the settings for you, as opposed to having to do it yourself? If you're providing packages into a list by name, then NixOS necessarily knows about those packages by name in order to know where to find how to install them, and could provide you with a full, searchable list in the app, and let you add them that way, as well as setting configurations for the various system components. That Nix the language has a complex syntax isn't really an excuse, it just means more effort would need to go into the config app. You could still export and share configs.
    Home-manager seems like an under-powered config management system (like Puppet, Ansible, etc) - you can save config settings but you're kind of wedging all those settings into either their format. Puppet has its own problems with feeling overly-verbose in places but still, in it I can say specify "here is the directory called '.emacs.d', put it and its contents into the directory '/home/jane/' with permissions jane:wheel and mode bits 700".

    • @RichardJActon
      @RichardJActon 4 місяці тому +3

      It would be possible to write a GUI app to configure nix systems I think that there might be a couple out there but It just always going to be less flexible than a language. The thing I analogies it to is making graphs you can make a fine graph in a gui tool like graphpad prism but you just can get as flexible as when your are expressing your description in a 'language' like ggplot or D3.
      The functional approach the Nix and Guix take to package management solves so many problems from the ability to use software with mutually incompatible dependencies to issues to technical issues the trust architecture of the software supply chain. You can't get as strong a set of technical guarantees about the reproducibility of a system anywhere else.

    • @vinapocalypse
      @vinapocalypse 4 місяці тому +2

      @@RichardJActon I found another video on nix in general, by Chris Titus Tech, which was helpful in explaining what nix as a tool can do

    • @cenunix
      @cenunix 2 місяці тому

      @@vinapocalypsebtw. You can just specify I want this file here in home-manager, no need to write it in nix. I’ve used other config management systems and nothing is close to as powerful as nix. The reason there is no gui is because the complexity of all the options and different things you can do.

  • @Roje8
    @Roje8 20 днів тому

    You can use NixOS - minimal ISO image and something like DWM. One thing for sure, you will learn a lot about Linux in general plus programming

  • @iopqu
    @iopqu Місяць тому

    I also think it's tedious to add to system packages so I just used a GUI to add packages to profile. However, that gives me another way to install packages. I had to install a package that's not in the nixpkgs repo as a flake so now I have four different places if you count flatpak. I hope to never have to use an appimage

  • @TechnoMinded-qp5in
    @TechnoMinded-qp5in 4 місяці тому

    Meta needs to put Air Link on Linux it might just be the future of desktops if Microsoft keeps having stalemate upgrade requirements.

  • @Aras14
    @Aras14 4 місяці тому +4

    One thing I want to mention here is the drama. Let's start at flakes, they were pushed through, bypassing the rfc process and because of that could have been more polished.
    Now to the more recent stuff, there were some disagreements on governance, which caused quite some important developers to leave (most of the board left), now there are some attempts to regain trust, for example by introducing voting (here I made the contribution of introducing OpaVote and Belenios to them). So expect the speed of feature updates to slow down, but it ain't gonna destroy the distro.
    P.S.: Please don't use this comment as a place for further drama, there already has been enough.

  • @YERAFirearms
    @YERAFirearms 3 місяці тому

    How about the following
    Say I run EOS/Archlinux/KDE, if there is a backend demon whenever there is system/DE/app configuration change, the change is encoded in the NixOS config file.
    More or less, the OS would log the configuration changes in a configuration files, that would allow reproducible builds and distrobutions of builds.

  • @jmacdono
    @jmacdono 4 місяці тому +3

    Can you use Flatpaks in NixOS?

    • @Gumbachi
      @Gumbachi 4 місяці тому +2

      Yep

    • @TheLinuxCast
      @TheLinuxCast  4 місяці тому +7

      Yes

    • @UvekProblem
      @UvekProblem 4 місяці тому

      It's perfect actually but it's hard to deal with you would actually need a mentor to kinda like guide you thru the terminology and workarounds for the way it is. Otherwise yeah it's definitely not smooth..

    • @dheudyebtydrny
      @dheudyebtydrny 4 місяці тому +6

      It's not enabled by default but it's just a one-line addition to the config file and it gives you everything you need. There's even an experimental way to install flatpaks declaratively so they can be reproduced as well, called nix flatpak. Haven't tried it out myself yet though

    • @quickdudley
      @quickdudley 2 місяці тому

      @@jmacdono as well as using them the normal way there's also an established process for converting a flatpak into a nixos package.

  • @robindeboer7568
    @robindeboer7568 4 місяці тому

    Also, I would say that swapping from nix to other linux distros is actually just fine. You set some module options in your nixos config and you want them on another distro? All you have to do is click view source of that module and you have a guide as to how to do it on other distros. But yeah, again, you HAVE to learn the nix programming language on nix.

  • @homfes
    @homfes 4 місяці тому +20

    "I got turned off by the fact they're so hard to explain and understand" - said the guy who explained it well enough for me to understand what flakes are.

    • @koye4427
      @koye4427 2 місяці тому +1

      The problem is that there are almost no good resources for flakes, and nobody ever says it as minimally as that lol
      The actual purpose of a flake is to manage versioned inputs and Nix outputs, and it is highly integrated with the Nix language. Hell on earth to learn as a newcomer, but incredibly useful for reproducibility.

    • @liteflow10
      @liteflow10 Місяць тому

      Ig his take was about not being able to show you full potential of flakes. And hes 100% right on this. He did a good job giving some kind of fundmentals to begin with but its not even close to its full power

  • @xyic0re714
    @xyic0re714 4 місяці тому

    Good video, you did however leave out the immutable side of nixos which is a decent strong point.

  • @HUEHUEUHEPony
    @HUEHUEUHEPony 11 днів тому

    Can you please do a review of guix?

  • @CRYPTiCEXiLE
    @CRYPTiCEXiLE 4 місяці тому +2

    I don't use flakes or home-manager i see no personal use for it.

  • @donaldwilliams6821
    @donaldwilliams6821 4 місяці тому

    Great video

  • @denizkendirci
    @denizkendirci 25 днів тому

    the most different distro (including nixos) i have tried so far was bedrock linux. i am not saying it was as complex as nixos, but it was definitely more different.

  • @LiveWireBT
    @LiveWireBT Місяць тому

    And then you add mise/asdf to manage different projects/customers with different versions of tools. Because you can. But it's hard to explain to anyone who's just starting with this.
    The flexibility of tooling comes at the price of steep learning curves and teaching others about them. Or even explaining to others... like fresh managers who lack focus and think that they can just get free money with this Linux thing.

  • @ICopiedJohnOswald
    @ICopiedJohnOswald 2 місяці тому

    If you're familar with python development and virtualenvs then you can use that to understand why `nix shell` is useful. Its like python virtualenvs for your entire operating system.

  • @shatterstone3045
    @shatterstone3045 4 місяці тому

    15:30 Why are you still using vim-plug? Matt, if you're on Neovim, I'd recommend switching to something more modern like lazy or packer.

    • @TheLinuxCast
      @TheLinuxCast  4 місяці тому

      @@shatterstone3045 I am still learning lua

  • @Berecutecu
    @Berecutecu 4 місяці тому +4

    What happens if you install an app in Discover? Will it show up in the config file?

    • @TheLinuxCast
      @TheLinuxCast  4 місяці тому +4

      I only had Plasma on this for about a day before I recorded, so I'm actually unsure. I never use Discover on any distro. But next time I'm in NixOS I'll give it a try

    • @affieuk
      @affieuk 4 місяці тому +2

      My understanding is this won't work. I've heard of one frontend that will essentially edit the config file and apply the change, but otherwise the typical tooling from other distro's won't work, same goes for desktop environment tooling.
      Edit: This is coming from very little experience, I used it for a home lab setup and nothing else, so I could be completely wrong.

    • @falajose3080
      @falajose3080 4 місяці тому +1

      You can add flatpaks in your nix config , so it will work, but won't change your configuration file

    •  4 місяці тому

      @@Berecutecu discover on nixos only works for flatpaks apps and firmware updates(if enabled in nix configuration )

    • @andrabtedja
      @andrabtedja 4 місяці тому +1

      No, discover = flatpak

  • @kimcosmos
    @kimcosmos 4 місяці тому

    Seems similar to salt using python. I suspect NixOS is more reliable.
    Using homemanager to switch between a light, relatively mouseless windowing system and a windows clone for visitors could help me fast switch between advanced dwm and hand holding plasma when maintaining others distros. However not all app settings are set through CLI. Sometimes its easier to manage in GUI and then sync the home dot files or /etc. So I would be reliant on a diffing app to clone my default setting to reveal essential features by default. Not sure I would want to do that in a config file or flake.. Essential on the majority of apps.

  • @danieleden1856
    @danieleden1856 4 місяці тому

    A lot to unpack from this video and whilst i see where you're coming from i think you missed a lot of the positives in what Nix has to offer. Yes its going to require you to delve into learning a functional programming language and that can be daunting to some but once i was red pilled im finding it very hard to look back at previous distro's ive used/configured/maintained etc. I knew nothing about functional programming before trying Nix and my journey over the last year has been one of very steep learning and finally the 'aha moments that make all of that hard learning worth it. The power starts to become god tier when you have the ability to programmatically configure existing packages with overrides/overlays to suit your needs, deploy modules that allow you to customize literally every aspect of the OS and build layered development environments for work/testing/projects scoped exactly to the job at hand (that anyone else can come and reproduce with a single command).
    My take on your approach to the last 9 months is that you wanted to give it a crack but you were not willing to jump head first into getting past configuring /etc/nixos/configuration.nix, to me you missed the mark, you barely scraped the surface.

  • @Lizard_of_Linux_Lane
    @Lizard_of_Linux_Lane 4 місяці тому +4

    What if you are the father?
    🤔

  • @ReLoneR
    @ReLoneR 4 місяці тому

    Oh, you didn't understand it in 9 month. Now i can live in peace knowing i didn't figure out flakes in couple of evenings in vb

  • @JohnSmith-lc1ml
    @JohnSmith-lc1ml 3 місяці тому

    The problem with nix is that copying my entire setup to another computer is completely useless without also copying my settings and configurations. I want to be able to open a new computer, pull my config from github and build then open firefox and have all my themes and configs, open discord and already be signed in etc.
    Im sure you can do this with nixOS but I wasnt able to figure out how to do that.
    Where as with a normal distro I can write a bash script to install everything i want and even update all the config files from cloud storage and to me thats the same as NixOS but far easier.

  • @dirdredshadow3316
    @dirdredshadow3316 3 місяці тому

    I use NixOs for 7 months and i understand the feeling, if i could have more time i will definitely learn the programming language but i am in university now and i don't have the time to learn, so i will stay in my immutable fedora and my Debian for now.

  • @zsh7862
    @zsh7862 4 місяці тому

    Well sometimes you have to install some package through adding a flake to your system. For example gBar (best bar) which I use is flake only.

  • @alexstone691
    @alexstone691 4 місяці тому

    I feel like nixos would have been a big W if they decoupled the tech with their configuration, if you made a Mint like distro using their tech it would be great and if someone wants the configuration well they can always just install nixos
    I like the smart way of managing libraries they do, its amazing but it is locked behind the configuration file which i do not want to learn, i simply want the tech!

  • @dustsucker4704
    @dustsucker4704 Місяць тому

    So i use nixos for about 3 years at this point the thing I value most about nix is that it just works you screw your whole config ahhh no big Deal just use the previus bot entry and roll the git repo back. I have tried so many distro the last decade and Every time i had some Stuff that either did not work or bricked some Stuff and fixing it was just time consuming and annoying. But with nix if something Breaks it takes me 2 comands to fix everything. And it mostly just works except nvidia 470 drivers... Everything else i tested just worked.