I Used NixOS For 9 Months - Long Term Review

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

КОМЕНТАРІ • 407

  • @TheLinuxCast
    @TheLinuxCast  5 місяців тому +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 5 місяців тому +359

    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 5 місяців тому +22

      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 5 місяців тому +6

      no dependency problems by design

    • @cejannuzi
      @cejannuzi 5 місяців тому +16

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

    • @lainalien
      @lainalien 5 місяців тому +51

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

    • @noahjoyner8232
      @noahjoyner8232 5 місяців тому

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

  • @falajose3080
    @falajose3080 5 місяців тому +142

    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 3 місяці тому +6

      It's a great learning experience.

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

      you are a god

    • @applecore620
      @applecore620 18 днів тому +1

      Massive respect to you

    • @unclefester9113
      @unclefester9113 16 днів тому

      Fun like Novacaine and a Root Canal.

  • @vimjoyer
    @vimjoyer 5 місяців тому +204

    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  5 місяців тому +57

      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 5 місяців тому +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 5 місяців тому +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 5 місяців тому +11

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

    • @pajn
      @pajn 5 місяців тому +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"

  • @Gumbachi
    @Gumbachi 5 місяців тому +39

    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.

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

    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 :)

  • @hand-eye4517
    @hand-eye4517 5 місяців тому +14

    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

    • @NabekenProG87
      @NabekenProG87 27 днів тому

      Same, the organization aspect got me into it. I think 90% of nix users are on the spectrum 😂

  • @thingsiplay
    @thingsiplay 5 місяців тому +102

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

    • @etcher6841
      @etcher6841 5 місяців тому +10

      Hahaha good one

  • @spinjrock
    @spinjrock 5 місяців тому +12

    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.

  • @seritogakko5920
    @seritogakko5920 5 місяців тому +45

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

  • @callmesteve7874
    @callmesteve7874 5 місяців тому +89

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

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

      Noo the stealing

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

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

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

      I use nix btw

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

      I still prefer arch btw.

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

      @@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

  • @FreshTattoo71
    @FreshTattoo71 5 місяців тому +21

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

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

    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 5 місяців тому

      I feel the same way

    • @joaomendoncayt
      @joaomendoncayt 5 місяців тому +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 5 місяців тому +5

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

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

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

    • @joaomendoncayt
      @joaomendoncayt 5 місяців тому

      @@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 3 місяці тому +5

    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!

  • @databug
    @databug 5 місяців тому +32

    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 5 місяців тому +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 5 місяців тому

      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 5 місяців тому +5

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

    • @boirfanman
      @boirfanman 5 місяців тому

      ​@@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 5 місяців тому

      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...

  • @wojownikwody1804
    @wojownikwody1804 5 місяців тому +19

    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?

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

      this sounds like an incredible feature to me. As someone who has been experimenting with several distros on several machines over the last year the #1 thing that leaps out to me is the time expended getting the OS exactly like I like it each go-around.

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

    on the one hand i personally wouldn't use it because I've spent 40 years using GUIs, but also it makes me happy to know an OS exists that fundamentally requires you to code just to interact with it. That's neato.

  • @JessicaFEREM
    @JessicaFEREM 5 місяців тому +27

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

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

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

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

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

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

      @@JessicaFEREM wsl is linux bruh

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

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

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

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

  • @itme_brain
    @itme_brain 5 місяців тому +9

    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

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

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

  • @jrunestone
    @jrunestone 5 місяців тому +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.

  • @yewenyi
    @yewenyi 5 місяців тому +24

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

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

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

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

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

    • @yewenyi
      @yewenyi 5 місяців тому

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

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

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

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

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

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

    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

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

    I've been waiting for this video for so long

  • @simonlauer9379
    @simonlauer9379 5 місяців тому +31

    with pkgs;
    and then prepending every package with pkgs
    😱

    • @TheLinuxCast
      @TheLinuxCast  5 місяців тому +14

      Hello, noob here.

    • @etcher6841
      @etcher6841 5 місяців тому +9

      @@TheLinuxCast hello noob, I'm dad

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

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

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

      @@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.

  • @vp4744
    @vp4744 5 місяців тому +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 2 місяці тому

      @@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

  • @modernkennnern
    @modernkennnern 2 місяці тому +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.

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

    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!

  • @marcosolivsilv
    @marcosolivsilv 5 місяців тому +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.

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

    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.

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

    Great video!

  • @thesaigoneer
    @thesaigoneer 5 місяців тому +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!

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

    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  5 місяців тому +2

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

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

      ​@@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. 👍

  • @antepetrovic4054
    @antepetrovic4054 5 місяців тому +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 5 місяців тому +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.

  • @jamesofscout4886
    @jamesofscout4886 5 місяців тому +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 5 місяців тому +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/

  • @fluxza8018
    @fluxza8018 5 місяців тому

    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!

  • @adjbutler
    @adjbutler 5 місяців тому +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.

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

    What I noticed (I just started with nixos) is that I can go through other people configs looking for inspirations for my system. And because configs are complete, the pool of ideas is bigger

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

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

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

    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 2 місяці тому

    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

  • @k.b.tidwell
    @k.b.tidwell 3 місяці тому +1

    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.

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

    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.

  • @OrcsBR
    @OrcsBR 5 місяців тому

    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!

  • @auralluring
    @auralluring 5 місяців тому +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

  • @JohnSmith-lc1ml
    @JohnSmith-lc1ml 4 місяці тому +1

    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.

  • @Raftzard
    @Raftzard 5 місяців тому +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.

  • @kesslerdupont6023
    @kesslerdupont6023 5 місяців тому

    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.

  • @DoyoTayo
    @DoyoTayo 3 місяці тому +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 ?

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

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

  • @vinapocalypse
    @vinapocalypse 5 місяців тому +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 5 місяців тому +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 5 місяців тому +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 3 місяці тому

      @@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.

    • @sachinchaudhary1310
      @sachinchaudhary1310 4 дні тому

      @@RichardJActon it's not for general use the nixos core people are not targeting those, editing a file isn't hard, if u can't do that then u should not use nixos, cuz it's like making it like windows

    • @sachinchaudhary1310
      @sachinchaudhary1310 4 дні тому

      in basic u got nixos wrong

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

    Can you use Flatpaks in NixOS?

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

      Yep

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

      Yes

    • @UvekProblem
      @UvekProblem 5 місяців тому

      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 5 місяців тому +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 3 місяці тому

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

  • @homfes
    @homfes 5 місяців тому +22

    "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 3 місяці тому +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 2 місяці тому

      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

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

      If your in the realm of Devops etc then this os is a godsend

  • @mischavandenburg
    @mischavandenburg 5 місяців тому

    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.

  • @donaldwilliams6821
    @donaldwilliams6821 5 місяців тому +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.

  • @PerfMonk
    @PerfMonk 5 місяців тому

    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!

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

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

    • @TheLinuxCast
      @TheLinuxCast  5 місяців тому +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 5 місяців тому +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 5 місяців тому +1

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

    •  5 місяців тому

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

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

      No, discover = flatpak

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

    Can you please do a review of guix?

  • @YERAFirearms
    @YERAFirearms 5 місяців тому

    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.

  • @samconnelly7630
    @samconnelly7630 5 місяців тому +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.

  • @bobmcbob4399
    @bobmcbob4399 5 місяців тому +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 5 місяців тому

      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

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

    pushpins! i could have used pushpins! lol I was trying to affix panels like you have to a wall, and couldn't get the glues and other methods I tried to work, and you've got it solved using pushpins. God damn it, lol

  • @ReLoneR
    @ReLoneR 5 місяців тому +1

    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

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

    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.

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

    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

  • @afroceltduck
    @afroceltduck 5 місяців тому

    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.

  • @RonnyOlufsen
    @RonnyOlufsen 5 місяців тому

    Awesome review my friend!👍😊❤

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

    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.

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

    Awesome material. Thank you.

  • @anakinhamilton978
    @anakinhamilton978 5 місяців тому

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

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

    He did it people! 🎉

  • @shatterstone3045
    @shatterstone3045 5 місяців тому

    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  5 місяців тому

      @@shatterstone3045 I am still learning lua

  • @Ohhimark100
    @Ohhimark100 5 місяців тому

    Was looking forward to this one!

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

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

  • @Rbourk252
    @Rbourk252 5 місяців тому +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.🙏

  • @robindeboer7568
    @robindeboer7568 5 місяців тому

    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.

  • @tigerscott2966
    @tigerscott2966 5 місяців тому

    Ok...
    I need a manual when use Linux Kodachi and Kali...
    Now, Nix OS has some features I really need..
    Where do I even start with this without overtaxing my brain?

    • @TheLinuxCast
      @TheLinuxCast  5 місяців тому

      Find yourself a NixOS friend. Seriously, that's the best way.

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

    That was great, thanks!

  • @backhdlp
    @backhdlp 5 місяців тому

    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  5 місяців тому

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

    • @chonkydog6262
      @chonkydog6262 5 місяців тому

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

  • @juipeltje
    @juipeltje 5 місяців тому +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.

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

    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 4 місяці тому +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 4 місяці тому

      ​@@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.

  • @Lebastian
    @Lebastian 5 місяців тому +1

    are you going to use it as your main distro?

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

      No. openSUSE is my home

    • @vpxc
      @vpxc 5 місяців тому

      ​​@@TheLinuxCast As a long time Nix enthusiast and extremely occasional NixOS contributor, openSUSE is my favorite of the conventional/old-school distros. It's got good guts (very flexible binary package manager, nice GUI configuration tools, great build infrastructure, lovely CoW filesystem integration via Snapper) for what it is.
      I have some affection for Gentoo and nostalgia for some defunct Gentoo derivatives, but openSUSE is where it's at if you're not running NixOS or GuixSD, imo.

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

      @@TheLinuxCast why openSUSE? what makes you stick there?

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

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

  • @timf8684
    @timf8684 5 місяців тому

    Thanks for the efforts.

  • @HannesWithoutJo
    @HannesWithoutJo 5 місяців тому

    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.

  • @AlexM86
    @AlexM86 5 місяців тому

    So are flakes just a package lock file?

    • @Winnetou17
      @Winnetou17 5 місяців тому

      The flake.lock surely looks like that.

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

      Flakes are versioned configuration - it can contain multiple files. When you first time run flake, it will create flake.lock and "freezes" your package versions, so you can easy reproduce this system on another PC. If you want to update package versions in flake, you can do "nix flake update" and it will update all inputs.

  • @paras_sevda
    @paras_sevda 5 місяців тому

    can we get a video on nixos + hyprland with nvidia i am not able to get proper video till now.
    PS: if someone have resources please share until the video comes

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

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

  • @lancestu
    @lancestu 5 місяців тому +1

    NixOS -Old machine = no problem config.nix ; new machine= big problem. Unable to get 6.9 kernel going (must be present to boot Meteor Lake ).

    • @andrabtedja
      @andrabtedja 5 місяців тому

      Why is that becoming a problem? Do you use unstable channel?

    • @lancestu
      @lancestu 5 місяців тому +1

      @@andrabtedja Meteor Lake needs newer kernel. I can handle config.nix edit (worked well on old machines). But the complexity of installing a newer kernel involves connecting to a share that has my config.nix. It is enabled for new kernel but failed a few times connecting to it.

  • @Brand0-d9w
    @Brand0-d9w 22 дні тому +1

    NixOS doesn't know what is wants to be. Its such a mess. It wants to cater towards Devs but I just don't see the point of using something like NixOS when there are much better options. Why create a programming language of something that can already be achieved with Python or C++ ?

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

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

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

    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

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

    That's EXACTLY the definition of a linux distro, something with a Linux Kernel.
    And Nix is the most interesting Distro out there, all the other are useless, just forks of the Big 3 with the BS someone found nice.
    It being able to be reproduced with a single file is amazing.
    But distro hoppers that didn't do any real work will hate it as they pleasure is install a new distro from zero every week for no reason at all.
    .
    When I change my machine I just want everything working as fast as possible.
    When I'm deploying an application I want it running as fast as possible.
    It's going to be in my tool box forever with Terraform, Ansible and Containers.

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

    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.

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

    You can't configure things without manually typing things into text files instead of just using a GUI... yeah, sounds like every other linux distro. Nix just has its own language which seems like GNU/Linux with extra steps.

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

    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.

  • @zsh7862
    @zsh7862 5 місяців тому

    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.

  • @kimcosmos
    @kimcosmos 5 місяців тому

    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.