I'm not a dev or programmer by any stretch of the imagination... but I dove in face-first into NixOS... it's true you can't break this system... because... IT BROKE ME 🤡
Small thing: You technically don't need the .config/nix/nix.conf, as you can configure these with the nix.settings attrset, e.g. nix.settings = { experimental-features = ["nix-command" "flakes"]; }; This saves me having to set up nix.conf on every machine EDIT: Damn, I knew I should've finished the video before commenting 😅
What a perfect timing, recently I watched some videos about nixOS out of curiosity, but I didn't know that it's also available on macOS, what a surprise!
Wonderful video, I really appreciate it. I've been considering learning Nix, but I know that will mean months of time invested, and knowing myself, I won't be able to stop, but I'll keep it in mind. As of now, I setup my mac with a bash scripts that: - installs brew - downloads and gives me access to my github repos (one of them being my dotfiles) - Installs my brew packages (that gets from my dots) - Configures tmux - Configure the macos defaults settings - Configure karabiner - etc As always, great videos, thank you!
nix is a true rabbit hole - since I've discover it I change my both machines to it - Mac and arch linux and changing all my config files to it. Chapeau and keep up with the series . Desk setup tour when?
I like the idea that nix is getting more popularity, and I really appreciate ppl making videos abt it! Maybe I am wrong, but somehow the video felt a bit "rushed"... I have been using NixOS for the past year and you were jumping through the config a lot, without taking some time to explain it a bit. It was a bit overwhelming, so maybe potential Nix users could get scared off. I am also more used to vimjoyers concept of nix videos, where he tackes things step by step, explaining things.. and not config - desktop - then config back, but different line, desktop, and so on.
@@stefanbuchberger2581 ZSA platform for tenting, switches are the Gateron yellow, the keycaps are the ones shipped with the keyboard (blank version of course)
Looks interesting! For me the question arises, how much time does one save with this actually? How often does one change Macs? I can envision myself spending at least one entire weekend or more trying to get this to work properly. I expect my Mac to last at least 7 years, and when I change over to another one, I would probably just start from scratch or export my list of brew packages if i'm feeling lazy. Then I pull my dotfiles, and the rest is all containerized or cloud synched. I aspire to have a "Stateless Workstation". Basically everything important is backed up to GitHub, my NAS or cloud synched. This way I can even change between different operating systems relatively easily.
@@mischavandenburg I think those who would benefit such a setup most are either people using multiple workstations regularly or find them selves often switching machines. You can read Mitchell Hashimoto’s (founder of hashicorp) old notes regarding his Nix setup. This is what got me interested in the first llace
@@devopstoolbox I agree, in this kind of situation it is definitely an advantage. I'm still trying to think of situation where one switches mac devices often though ^^ Do you know any?
@@mischavandenburg TBH, yep, I use 2 - personal + work one, and I like my tools and configurations to stay the same. The use case where Mitchell used it he runs a linux and a virtual box inside with a reconfigured machine that he keeps moving around
@@devopstoolbox I hadn’t thought of synchronizing across devices. Indeed I can see how having everything in code can be useful to change something on one Mac and then pull those changes to another later. I basically do the same but I have it compatible for all operating systems by using dev containers + devpod. Thank you for the reply! 💡
@devopstoolbox What are your thoughts on home manager? Currently dipping my toes into nix. Does it replace gnu-stow for .config linking or do they work in symbiosis?
To be honest, I was hoping that you would sip through all the options and find the most useful ones to put in the video because i'm a nix-darwin user already. But it's a good video regardless. Thanks man
How do you get nix to follow the symlinks? I get hung up on either an error that the path doesn't exist or that the flake isn't a flake. Am I missing something?
hi mate. just found your awesome channel today. Do your nix config files include all the packages and tools you use on your macbook? Would love to have that running on my mac too. 💪
Well...... let me put it this way: if you like rabbit holes, Nix is one you'll never come out of 😅 In all honesty - I just like the speed, elegance and robustness of nix.
Thank you so much for this awesome tutorial. May I ask what’s the Terminal name you are using? And what shell are you using Bash or Zsh? I’m assuming it’s Zsh (Oh my Zsh). Please correct me if I’m wrong. I appreciate the effort you put into your videos. Like and subscribe!
@@RaffaelN thank you! I’m running zsh on wezterm and using starship as my prompt. There’s a recent video I made covering the entire setup if you like ;)
literally all of this has been configurable in an automated way since the first version of Mac OS X. What advantage does all this complexity bring me vs just doing this all in a shell script running commands to change a few .plist keys and using installomator to install third party software?
@@whette_fahrtz mainly the recoverability of your configuration. As someone who tweaks it fairly often and only pushing git changes when I’m ready, the in-between is always in danger. This fixes the problem for me.
I use ansible to install all my apps and configuration with one command, in linux and macOS, but this adds the posibility to control the macOS settings via code... interesting, thanks for the video!
@@tonyc_618 I ditched my entire ansible setup after realising what I can do with nix… and I spent a lot of time fine tuning my ansible setup, so it had to be worth it.
@@bulldoser2610 Finally someone asks! If we want to be accurate - a server can be 100% automated through its provisioning, initial deployment, installations, runtime till the end of its life. A Mac can’t, you have to have a human interacting with it at least for the the very start including getting nix and home manager installed. Hence the missing 5%
Two main reasons - 1. not everything is baked as a nix package, and devtools often bother with homebrew only.. 2. convenience - it's easier to port and already existing list of brews
you spend your life for changing one default parameter in Chrome, or VLC, or Cursor.. MUCH more that what you would use by installing a new laptop from scratch and getting rid of old trash that you don't use anymore on your old laptop... and maybe even some of the things/configurations, fail, due to changes in the packages that NIX config has not upgraded.. NIX is great for IaC, when you deploy 1K servers/containers whatever in a year, and you want a standard baseline. But for a personal laptop, it makes absolutely nonsense. imho
Legit. Although most of my IaC is built with terraform, sometimes vendor-code, and rarely ansible, I've never tried Nix for that. The only places I do hear about it is actually people using it for localhost. That said, you have a point, Nix isn't as solid as I'd wish, but it's the best i found for what I'm doing and the way I configure my things.
Its been a year and a half now since I've gone down the rabbit hole... never came back out I'm in the position now where my macbook can go up in smoke and I'll be able to setup a new one in less than an hour... the nix bit only takes 15 minutes... you can guess what the rest of the time is spent on...
Join 2000+ subscribers getting one dev/sec/ops tip every Friday: signup.omerxx.com
Welcome to the rabbit hole
@@anthonyoleinik6472 😅🥲
This rabbit hole is very very deep
I'm not a dev or programmer by any stretch of the imagination... but I dove in face-first into NixOS... it's true you can't break this system... because... IT BROKE ME 🤡
@@simian3455 😆
what’s that scratchpad like terminal you opened?
My community has been telling me this is the way to go, thanks for the clear introduction to Flakes on macOS!
@@JoshMedeski ❤️
Small thing: You technically don't need the .config/nix/nix.conf, as you can configure these with the nix.settings attrset, e.g.
nix.settings = {
experimental-features = ["nix-command" "flakes"];
};
This saves me having to set up nix.conf on every machine
EDIT: Damn, I knew I should've finished the video before commenting 😅
What a perfect timing, recently I watched some videos about nixOS out of curiosity, but I didn't know that it's also available on macOS, what a surprise!
I switched to nix a few months ago and i am absolutely lovin it. Especially stylix and home manager.
Wonderful video, I really appreciate it. I've been considering learning Nix, but I know that will mean months of time invested, and knowing myself, I won't be able to stop, but I'll keep it in mind.
As of now, I setup my mac with a bash scripts that:
- installs brew
- downloads and gives me access to my github repos (one of them being my dotfiles)
- Installs my brew packages (that gets from my dots)
- Configures tmux
- Configure the macos defaults settings
- Configure karabiner
- etc
As always, great videos, thank you!
@@linkarzu I get your point. But it doesn’t have to be months. Surly not if you’re just using Darwin! But yeah, it’s hard to get out 😅
@@devopstoolbox good to know, thank you. neovim owns my time right now, cannot cheat on it with Nix, but I will give it a try some day.
nix is a true rabbit hole - since I've discover it I change my both machines to it - Mac and arch linux and changing all my config files to it. Chapeau and keep up with the series . Desk setup tour when?
@@itisciprian soon! In the queue 😅
I like the idea that nix is getting more popularity, and I really appreciate ppl making videos abt it! Maybe I am wrong, but somehow the video felt a bit "rushed"... I have been using NixOS for the past year and you were jumping through the config a lot, without taking some time to explain it a bit. It was a bit overwhelming, so maybe potential Nix users could get scared off.
I am also more used to vimjoyers concept of nix videos, where he tackes things step by step, explaining things.. and not config - desktop - then config back, but different line, desktop, and so on.
@@arunoruto point taken, thank you!
What is the benefit of using homebrew instead of nixpkgs to install your packages? Do you use it this way, because you already set it up this way?
No benefit. the other way around. in some rare cases that's the only way to get something, in other cases, just muscle memory / copying from the docs
What keyboard stand, switches, keycaps and cables do you use for your moonlander?
@@stefanbuchberger2581 ZSA platform for tenting, switches are the Gateron yellow, the keycaps are the ones shipped with the keyboard (blank version of course)
Nix mentioned lets go
@@Redyf 😉
Looks interesting! For me the question arises, how much time does one save with this actually? How often does one change Macs? I can envision myself spending at least one entire weekend or more trying to get this to work properly.
I expect my Mac to last at least 7 years, and when I change over to another one, I would probably just start from scratch or export my list of brew packages if i'm feeling lazy.
Then I pull my dotfiles, and the rest is all containerized or cloud synched.
I aspire to have a "Stateless Workstation". Basically everything important is backed up to GitHub, my NAS or cloud synched. This way I can even change between different operating systems relatively easily.
@@mischavandenburg I think those who would benefit such a setup most are either people using multiple workstations regularly or find them selves often switching machines.
You can read Mitchell Hashimoto’s (founder of hashicorp) old notes regarding his Nix setup. This is what got me interested in the first llace
@@devopstoolbox I agree, in this kind of situation it is definitely an advantage. I'm still trying to think of situation where one switches mac devices often though ^^ Do you know any?
@@mischavandenburg TBH, yep, I use 2 - personal + work one, and I like my tools and configurations to stay the same.
The use case where Mitchell used it he runs a linux and a virtual box inside with a reconfigured machine that he keeps moving around
@@devopstoolbox I hadn’t thought of synchronizing across devices. Indeed I can see how having everything in code can be useful to change something on one Mac and then pull those changes to another later. I basically do the same but I have it compatible for all operating systems by using dev containers + devpod. Thank you for the reply! 💡
@devopstoolbox What are your thoughts on home manager? Currently dipping my toes into nix. Does it replace gnu-stow for .config linking or do they work in symbiosis?
To be honest, I was hoping that you would sip through all the options and find the most useful ones to put in the video because i'm a nix-darwin user already. But it's a good video regardless. Thanks man
I wanted to make something for beginners. But you make a good point, maybe I'll make another one exploring the best bits
How do you get nix to follow the symlinks? I get hung up on either an error that the path doesn't exist or that the flake isn't a flake. Am I missing something?
I fixed this by committing the file
hi mate. just found your awesome channel today. Do your nix config files include all the packages and tools you use on your macbook? Would love to have that running on my mac too. 💪
@@mihaelbos thanks man! It doesn’t include everything yet but I’m slowly moving towards nix
which terminal did you used in video? it is very nice
Should I replace homebrew with nix packages or am I going too far in the rabbit hole?
Well...... let me put it this way: if you like rabbit holes, Nix is one you'll never come out of 😅
In all honesty - I just like the speed, elegance and robustness of nix.
How did you make the browser transparent?
Love your videos btw definitely worth a subscribe !
@@zestynotions thank you!!🙏🏽
really useful.
Thank you so much for this awesome tutorial. May I ask what’s the Terminal name you are using? And what shell are you using Bash or Zsh? I’m assuming it’s Zsh (Oh my Zsh). Please correct me if I’m wrong. I appreciate the effort you put into your videos. Like and subscribe!
@@RaffaelN thank you!
I’m running zsh on wezterm and using starship as my prompt. There’s a recent video I made covering the entire setup if you like ;)
hmm if you use nix apps why depend on homebrew in your setup? is something missing from homebrew ?
@@zestynotions 1. People have hard time letting go of their old ways
2. Sometimes brews aren’t published to nix…
Also spotlight search can't search apps installed by nix.
@@this_minizilla good point
literally all of this has been configurable in an automated way since the first version of Mac OS X.
What advantage does all this complexity bring me vs just doing this all in a shell script running commands to change a few .plist keys and using installomator to install third party software?
@@whette_fahrtz mainly the recoverability of your configuration. As someone who tweaks it fairly often and only pushing git changes when I’m ready, the in-between is always in danger. This fixes the problem for me.
dang this is really cool!
What keyboard is this one ? :+eyes
Moonlander! Video coming soon :)
I use ansible to install all my apps and configuration with one command, in linux and macOS, but this adds the posibility to control the macOS settings via code... interesting, thanks for the video!
@@tonyc_618 ansible is a cool way of doing local config! I’m assuming it takes more work though compared to a system like home manager
@@tonyc_618 I ditched my entire ansible setup after realising what I can do with nix… and I spent a lot of time fine tuning my ansible setup, so it had to be worth it.
What is the 5 percent remaining?
@@bulldoser2610 Finally someone asks!
If we want to be accurate - a server can be 100% automated through its provisioning, initial deployment, installations, runtime till the end of its life. A Mac can’t, you have to have a human interacting with it at least for the the very start including getting nix and home manager installed. Hence the missing 5%
why not using nix for everything rather than wrapping homebrew into it?
Two main reasons - 1. not everything is baked as a nix package, and devtools often bother with homebrew only..
2. convenience - it's easier to port and already existing list of brews
nix gang rise up
@@LiterateGoblin 😅
Nice!
Is it also possible to install some cracked software this way as well? 😂
That's for you to find out 😆
Someone experience with Sequoia and Nix?
Until the ridiculous and stupid executives at Mac headquarters decide that the required API are no longer supported
NixOS!!!! lets go!
Hard disk dies before your config dies.. - apple
you spend your life for changing one default parameter in Chrome, or VLC, or Cursor.. MUCH more that what you would use by installing a new laptop from scratch and getting rid of old trash that you don't use anymore on your old laptop... and maybe even some of the things/configurations, fail, due to changes in the packages that NIX config has not upgraded.. NIX is great for IaC, when you deploy 1K servers/containers whatever in a year, and you want a standard baseline. But for a personal laptop, it makes absolutely nonsense. imho
Legit. Although most of my IaC is built with terraform, sometimes vendor-code, and rarely ansible, I've never tried Nix for that. The only places I do hear about it is actually people using it for localhost.
That said, you have a point, Nix isn't as solid as I'd wish, but it's the best i found for what I'm doing and the way I configure my things.
As a former NixOS maintainer, stay the f&ck away from the Nix world and retain your sanity and faith in humanity.
Nix deez what ?
I am the 1000th viewer
Its been a year and a half now since I've gone down the rabbit hole... never came back out
I'm in the position now where my macbook can go up in smoke and I'll be able to setup a new one in less than an hour... the nix bit only takes 15 minutes... you can guess what the rest of the time is spent on...
@@c_kemper 😅