Nix Darwin Turned My Mac into a Fully Automated Machine

  Рет қаралды 42,003

DevOps Toolbox

DevOps Toolbox

Күн бұрын

Пікірлер: 81
@devopstoolbox
@devopstoolbox 2 ай бұрын
Join 2000+ subscribers getting one dev/sec/ops tip every Friday: signup.omerxx.com
@anthonyoleinik6472
@anthonyoleinik6472 3 ай бұрын
Welcome to the rabbit hole
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@anthonyoleinik6472 😅🥲
@Taddy_Mason
@Taddy_Mason 3 ай бұрын
This rabbit hole is very very deep
@simian3455
@simian3455 3 ай бұрын
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 🤡
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@simian3455 😆
@simonlauer9379
@simonlauer9379 2 ай бұрын
what’s that scratchpad like terminal you opened?
@JoshMedeski
@JoshMedeski 3 ай бұрын
My community has been telling me this is the way to go, thanks for the clear introduction to Flakes on macOS!
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@JoshMedeski ❤️
@wojciech-kulik
@wojciech-kulik 3 ай бұрын
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!
@1234minecraft5678
@1234minecraft5678 3 ай бұрын
I switched to nix a few months ago and i am absolutely lovin it. Especially stylix and home manager.
@347Online
@347Online 3 ай бұрын
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 😅
@itisciprian
@itisciprian 3 ай бұрын
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?
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@itisciprian soon! In the queue 😅
@linkarzu
@linkarzu 3 ай бұрын
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!
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@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 😅
@linkarzu
@linkarzu 3 ай бұрын
@@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.
@arunoruto
@arunoruto 3 ай бұрын
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.
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@arunoruto point taken, thank you!
@1234minecraft5678
@1234minecraft5678 3 күн бұрын
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?
@devopstoolbox
@devopstoolbox 2 күн бұрын
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
@mischavandenburg
@mischavandenburg Ай бұрын
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.
@devopstoolbox
@devopstoolbox Ай бұрын
@@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
@mischavandenburg
@mischavandenburg Ай бұрын
@@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?
@devopstoolbox
@devopstoolbox Ай бұрын
@@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
@mischavandenburg
@mischavandenburg Ай бұрын
@@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! 💡
@stefanbuchberger2581
@stefanbuchberger2581 3 ай бұрын
What keyboard stand, switches, keycaps and cables do you use for your moonlander?
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@stefanbuchberger2581 ZSA platform for tenting, switches are the Gateron yellow, the keycaps are the ones shipped with the keyboard (blank version of course)
@Redyf
@Redyf 3 ай бұрын
Nix mentioned lets go
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@Redyf 😉
@mihaelbos
@mihaelbos 2 ай бұрын
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. 💪
@devopstoolbox
@devopstoolbox 2 ай бұрын
@@mihaelbos thanks man! It doesn’t include everything yet but I’m slowly moving towards nix
@gnrsn9714
@gnrsn9714 2 ай бұрын
@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?
@MatthewMorrissey
@MatthewMorrissey 2 ай бұрын
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?
@yetso
@yetso Ай бұрын
I fixed this by committing the file
@binh1298ify
@binh1298ify 3 ай бұрын
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
@devopstoolbox
@devopstoolbox 3 ай бұрын
I wanted to make something for beginners. But you make a good point, maybe I'll make another one exploring the best bits
@bikramtuladhar
@bikramtuladhar 3 ай бұрын
which terminal did you used in video? it is very nice
@mjcramer
@mjcramer Ай бұрын
Should I replace homebrew with nix packages or am I going too far in the rabbit hole?
@devopstoolbox
@devopstoolbox Ай бұрын
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.
@guilhermeprokisch
@guilhermeprokisch 2 ай бұрын
How did you make the browser transparent?
@zestynotions
@zestynotions 3 ай бұрын
Love your videos btw definitely worth a subscribe !
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@zestynotions thank you!!🙏🏽
@rajkumarmano
@rajkumarmano 3 ай бұрын
really useful.
@RaffaelN
@RaffaelN 2 ай бұрын
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!
@devopstoolbox
@devopstoolbox 2 ай бұрын
@@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 ;)
@lapso9814
@lapso9814 26 күн бұрын
What keyboard is this one ? :+eyes
@devopstoolbox
@devopstoolbox 23 күн бұрын
Moonlander! Video coming soon :)
@vabatta
@vabatta Ай бұрын
why not using nix for everything rather than wrapping homebrew into it?
@devopstoolbox
@devopstoolbox Ай бұрын
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
@comosaycomosah
@comosaycomosah 3 ай бұрын
dang this is really cool!
@zestynotions
@zestynotions 3 ай бұрын
hmm if you use nix apps why depend on homebrew in your setup? is something missing from homebrew ?
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@zestynotions 1. People have hard time letting go of their old ways 2. Sometimes brews aren’t published to nix…
@this_minizilla
@this_minizilla 3 ай бұрын
Also spotlight search can't search apps installed by nix.
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@this_minizilla good point
@tonyc_618
@tonyc_618 3 ай бұрын
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!
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@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
@c_kemper
@c_kemper 3 ай бұрын
@@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.
@whette_fahrtz
@whette_fahrtz 2 ай бұрын
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?
@devopstoolbox
@devopstoolbox 2 ай бұрын
@@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.
@LiterateGoblin
@LiterateGoblin 3 ай бұрын
nix gang rise up
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@LiterateGoblin 😅
@bulldoser2610
@bulldoser2610 3 ай бұрын
What is the 5 percent remaining?
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@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%
@dmitrykaa46
@dmitrykaa46 3 ай бұрын
Nice! Is it also possible to install some cracked software this way as well? 😂
@devopstoolbox
@devopstoolbox 3 ай бұрын
That's for you to find out 😆
@Danielo515
@Danielo515 3 ай бұрын
Until the ridiculous and stupid executives at Mac headquarters decide that the required API are no longer supported
@sphyrnidae6749
@sphyrnidae6749 3 ай бұрын
Someone experience with Sequoia and Nix?
@sharukhrahman7925
@sharukhrahman7925 3 ай бұрын
Hard disk dies before your config dies.. - apple
@chrishoppner150
@chrishoppner150 Ай бұрын
As a former NixOS maintainer, stay the f&ck away from the Nix world and retain your sanity and faith in humanity.
@jerikoo
@jerikoo 56 минут бұрын
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
@RazoBeckett.
@RazoBeckett. 3 ай бұрын
Nix deez what ?
@adjbutler
@adjbutler 2 ай бұрын
NixOS!!!! lets go!
@Jalan-Api
@Jalan-Api 3 ай бұрын
I am the 1000th viewer
@c_kemper
@c_kemper 3 ай бұрын
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...
@devopstoolbox
@devopstoolbox 3 ай бұрын
@@c_kemper 😅
Nix Home Manager Has Forever Changed My Dotfiles
10:08
DevOps Toolbox
Рет қаралды 20 М.
Aerospace Is The Best Tiling Window Manager I've Tried On macOS
24:23
Josean Martinez
Рет қаралды 131 М.
Ice Cream or Surprise Trip Around the World?
00:31
Hungry FAM
Рет қаралды 16 МЛН
The Ultimate Sausage Prank! Watch Their Reactions 😂🌭 #Unexpected
00:17
La La Life Shorts
Рет қаралды 6 МЛН
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 52 МЛН
I'm never using .env files ever again
11:16
DevOps Toolbox
Рет қаралды 41 М.
Nix and NeoVim
13:38
ThePrimeTime
Рет қаралды 154 М.
Say Goodbye to Containers - Ephemeral Environments with Nix Shell
16:58
I ranked EVERY terminal emulator. It was nuts
20:35
typecraft
Рет қаралды 131 М.
Is Nushell Worth The Hype?
16:00
DevOps Toolbox
Рет қаралды 37 М.
Is Nix Your New Terminal SUPERPOWER?
15:21
DevOps Toolbox
Рет қаралды 28 М.
Five Terminal Applications I CAN'T Live Without
11:28
DevOps Toolbox
Рет қаралды 26 М.
I was WRONG! This is the BEST Package Manager.
10:25
Chris Titus Tech
Рет қаралды 144 М.
Tmux From Scratch To BEAST MODE
12:44
DevOps Toolbox
Рет қаралды 125 М.
Ice Cream or Surprise Trip Around the World?
00:31
Hungry FAM
Рет қаралды 16 МЛН