FYI: You can also set up Nix on an existing macOS install with homebrew already! Just set the autoMigrate = true; which I cover in the video, and leave out the line with "zap" when I set up homebrew packages, this will prevent your existing installs from being... "zapped". Additionally, I've added in a README which contains any amendments or faqs from the video. If you have an issue, feel free to raise an issue on the repo! github.com/dreamsofautonomy/nix-darwin-amendments
Thanks very much for this video! Is there a way to get a list of brew packages/casks that are currently installed in a format that would work with the flake? So that we can enable the "zap" option
@@wizardfrag I haven't watched the video yet. But when i moved over to nix-darwin I used a "brew bundle dump" and got the list of brews, casks and taps. That could then be put into the homebrex part of nix
I've been thinking of consolidating all my Win/Mac/Linux dotfiles into a nix repo for a while now, I guess once your dotfiles video is up I might finally give it a go. Thanks for this
I’ve been researching Nix on and off for a couple of months and this is hands down the best introduction I’ve come across. Well explained and great production. Looking forward to the next video.
The best video I have seen is "Ultimate Nix Flakes Guide" by Vimjoyer. It is very good, he has made several videos explaining flakes, but the difference with this one is that you clearly see that he actually understand what he is explaining very well, and he has learned how to teach this information. Another creator with videos that explains things very very clearly is Iogamaster, Another creator with not so many nix videos, but his nix video is impeccably good at explaining is "No Boilerplate" There are many other creators that make good videos, the 3 I listed above I found to be able to explain complex things super clearly
@@dreamsofautonomy IDK how different it is but could you do nix on other linux distros than nixos. I have experienced having to wrap apps with nixgl and other issues.
While I love this tech (and your demo of it), I replace my mac every 3-4 years at best, at that point it is actually valuable to have to reconsider apps and settings. I do think this nix setup can be awesome for a developer experience tool, where large teams can manage a baseline for a dev machine that devs can fork from.
Thank you for the video Elliott. I was trying out nixos time to time and it was really hard to get used to. Especially the whole flake and home-manager stuff. I am looking forward to more nix content.
First I was like, how is this better than brew? But I am glad I continued watching! This seems really great way to setup macOS. Thanks for a great introduction.
I was already quite interested by Nix and macOS even tho I didn't owned a MacBook, and this video was perfect to explain how Nix work (even as a NixOS user I learned some things I did not understood before). This video was perfect
Absolute game changer!! I can't wait for your home manager video like managing dotfiles with Nix, all of that put together is just maximum config satisfaction 😩😍
I really enjoyed this video, wasn't too technical but also didn't lack detail so I could understand what I was doing as I followed along, I feel like I can finally start learning nix
awesome video! thanks for this. The video really help me getting started with nix after looking at it for a while from the sidelines and just using ansible and brew. Nearly done with migration to nix.
Great video. One small comment on the homebrew configuration: if you decide to use home-manager, you won't have to use the extra homebrew module since home-manager comes bundled with homebrew support, which I think makes the configuration a bit cleaner.
@@dreamsofautonomy amazing, thank you! Would you also be covering how to just use the home manager (or something like nix-darwin on Linux) for people who wouldn’t want a full blown nixOS?
Thanks this was well presented. I might try Nix, only drawback would be the multiple users created for a MDM corporate Mac. Do all of them require privilege access, or just 1 of them and the rest are like delegate/helper users?
Thank you so much for your support! I'll aim to get home-manager video done in the next month! Unsure if I should do a nixOS video before or after though!
A word of warning when using Apple Silicon. DO NOT FORGET TO CHANGE THE HARDWARE ARCHITECTURE before running any command. I failed to change that before running the `nix run .... nix-darwin ...` command. Changing the architecture after the fact, I was already in a bad state. When I later changed the architecture, nothing worked, everything failed with a bad architecture error message. I ended up completely removing nix, and reinstalling. This again didn't work because I should apparently have uninstalled nix-darwin first. So there were some SSL certificate lookup issues, which took some time figuring out. This was a big hassle that would have been avoided if I had properly followed your steps, and change the hardware architecture immediately. (Problem of first watching the video to the end, and then decide to try it myself after that, just fast-forwarding to the important bits).
@@dreamsofautonomy I thought about it. Currently, I have two different projects going with building a Nix based hypervisor, based on your other homelab setup video, and a TrueNAS Scale Baremetal build. Adding on to those two may be more than I can handle all at once. Will have to explore the Mac situation after that!
great video very useful set up process thank you very much. I'm new to package management systems and never used home-brew before, what's the difference between "brew"and "cask" installations. kind regards
Yeah we would love to see managing dotfiles with nix ! I'm going to buy a mac soon and it would so nice to be prepared for a full setup already to syn it with my current linux laptop
@@dreamsofautonomy I'm currently working on it since your video, it's really great ! However not easy to have good practices. I can't wait to see your configuration (how you configure zinit for instance)
Thank you! I really appreciate that dude. I spent far too long on this one and I ended up letting perfect be the enemy of done. I need to get back into the habit of releasing videos more often
Unfortunately that is the point of nix. There's an even more 'intrusive' version called NixOS (a linux distro), where everything on the operating system is managed by nix.
Iirc there's a github gist to enable you to install nix but on your home directory, I'm not sure how it will impacted your setup but it's quite useful especially for non-sudo user
I achieved the same using Ansible, dosent matter macOS or Linux (I can create a 1:1) setup under 2 minutes. The problem I have with nix is the separate volume that takes up tons of space and gui apps dosent show in launcher in macOS. But you do you!
@@dreamsofautonomyThanks for getting back. I did watch the entire video and had a script myself to link applications recursively inside NixApps (Not with the flakes way to doing things though). What i faced was if an applications were to be updated manually for example, the Symlinks would change and get corrupted and the entire directly needs be re-synced via scripts as its re-generated. This is a Ice breaker at-least for me that this is not handled natively. So Brew is my choice of poison.
This is really well-done as all others said and helpful for someone just moves from linux to mac. Could I possibly check how I could further modify the program such as neovim? thanks!
Thank you very much, this is very interesting. I’ll definitely give it a try. Since I'm not starting from a clean installation, would it be ok to uninstall Homebrew and its related dependencies in order to manage everything with Nix instead? Can't wait to see the next video!
This is like so incredibly complicated tho. Like, sure, I love the declarativity but I don't wanna do a million steps for every configuration change! Isn't there some way to manage these lists automatically? Like, when I want change a setting, why do **I** have to find out what it's called internally and add that to a huge text file, why can't that *just happen* when I change the setting in the settings app? Until this process has been made simpler, I sadly won't switch
You are missing the point and lean strongly into hyperbole. If you want to change one setting, it’s usually 1 value inside nix. Done, versioned, easily replicated or transferred to other machines. Sure you can go create a classic dotfiles repository that adds 10 different config filetypes scattered across the file system to version control. But that’s like going back to the stone age. Nix is a must-have nowadays for me. It brings so many advantages to the table that everything else feels almost unusable.
This looks like a lot like chef. Makes sense if you have to manage a fleet of Mac, otherwise the configuration of your own only machine is done once, the time it takes to do it manually is the same if not less. But then what if you buy a new machine in 4 years? Are you sure you’ll keep the configuration up to date for 4 years? I appreciate your video, though, I’m sure it’s a good solution for some use case.
@@spidLL Of course you keep the config up to date. By definition. Since making changes is done my changing the configuration. State is very tightly controlled on a correctly setup Nix installation. Personally I use impermanence with ZFS snapshots so state is wiped on reboot except the things I want to keep explicitly.
Thanks for this fantastic video! Is there a relatively eaasy answer to the question of how ansible would compare to nix package manager? Did you ever compare?
even though ansible is all yaml, it's entirely imperative. if you've worked with github actions before, it's basically exactly that. you write a yaml file that basically goes "hey, run these jobs in this order". it's better than regular shell scripting since it's cross platform and it abstracts away the actual shell commands you have to run, but at the end of the day it's an imperative language. you can get pretty good reproducibility and whatnot by pinning versions and such, and it certainly has its uses, but nix is a whole other beast
Thanks a lot for the video. I have a question though. Does specifying your applications declaratively like you did here stop you from updating your apps on MacOS via the app's buil-in app updation features? I get pop ups if i click check for updates on some apps and with the limited experience I have, I am still able to update my apps like that. Is this supposed to happen? If not, what might I be doing wrong?
Currently I have a common Ansible script to setup all my machines: macOS, Debian and Windows. Nix seems very interesting, now I want to migrate my Ansible script to Nix 😄 Is Nix really compatible with Windows ? (if it is, then it is aweeeesome) For example when you add the Alacritty app, it means that I can execute it the same way on Linux, Windows and macOS ?
Very cool. And just in time too. Going to buy a new MacBook soon and this is a great time to play around with Nix. Already setup Nix-Darwin in a VM, defined the apps I like. So when I take the new Mac out of the box I just clone my git repo and I'm ready to go. One question: I could not find the setting to disable the window gaps that Sequoia introduced. Has anyone found the correct setting to define in the flake?
absolutely amzing !! I was looking for such video for quiet sometime!!!... Kindly expedite teh home manager video and also how to use the NIX in Arch linux... as wel
Bro you're the best out there. Is there any possibility for you to make a video about setting up an environment based nixos flake in the cloud that is basically a frontend and backend that is extensible with a deployment tool like Terranix or Colmena?
Great video, I've been wanting to get into Nix for so long but haven't put aside the time to do it. This might just be the push I needed! Question, are you using NixOS on Linux now as well or only using the Nix package manager?
8:43 I guess using the unstable is not a big problem; as you would be able to roll back to a previous working configuration if a package breaks, right? Can it also handle downgrading Homebrew packages? I had an issue with homebrew, after an upgrade I couldn't connect to Heroku Postgres databases (didn't notice right away, as I'd very rarely log on to production servers). Downgrading was annoying, don't think I got it fixed, until it was actually fixed in the homebrew-installed versions. (using other means to connect)
That's correct! Updates only take place on nix packages after you run nix flake update. Additionally you can rollback to a previous generation. Homebrew offers much less guarantees which is why I prefer to use nix packages over the homebrew ones.
Given that you are established good programmer TH-camr in order to align with the rest of community I would strongly suggest to shave your beard and leave a mustache
> installs nixOS > sudo nixos-rebuild --flake .#mySystem > home-manager --flake .#myUser System configured. That endless configuration cycle is much worse on other operating system/package managers and even then it's your fault if you dive in there. Skill issue.
Your dotfiles are not modular or easily transferable to other machines since there is no module system with options. You cannot rollback to working versions. You have none of the advantages of nixpkgs. You can’t cross-reference values inside your config. Your bash scripts are imperative and have no undo. The list goes on. Different beast.
I was wondering, what the lower case `-r` flag does for the cp command and this is what the man page says. Are you using it as `-RL`? Historic versions of the cp utility had a -r option. This implementation supports that option, however, its behavior is different from historical FreeBSD behavior. Use of this option is strongly discouraged as the behavior is implementation-dependent. In FreeBSD, -r is a synonym for -RL and works the same unless modified by other flags. Historical implementations of -r differ as they copy special files as normal files while recreating a hierarchy.
Amazing video, but unfortunately very complex for my use case. How does Nix would be different to Ansible for this fresh configuration routine? I miss having something like Scoop, a package manager for Windows systems. It's way more advanced and refined than Homebrew, with some Nix-like features like the simple app version change. At the same time, Scoop is easier to use than homebrew itself!
ad-hoc shells with dependencies for development or testing out applications, packages are actually built by nix deriviations so you can literally package your own and publish them, apps can use different versions of the same dependency without a problem, almost completely verifiable builds and compared to ansible where you define iterative instructions in nix you define the state that should be resched
FYI: You can also set up Nix on an existing macOS install with homebrew already!
Just set the autoMigrate = true; which I cover in the video, and leave out the line with "zap" when I set up homebrew packages, this will prevent your existing installs from being... "zapped".
Additionally, I've added in a README which contains any amendments or faqs from the video. If you have an issue, feel free to raise an issue on the repo!
github.com/dreamsofautonomy/nix-darwin-amendments
Thanks very much for this video! Is there a way to get a list of brew packages/casks that are currently installed in a format that would work with the flake? So that we can enable the "zap" option
@@wizardfrag I haven't watched the video yet. But when i moved over to nix-darwin I used a "brew bundle dump" and got the list of brews, casks and taps. That could then be put into the homebrex part of nix
I would still use the Determinate Installer, since it has been shown to survive macOS upgrades much better.
I've been thinking of consolidating all my Win/Mac/Linux dotfiles into a nix repo for a while now, I guess once your dotfiles video is up I might finally give it a go. Thanks for this
Unfortunately nix doesn't work for windows yet
@@purewaterruler there was a nixos wsl right ?
I’ve been researching Nix on and off for a couple of months and this is hands down the best introduction I’ve come across. Well explained and great production.
Looking forward to the next video.
The best video I have seen is "Ultimate Nix Flakes Guide" by Vimjoyer. It is very good, he has made several videos explaining flakes, but the difference with this one is that you clearly see that he actually understand what he is explaining very well, and he has learned how to teach this information.
Another creator with videos that explains things very very clearly is Iogamaster,
Another creator with not so many nix videos, but his nix video is impeccably good at explaining is "No Boilerplate"
There are many other creators that make good videos, the 3 I listed above I found to be able to explain complex things super clearly
Thank you! I really appreciate that. This video took me a few goes to film in order to explain it correctly!
I'll be doing nixOS soon as well!
@@dreamsofautonomy IDK how different it is but could you do nix on other linux distros than nixos. I have experienced having to wrap apps with nixgl and other issues.
That intro is 11/10
Thank you!
no?
Not even 2 minutes and I’m sold already
While I love this tech (and your demo of it), I replace my mac every 3-4 years at best, at that point it is actually valuable to have to reconsider apps and settings. I do think this nix setup can be awesome for a developer experience tool, where large teams can manage a baseline for a dev machine that devs can fork from.
Yeah I was thinking the same thing. How often do I install a Mac from zero?
Very rarely it turns out.
This is a game changer for how I use macOS. The video is remarkably well done. Looking forward to the next one.
I started using NixOS on my Linux laptop this weekend and I was immediately hooked. The fact that it's at least partially available on Mac is amazing
I am a linux user too, but i may get a MAC for my first job soon, this video is a life saver at the absolute best time :D
Thank you for the video Elliott. I was trying out nixos time to time and it was really hard to get used to. Especially the whole flake and home-manager stuff. I am looking forward to more nix content.
That was awesome!! You've just solved the last problems I've been having with my dotfiles with a tool I've been eager to try. Thanks!!!!
Thank you so much!
I'll do the home-manager video soon which is where some real magic happens!
The fact that you share your knowledge, and more specifically the way you share it, it is pure gold to me
Thank you so much
Fantastic! What a good walk-through. Have implemented all on my MBA M2, and only the 'read -r' was missing 🙂 Thank you so much.
following your channel from the arch install video and waiting on this video from the day when i learned you use nix
great video as always🤩
First I was like, how is this better than brew? But I am glad I continued watching! This seems really great way to setup macOS. Thanks for a great introduction.
I am lost for words, truly amazing piece of content. Can't wait for the next video!
I was already quite interested by Nix and macOS even tho I didn't owned a MacBook, and this video was perfect to explain how Nix work (even as a NixOS user I learned some things I did not understood before).
This video was perfect
I have some NixOS based content coming soon!
Cant wait for the next parts! Awesome video!
Absolute game changer!! I can't wait for your home manager video like managing dotfiles with Nix, all of that put together is just maximum config satisfaction 😩😍
I really enjoyed this video, wasn't too technical but also didn't lack detail so I could understand what I was doing as I followed along, I feel like I can finally start learning nix
This is the best Nix setup video I've ever watched. Waiting for Nix Home Manger 🤞
Awesome video!
Great video. I recently move to using nix, got everything running but this video is very helpful. thanks for making it simple and accessible.
Спасибо за видео наконец с самого начала все точно и четко обьяснил кто-то )
Отличное видео )
awesome video! thanks for this. The video really help me getting started with nix after looking at it for a while from the sidelines and just using ansible and brew. Nearly done with migration to nix.
I'm very glad to hear that!
This is top tier. Will refer to it when I switch to a macbook
Thank you for the comprehensive getting started guide
Great video. One small comment on the homebrew configuration: if you decide to use home-manager, you won't have to use the extra homebrew module since home-manager comes bundled with homebrew support, which I think makes the configuration a bit cleaner.
This is a fantastic guide for Nix. Thank you so much!
Needed this as I am an hardcore linux user with nixOs but will need to use mac in future too.
A new level of confidence and power - Pantera 1992
Fantastic video, love your work. Looking forward to the follow up videos.
IVE BEEN WAITING FOR THIS VIDEO FOR MONTHS LETS GOOOO
really enjoyed and im rolling it out for my stuff, look forward to the follow on video!
Excellent video! Good job! I think you did a good job explaining everything important to know :).
Thank you!
Great (simple) tutorial, would appreciate a similar one for a Linux machine. Even a gist would do. Thanks, keep up the awesome work.
I'll be doing nixOS soon as nix as well!
@@dreamsofautonomy amazing, thank you! Would you also be covering how to just use the home manager (or something like nix-darwin on Linux) for people who wouldn’t want a full blown nixOS?
Been looking for something like this, to sync my personal and work mac.
Just when I got a new work Mac! Thank you for this!
Awesome, waiting for the home manager vid!
Not just macos. every linux distro, and windows (wsl) should all use nixpkgs
Is there a video out there on how to set it up on WSL?
It would be awesome to have it on Windows, too
Everyone should use guix
@@HUEHUEUHEPonyWhat does it bring that justifies more fragmentation?
This is both waste of time and disk space
Eagerly awaiting the home-manager part. This is really hard to get working!
I appreciate the patience! I've been swamped with some other projects but will be getting on it soon!
@@dreamsofautonomy No worries. I will in the mean time revisit some of your old videos! Take your time, don't spoil us 🙂
Excellent walkthrough thanks!
Thank you for yet another very informative video! Is there any downside to using Nix ? i.e. compatibilty, clash with MacOS features etc ?
Great video! Looking forward to the follow up!
Thanks this was well presented. I might try Nix, only drawback would be the multiple users created for a MDM corporate Mac. Do all of them require privilege access, or just 1 of them and the rest are like delegate/helper users?
I saw hammerspoon installed, would love a video to see how you use it. Do you use a hyper key on your setup?
Thank you so much for this in-depth and easy to follow tut! Any idea on when can we expect the next video about dotfilesnix integration?
Thank you so much for your support!
I'll aim to get home-manager video done in the next month! Unsure if I should do a nixOS video before or after though!
A word of warning when using Apple Silicon. DO NOT FORGET TO CHANGE THE HARDWARE ARCHITECTURE before running any command. I failed to change that before running the `nix run .... nix-darwin ...` command. Changing the architecture after the fact, I was already in a bad state. When I later changed the architecture, nothing worked, everything failed with a bad architecture error message.
I ended up completely removing nix, and reinstalling. This again didn't work because I should apparently have uninstalled nix-darwin first. So there were some SSL certificate lookup issues, which took some time figuring out.
This was a big hassle that would have been avoided if I had properly followed your steps, and change the hardware architecture immediately. (Problem of first watching the video to the end, and then decide to try it myself after that, just fast-forwarding to the important bits).
Doing this on my next Macbook Pro! Awesome video.
You can do it on your current one as well!
@@dreamsofautonomy I thought about it. Currently, I have two different projects going with building a Nix based hypervisor, based on your other homelab setup video, and a TrueNAS Scale Baremetal build. Adding on to those two may be more than I can handle all at once. Will have to explore the Mac situation after that!
If you do it on your current MacBook, swapping to the new on will be so much easier.
My MacBook Pro is my working machine. I am afraid it will brick it or something 😅
great video very useful set up process thank you very much. I'm new to package management systems and never used home-brew before, what's the difference between "brew"and "cask" installations. kind regards
Yeah we would love to see managing dotfiles with nix ! I'm going to buy a mac soon and it would so nice to be prepared for a full setup already to syn it with my current linux laptop
Absolutely! Home manager has been really cool to get set up and working, and for some configurations it works like stow!
@@dreamsofautonomy I'm currently working on it since your video, it's really great ! However not easy to have good practices. I can't wait to see your configuration (how you configure zinit for instance)
you said you didnt like this video? 5s in and its already a banger
ey, big-man. That was a good video! keep going. The nix content is lovely, thanks
Thank you! I really appreciate that dude.
I spent far too long on this one and I ended up letting perfect be the enemy of done.
I need to get back into the habit of releasing videos more often
you never stop amazing me
This video might be the final nudge to get me to try Nix. Really appreciate the work you put into this. Thanks for sharing!
Capabilities of the tool are amazing. But I didn't like how intrusive it is and how much it modified the system.
Unfortunately that is the point of nix. There's an even more 'intrusive' version called NixOS (a linux distro), where everything on the operating system is managed by nix.
Iirc there's a github gist to enable you to install nix but on your home directory, I'm not sure how it will impacted your setup but it's quite useful especially for non-sudo user
I achieved the same using Ansible, dosent matter macOS or Linux (I can create a 1:1) setup under 2 minutes.
The problem I have with nix is the separate volume that takes up tons of space and gui apps dosent show in launcher in macOS.
But you do you!
I show how to set up gui apps in the launcher! You should watch the video if that's your concern.
@@dreamsofautonomyThanks for getting back. I did watch the entire video and had a script myself to link applications recursively inside NixApps (Not with the flakes way to doing things though). What i faced was if an applications were to be updated manually for example, the Symlinks would change and get corrupted and the entire directly needs be re-synced via scripts as its re-generated. This is a Ice breaker at-least for me that this is not handled natively. So Brew is my choice of poison.
This is really well-done as all others said and helpful for someone just moves from linux to mac. Could I possibly check how I could further modify the program such as neovim? thanks!
Nix is my favorite package manager to use on NixOS
Very good video, I'll try Nix
very nice tutorial, thanks a lot!
Thank you very much, this is very interesting. I’ll definitely give it a try.
Since I'm not starting from a clean installation, would it be ok to uninstall Homebrew and its related dependencies in order to manage everything with Nix instead?
Can't wait to see the next video!
You can migrate easily as well! No need to uninstall everything. My pinned comment has the changes you'll need!
The vocal effect change at 13m is so jarring
damn boyy!
that is nice
I just need a linux laptop to keep in sync :p
Jokes aside, that would be a good use case for workpersonal computers sync
I’ve slept on Nix, man. Incorrectly I assumed GUI apps were excluded. I may spin up a VM and give this a shot.
OMG!! This is so awesome
Thanks!
Thank you so much for the support!!
Great video. I've been a Nix/NixOS for quite some time.
What color scheme do you use. It matches MacOS perfectly
Tokyo night!
nice! waiting for more ;)
Looking at thumbnail 😊 then looking at 20:00 😢
This is like so incredibly complicated tho. Like, sure, I love the declarativity but I don't wanna do a million steps for every configuration change! Isn't there some way to manage these lists automatically? Like, when I want change a setting, why do **I** have to find out what it's called internally and add that to a huge text file, why can't that *just happen* when I change the setting in the settings app? Until this process has been made simpler, I sadly won't switch
Nix 100% has a steep learning curve. But in my opinion, and after having used it for 6 months, the benefit is well worth the cost.
You are missing the point and lean strongly into hyperbole. If you want to change one setting, it’s usually 1 value inside nix. Done, versioned, easily replicated or transferred to other machines.
Sure you can go create a classic dotfiles repository that adds 10 different config filetypes scattered across the file system to version control. But that’s like going back to the stone age.
Nix is a must-have nowadays for me. It brings so many advantages to the table that everything else feels almost unusable.
Only sane comment here
This looks like a lot like chef. Makes sense if you have to manage a fleet of Mac, otherwise the configuration of your own only machine is done once, the time it takes to do it manually is the same if not less. But then what if you buy a new machine in 4 years? Are you sure you’ll keep the configuration up to date for 4 years?
I appreciate your video, though, I’m sure it’s a good solution for some use case.
@@spidLL Of course you keep the config up to date. By definition. Since making changes is done my changing the configuration. State is very tightly controlled on a correctly setup Nix installation. Personally I use impermanence with ZFS snapshots so state is wiped on reboot except the things I want to keep explicitly.
Very nice guide to point mac people to.
Awesome video, I think I'll show this to a mac friend and tell him to join me on the dark side.
HE BE BACK
We're so back!
Pure gold content
Accha ji 😂
Thanks for this fantastic video!
Is there a relatively eaasy answer to the question of how ansible would compare to nix package manager?
Did you ever compare?
I've still not yet tried Ansible unfortunately! I'll have to give it a go soon and do a comparison!
even though ansible is all yaml, it's entirely imperative. if you've worked with github actions before, it's basically exactly that. you write a yaml file that basically goes "hey, run these jobs in this order". it's better than regular shell scripting since it's cross platform and it abstracts away the actual shell commands you have to run, but at the end of the day it's an imperative language. you can get pretty good reproducibility and whatnot by pinning versions and such, and it certainly has its uses, but nix is a whole other beast
PLEASE MAKE A VIDEO ON YOUR LINUX/NIX OS SETUP it looks soooo good
Absolutely! A video is coming soon 😁
Thanks a lot for the video. I have a question though. Does specifying your applications declaratively like you did here stop you from updating your apps on MacOS via the app's buil-in app updation features? I get pop ups if i click check for updates on some apps and with the limited experience I have, I am still able to update my apps like that. Is this supposed to happen? If not, what might I be doing wrong?
Currently I have a common Ansible script to setup all my machines: macOS, Debian and Windows.
Nix seems very interesting, now I want to migrate my Ansible script to Nix 😄
Is Nix really compatible with Windows ? (if it is, then it is aweeeesome)
For example when you add the Alacritty app, it means that I can execute it the same way on Linux, Windows and macOS ?
Nix mentioned!
Very cool. And just in time too. Going to buy a new MacBook soon and this is a great time to play around with Nix. Already setup Nix-Darwin in a VM, defined the apps I like. So when I take the new Mac out of the box I just clone my git repo and I'm ready to go.
One question: I could not find the setting to disable the window gaps that Sequoia introduced. Has anyone found the correct setting to define in the flake?
how do you feel about the recent "PURGE"?
Wow. Very nice and complete intro to nix configuration on MacOS! Are there any reasons you are not using the Determinate Nix Installer?
amegamazing
Very informative video. I wonder how Ansible would stack up against Nix. Jeff Geerling uses Ansible in a very similar way to setup his Macs.
absolutely amzing !! I was looking for such video for quiet sometime!!!... Kindly expedite teh home manager video and also how to use the NIX in Arch linux... as wel
why tf would you use nix on arch??? Just use NixOS
Home manager video expedited!
@@dreamsofautonomy thanking you kindly!!
Bro you're the best out there.
Is there any possibility for you to make a video about setting up an environment based nixos flake in the cloud that is basically a frontend and backend that is extensible with a deployment tool like Terranix or Colmena?
Great video, I've been wanting to get into Nix for so long but haven't put aside the time to do it. This might just be the push I needed!
Question, are you using NixOS on Linux now as well or only using the Nix package manager?
Thank you!
I'm now using nixOS on Linux! But I took about 6 months to migrate over, mainly due to the learning curve!
@@dreamsofautonomy That's awesome, if you ever feel like making nixOS videos, I'll be first in line to see them! :)
noice
Hi thank you for video!
One thing remains unclear to me - how do you pin to dock application installed from appstore?
Please do a video about home-manager and nix! I've been tryint to make that work but I'm not sure if I'm doing things right
Thanks for the detailed video. Strange, but upon each rebuild nix asks me to provide the password. What could be the reason?
My dude how do you keep reading my mind. First it was obsidian , now it is this.
8:43 I guess using the unstable is not a big problem; as you would be able to roll back to a previous working configuration if a package breaks, right?
Can it also handle downgrading Homebrew packages? I had an issue with homebrew, after an upgrade I couldn't connect to Heroku Postgres databases (didn't notice right away, as I'd very rarely log on to production servers). Downgrading was annoying, don't think I got it fixed, until it was actually fixed in the homebrew-installed versions. (using other means to connect)
That's correct! Updates only take place on nix packages after you run nix flake update.
Additionally you can rollback to a previous generation.
Homebrew offers much less guarantees which is why I prefer to use nix packages over the homebrew ones.
Given that you are established good programmer TH-camr in order to align with the rest of community I would strongly suggest to shave your beard and leave a mustache
yeah sure, instead of doing work on a laptop, let's dive in an endless cycle of configuring your environment....
False dichotomy
Found the project manager.
Its not endless
@@dreamsofautonomyI’ll be done in one sprint hahahah
> installs nixOS
> sudo nixos-rebuild --flake .#mySystem
> home-manager --flake .#myUser
System configured.
That endless configuration cycle is much worse on other operating system/package managers and even then it's your fault if you dive in there. Skill issue.
Banana, Banana, Banana, I want that banana cursor !!, Banana, Banana, get me that banana !
I have all of this accomplished and more with dotfiles and a bash script. So I have to wonder…did I miss something that makes Nix superior?
Your dotfiles are not modular or easily transferable to other machines since there is no module system with options. You cannot rollback to working versions. You have none of the advantages of nixpkgs. You can’t cross-reference values inside your config. Your bash scripts are imperative and have no undo. The list goes on. Different beast.
Isolated per-directory dev environments. Kind of like venvs in python but better
I was wondering, what the lower case `-r` flag does for the cp command and this is what the man page says. Are you using it as `-RL`?
Historic versions of the cp utility had a -r option. This implementation supports that option,
however, its behavior is different from historical FreeBSD behavior. Use of this option is
strongly discouraged as the behavior is implementation-dependent. In FreeBSD, -r is a synonym for
-RL and works the same unless modified by other flags. Historical implementations of -r differ as
they copy special files as normal files while recreating a hierarchy.
Is it possible to have something similar on linux or WSL2 to be precise?
Amazing video, but unfortunately very complex for my use case. How does Nix would be different to Ansible for this fresh configuration routine?
I miss having something like Scoop, a package manager for Windows systems. It's way more advanced and refined than Homebrew, with some Nix-like features like the simple app version change. At the same time, Scoop is easier to use than homebrew itself!
ad-hoc shells with dependencies for development or testing out applications, packages are actually built by nix deriviations so you can literally package your own and publish them, apps can use different versions of the same dependency without a problem, almost completely verifiable builds and compared to ansible where you define iterative instructions in nix you define the state that should be resched
Why I have to run "exec zsh" after running "darwin-rebuild" to make the packages on my PATH and you don't in the video?
Great video btw!!
After the first install I had to open up a new window but after that they should be on the path.
It might be because I'm also using home manager!