I Used NixOS For 9 Months - Long Term Review

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ต.ค. 2024

ความคิดเห็น • 365

  • @TheLinuxCast
    @TheLinuxCast  3 หลายเดือนก่อน +17

    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 3 หลายเดือนก่อน +275

    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 3 หลายเดือนก่อน +16

      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 3 หลายเดือนก่อน +3

      no dependency problems by design

    • @cejannuzi
      @cejannuzi 3 หลายเดือนก่อน +14

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

    • @lainalien
      @lainalien 3 หลายเดือนก่อน +34

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

    • @noahjoyner8232
      @noahjoyner8232 2 หลายเดือนก่อน

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

  • @vimjoyer
    @vimjoyer 3 หลายเดือนก่อน +181

    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  3 หลายเดือนก่อน +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 3 หลายเดือนก่อน +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 3 หลายเดือนก่อน +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 3 หลายเดือนก่อน +10

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

    • @pajn
      @pajn 3 หลายเดือนก่อน +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 3 หลายเดือนก่อน +87

    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 หลายเดือนก่อน +4

      It's a great learning experience.

    • @re1konn
      @re1konn 4 วันที่ผ่านมา +1

      you are a god

  • @thingsiplay
    @thingsiplay 3 หลายเดือนก่อน +90

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

    • @etcher6841
      @etcher6841 3 หลายเดือนก่อน +9

      Hahaha good one

  • @Gumbachi
    @Gumbachi 3 หลายเดือนก่อน +33

    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 25 วันที่ผ่านมา +2

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

  • @callmesteve7874
    @callmesteve7874 2 หลายเดือนก่อน +65

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

    • @LiaraFromM.E
      @LiaraFromM.E 2 หลายเดือนก่อน

      @@callmesteve7874 noo the stealing

    • @LiaraFromM.E
      @LiaraFromM.E 2 หลายเดือนก่อน

      Noo the stealing

  • @overloader6726
    @overloader6726 3 หลายเดือนก่อน +41

    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 3 หลายเดือนก่อน

      I feel the same way

    • @joaomendoncayt
      @joaomendoncayt 3 หลายเดือนก่อน +7

      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 3 หลายเดือนก่อน +5

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

    • @overloader6726
      @overloader6726 3 หลายเดือนก่อน +2

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

    • @joaomendoncayt
      @joaomendoncayt 3 หลายเดือนก่อน

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

  • @wojownikwody1804
    @wojownikwody1804 3 หลายเดือนก่อน +13

    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?

  • @databug
    @databug 3 หลายเดือนก่อน +30

    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 3 หลายเดือนก่อน

      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 3 หลายเดือนก่อน

      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 3 หลายเดือนก่อน +5

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

    • @boirfanman
      @boirfanman 2 หลายเดือนก่อน

      ​@@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 2 หลายเดือนก่อน

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

  • @JessicaFEREM
    @JessicaFEREM 2 หลายเดือนก่อน +24

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

    • @Anonymous4045
      @Anonymous4045 2 หลายเดือนก่อน

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

    • @JessicaFEREM
      @JessicaFEREM 2 หลายเดือนก่อน

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

    • @laupoke
      @laupoke หลายเดือนก่อน

      @@JessicaFEREM wsl is linux bruh

    • @xanderplayz3446
      @xanderplayz3446 22 วันที่ผ่านมา

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

  • @jrunestone
    @jrunestone 2 หลายเดือนก่อน +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.

  • @seritogakko5920
    @seritogakko5920 3 หลายเดือนก่อน +37

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

  • @yewenyi
    @yewenyi 3 หลายเดือนก่อน +16

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

    • @TheLinuxCast
      @TheLinuxCast  3 หลายเดือนก่อน +7

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

    • @yewenyi
      @yewenyi 3 หลายเดือนก่อน +6

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

    • @yewenyi
      @yewenyi 3 หลายเดือนก่อน

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

    • @TheSast
      @TheSast หลายเดือนก่อน +2

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

    • @yewenyi
      @yewenyi หลายเดือนก่อน

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

  • @itme_brain
    @itme_brain 3 หลายเดือนก่อน +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

  • @hand-eye4517
    @hand-eye4517 2 หลายเดือนก่อน +5

    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

  • @InspiredPlans
    @InspiredPlans หลายเดือนก่อน +2

    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!

  • @FreshTattoo71
    @FreshTattoo71 3 หลายเดือนก่อน +18

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

  • @uwuzote
    @uwuzote 2 หลายเดือนก่อน +3

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

  • @spinjrock
    @spinjrock 2 หลายเดือนก่อน +3

    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.

  • @pooyanisalmani2844
    @pooyanisalmani2844 19 วันที่ผ่านมา

    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!

  • @vp4744
    @vp4744 3 หลายเดือนก่อน +6

    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 10 วันที่ผ่านมา

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

  • @thesaigoneer
    @thesaigoneer 3 หลายเดือนก่อน +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!

  • @marcosolivsilv
    @marcosolivsilv 3 หลายเดือนก่อน +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.

  • @jamesofscout4886
    @jamesofscout4886 2 หลายเดือนก่อน +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

  • @hadockzin
    @hadockzin 3 หลายเดือนก่อน +6

    I've been waiting for this video for so long

  • @simonlauer9379
    @simonlauer9379 3 หลายเดือนก่อน +23

    with pkgs;
    and then prepending every package with pkgs
    😱

    • @TheLinuxCast
      @TheLinuxCast  3 หลายเดือนก่อน +11

      Hello, noob here.

    • @etcher6841
      @etcher6841 3 หลายเดือนก่อน +6

      @@TheLinuxCast hello noob, I'm dad

    • @NathBeLive
      @NathBeLive 3 หลายเดือนก่อน +2

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

    • @cenunix
      @cenunix หลายเดือนก่อน

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

  • @antepetrovic4054
    @antepetrovic4054 3 หลายเดือนก่อน +3

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

  • @DoyoTayo
    @DoyoTayo 20 วันที่ผ่านมา +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 ?

  • @Drezaem55
    @Drezaem55 หลายเดือนก่อน

    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.

  • @fluxza8018
    @fluxza8018 2 หลายเดือนก่อน

    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!

  • @kesslerdupont6023
    @kesslerdupont6023 2 หลายเดือนก่อน

    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.

  • @fernandobalieiro
    @fernandobalieiro 3 หลายเดือนก่อน +7

    Great video!

  • @homfes
    @homfes 3 หลายเดือนก่อน +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 หลายเดือนก่อน +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 10 วันที่ผ่านมา

      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

  • @Flackon
    @Flackon 2 หลายเดือนก่อน

    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

  • @rahantr1
    @rahantr1 2 หลายเดือนก่อน +4

    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  2 หลายเดือนก่อน +1

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

    • @rahantr1
      @rahantr1 2 หลายเดือนก่อน

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

  • @diego898
    @diego898 3 หลายเดือนก่อน +3

    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.

    • @sachinchaudhary1310
      @sachinchaudhary1310 3 หลายเดือนก่อน

      @@diego898 just use home-manager for symlinks

  • @OrcsBR
    @OrcsBR 2 หลายเดือนก่อน

    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!

  • @Raftzard
    @Raftzard 3 หลายเดือนก่อน +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.

  • @auralluring
    @auralluring 3 หลายเดือนก่อน +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

  • @CRYPTiCEXiLE
    @CRYPTiCEXiLE 3 หลายเดือนก่อน +2

    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/

  • @PerfMonk
    @PerfMonk 2 หลายเดือนก่อน

    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 3 หลายเดือนก่อน +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.🙏

  • @mischavandenburg
    @mischavandenburg 2 หลายเดือนก่อน

    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 3 หลายเดือนก่อน +4

    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.

  • @k.b.tidwell
    @k.b.tidwell หลายเดือนก่อน

    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.

  • @5mrd
    @5mrd 3 หลายเดือนก่อน +3

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

  • @adjbutler
    @adjbutler 2 หลายเดือนก่อน

    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 หลายเดือนก่อน

    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.

  • @anakinhamilton978
    @anakinhamilton978 3 หลายเดือนก่อน

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

  • @afroceltduck
    @afroceltduck 3 หลายเดือนก่อน

    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.

  • @Mainak908
    @Mainak908 หลายเดือนก่อน +1

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

  • @backhdlp
    @backhdlp 3 หลายเดือนก่อน

    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  3 หลายเดือนก่อน

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

    • @chonkydog6262
      @chonkydog6262 3 หลายเดือนก่อน

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

  • @vinapocalypse
    @vinapocalypse 3 หลายเดือนก่อน +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 3 หลายเดือนก่อน +2

      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 3 หลายเดือนก่อน +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 หลายเดือนก่อน

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

  • @samconnelly7630
    @samconnelly7630 2 หลายเดือนก่อน +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.

  • @adjbutler
    @adjbutler 2 หลายเดือนก่อน +1

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

  • @kasperkondzielski3028
    @kasperkondzielski3028 หลายเดือนก่อน

    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.

  • @iatheman
    @iatheman 2 หลายเดือนก่อน

    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 2 หลายเดือนก่อน

      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 2 หลายเดือนก่อน

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

  • @juipeltje
    @juipeltje 3 หลายเดือนก่อน +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.

  • @mjscpr
    @mjscpr 22 วันที่ผ่านมา

    That was great, thanks!

  • @iopqu
    @iopqu 15 วันที่ผ่านมา

    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

  • @oscardziki4543
    @oscardziki4543 2 หลายเดือนก่อน

    Awesome material. Thank you.

  • @CRYPTiCEXiLE
    @CRYPTiCEXiLE 3 หลายเดือนก่อน +2

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

  • @Artoooooor
    @Artoooooor หลายเดือนก่อน

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

  • @Berecutecu
    @Berecutecu 3 หลายเดือนก่อน +4

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

    • @TheLinuxCast
      @TheLinuxCast  3 หลายเดือนก่อน +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 3 หลายเดือนก่อน +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 3 หลายเดือนก่อน +1

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

    •  3 หลายเดือนก่อน

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

    • @andrabtedja
      @andrabtedja 3 หลายเดือนก่อน +1

      No, discover = flatpak

  • @HannesWithoutJo
    @HannesWithoutJo 2 หลายเดือนก่อน

    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.

  • @JohnSmith-lc1ml
    @JohnSmith-lc1ml 2 หลายเดือนก่อน

    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.

  • @RonnyOlufsen
    @RonnyOlufsen 2 หลายเดือนก่อน

    Awesome review my friend!👍😊❤

  • @YERAFirearms
    @YERAFirearms 2 หลายเดือนก่อน

    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.

  • @bobmcbob4399
    @bobmcbob4399 2 หลายเดือนก่อน +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 2 หลายเดือนก่อน

      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

  • @Marc42
    @Marc42 3 หลายเดือนก่อน +1

    He did it people! 🎉

  • @shatterstone3045
    @shatterstone3045 2 หลายเดือนก่อน

    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  2 หลายเดือนก่อน

      @@shatterstone3045 I am still learning lua

  • @TechnoMinded-qp5in
    @TechnoMinded-qp5in 3 หลายเดือนก่อน

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

  • @Ohhimark100
    @Ohhimark100 3 หลายเดือนก่อน

    Was looking forward to this one!

  • @robindeboer7568
    @robindeboer7568 2 หลายเดือนก่อน

    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.

  • @Aras14
    @Aras14 3 หลายเดือนก่อน +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.

  • @timf8684
    @timf8684 2 หลายเดือนก่อน

    Thanks for the efforts.

  • @tigerscott2966
    @tigerscott2966 2 หลายเดือนก่อน

    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  2 หลายเดือนก่อน

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

  • @Hauskenss
    @Hauskenss 2 หลายเดือนก่อน +1

    NixOS user for 2 years here. I dont like to call out people but I highly doubt you have used nixos for 9 months when NixOS options was not even mentioned and the way you dismiss home manager. I dont mean to be rude, but i would have guessed you used it for a few days based on the config file you showed us.
    Could you clarify if you used this as a main distro or if you maybe ment something else when stating you used it for 9 months?

    • @TheLinuxCast
      @TheLinuxCast  2 หลายเดือนก่อน

      Well then you'd be made to be wrong. Used it on multiple computers. I just cleaned up the config on this one for the b-roll. Most of my time was spent on another computer. And just because I didn't care for home manager doesn't mean anything. From how it was explained to me, I didn't want it touching my config files.
      Now if you'd complained about flakes, that would have been a reasonable thing to do. That section remains horrible, and would have no matter how much time I spent on it, because those are confusing af.

    • @Hauskenss
      @Hauskenss 2 หลายเดือนก่อน

      @@TheLinuxCast Thanks for clearing it up, sorry if i was a bit harsh there. Flakes can be confusing for sure, i still just vaguely understand it and i still feel i am new to nix even after spending so much time with it, so its not a easy topic to dive into. I would suggest you have a look at the options tab in the nix packages search page, here you will find a lot of software pre-configured with the packages and settings it needs (for example steam). Anyways, thanks for the video and have a nice day!

  • @fuzzy-02
    @fuzzy-02 12 วันที่ผ่านมา

    But why did they not name it Nyx?
    The stars would have aligned

    • @TheLinuxCast
      @TheLinuxCast  12 วันที่ผ่านมา

      Probably copyright

  • @huljaxful
    @huljaxful 3 หลายเดือนก่อน

    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.

  • @LiveWireBT
    @LiveWireBT 2 วันที่ผ่านมา

    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 28 วันที่ผ่านมา

    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.

  • @Lebastian
    @Lebastian 3 หลายเดือนก่อน +1

    are you going to use it as your main distro?

    • @TheLinuxCast
      @TheLinuxCast  3 หลายเดือนก่อน +2

      No. openSUSE is my home

    • @vpxc
      @vpxc 2 หลายเดือนก่อน

      ​​@@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 20 วันที่ผ่านมา +1

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

  • @jmacdono
    @jmacdono 3 หลายเดือนก่อน +3

    Can you use Flatpaks in NixOS?

    • @Gumbachi
      @Gumbachi 3 หลายเดือนก่อน +2

      Yep

    • @TheLinuxCast
      @TheLinuxCast  3 หลายเดือนก่อน +7

      Yes

    • @UvekProblem
      @UvekProblem 3 หลายเดือนก่อน

      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 3 หลายเดือนก่อน +5

      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 หลายเดือนก่อน

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

  • @ReLoneR
    @ReLoneR 3 หลายเดือนก่อน

    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

  • @dirdredshadow3316
    @dirdredshadow3316 2 หลายเดือนก่อน

    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.

  • @Lizard_of_Linux_Lane
    @Lizard_of_Linux_Lane 3 หลายเดือนก่อน +4

    What if you are the father?
    🤔

  • @MichaelWilliams-lr4mb
    @MichaelWilliams-lr4mb 3 หลายเดือนก่อน

    While using NixOS, I didn't totally get into the flakes myself.

  • @zsh7862
    @zsh7862 3 หลายเดือนก่อน

    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.

  • @Arvigeus
    @Arvigeus 3 หลายเดือนก่อน

    You didn't emphasize enough how frustratingly weird NixOS can be. Often, simple things that run smoothly on other distros need awkward workarounds to function. And I am not talking about just using slightly different settings or tweaks. I am talking about full-blown monkey-patching using Nix programming language, because many things may not be where they are expected to be.

  • @xyic0re714
    @xyic0re714 3 หลายเดือนก่อน

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

  • @alexstone691
    @alexstone691 2 หลายเดือนก่อน

    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!

  • @danieleden1856
    @danieleden1856 3 หลายเดือนก่อน

    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.

  • @lancestu
    @lancestu 3 หลายเดือนก่อน +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 3 หลายเดือนก่อน

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

    • @lancestu
      @lancestu 3 หลายเดือนก่อน +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.

  • @KTSpeedruns
    @KTSpeedruns 8 วันที่ผ่านมา

    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.

  • @pmmeurcatpics
    @pmmeurcatpics 3 หลายเดือนก่อน

    I don't thing the knowledge of Nix is _totally_ non-transferable - for me it has served as an introduction to functional programming languages (which one doesn't interact with too often normally), so that's something

  • @unclefester9113
    @unclefester9113 หลายเดือนก่อน

    Nix is like love for a week. Then you realize you're locked in and you don't know how to make thigs happen. I'm not messing around with config files. Nope. Never.

  • @kimcosmos
    @kimcosmos 2 หลายเดือนก่อน

    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.