The only thing that comes to mind is Homebrew Cask.
It’s not mentioned in the article, but nix-darwin has the ability to control Homebrew. You can specify casks (and other brew formulae if you really want to) in a .nix file, and nix-darwin can generate a Homebrew bundle file and direct Homebrew to install from it.
Now if I could just find a graceful solution to the GUI apps that insist on hard-coding path to shells…
I think I once managed to install casks with Nix using nix-homebrew but I found it to be a bit too cumbersome to integrate into my workflow. I’m sure one day I’ll get into home-manager and nix-darwin workflows but for now using Nix like apt-get install works best for me. Thanks for mentioning it though!
Yeah, as a newcomer, I’m a little overwhelmed with choice. Right off the bat, you need to make the decision between flakes or not, and that’s not something newcomers are really equipped to decide just yet.
After years of tinkering and crashing, I was looking for something more stable.
I’m genuinely curious what distro you were running, because this is not a criticism I see often. I think the critique about polish is deserved in some ways, but in my experience this critique of stability is much less deserved. At least for the distros I’ve used.
Except for five years, I’ve used Linux professionally and have never had issues with persistent instability. I currently run NixOS on the not-so-aptly named unstable channel and have never experienced a crash. Prior to this, I ran Ubuntu, Slackware, and Redhat.
I wouldn’t describe any of these distros as “polished” in the UI/UX sense that MacOS is, but I’d describe all of them as profoundly stable.
but in my experience this critique of stability is much less deserved
I personally do still experience Linux evenings pretty regularly (on NixOS). My current crop of workflow-breaking bugs;
Nvidia. With Nvidia drivers (both open and blob), SDDM hangs or crashes like half of the time on me. So, after I boot up, I, 50% chance I need to ctrl+alt+f2 to login into a text terminal and start-plasma manually
Bluetooth. This happens rarely, but sometimes my Bluetooth is just gone. Like, there’s no Bluetooth icon in the tray at all.
Bluetooth. Recently, my Bluetooth headphones starred to disconnect abruptly after five minutes or so. Haven’t debugged this, just plug them with 3,5 now.
Vivaldi/Slack/VS Code. Sometimes after upgrade these show just a blank screen with a couple of rectangles. Dropping GPU cache manually helps, but, dear, was it annoying to google up the first time it came up.
Vivaldi. For some reason, the cursor, when it’s over Vivaldi’s windows, is a tiny default X11 cursor. This is not polish, because the cursor becomes nearly invisible: the style is not a problem, but it looks like it just doesn’t take dpi scaling into account
To emphasize, these are current bugs (there’s a reasonable bug rotation in place), and they are breaking (as opposed to minor things like half of the apps showing GTK file open dialog in my KDE desktop, or plasma emojier taking seconds to start https://discourse.nixos.org/t/plasma-emojier-too-slow-episode-iv/40130?u=matklad)
Damn, that’s all really unfortunate for you. I suppose I should be thankful for my run of luck. It probably helps that I do most things in the terminal and run hardware that’s known not to have any major compatibility issues. My currrent systems are System 76 and a Thinkpad.
That was something I kept in mind back when I was on Linux, always prefer parts that are Intel. I didn’t even bother with a dedicated video card, integrated GPU was enough for me. Right now there are more choices, but still it’s something you have to optimize for, you can’t expect to install Linux on any laptop and expect everything to work out-of-the-box.
I guess I didn’t go into much detail in the post, but this was back in 2015 and it hasn’t been more than a year since I started working full-time, and I must say that I liked installing a different distro every other week. I enjoyed that when I had a lot of free time, but that was starting to change.
Also you are spot on about UI/UX polish. I wanted that kind of polish, instead of setting a custom bootloader I wanted my system to load fast, and hibernate to just work transparently.
Thanks, I wasn’t aware of this! I went through the feature, and looks like nix-dram is powering default registries. Also upgrade and remove by name seems to have landed with Nix 2.20 a month ago. I should update the post when it’s in a new NixOS release, full path or indices are one not very user friendly.
So I thought this was a good idea just to use Nix as a quasi Homebrew-ersatz but turns out not every toolchain works well installed in this way (cough… Rust).
It’s not mentioned in the article, but nix-darwin has the ability to control Homebrew. You can specify casks (and other brew formulae if you really want to) in a .nix file, and nix-darwin can generate a Homebrew bundle file and direct Homebrew to install from it.
Now if I could just find a graceful solution to the GUI apps that insist on hard-coding path to shells…
I think I once managed to install casks with Nix using nix-homebrew but I found it to be a bit too cumbersome to integrate into my workflow. I’m sure one day I’ll get into
home-managerandnix-darwinworkflows but for now using Nix likeapt-get installworks best for me. Thanks for mentioning it though!Yeah, as a newcomer, I’m a little overwhelmed with choice. Right off the bat, you need to make the decision between flakes or not, and that’s not something newcomers are really equipped to decide just yet.
I’m enjoying the journey, but it’s been rough.
It’s a good thing that tools like Determinate Nix Installer making that choice so there’s less confusion and more immediate value.
Hehe. I’ve seen guides that say DON’T use the Determinate Installer because it’s nonstandard and causes problems, so….
¯\_(ツ)_/¯
[Comment removed by author]
I’m genuinely curious what distro you were running, because this is not a criticism I see often. I think the critique about polish is deserved in some ways, but in my experience this critique of stability is much less deserved. At least for the distros I’ve used.
Except for five years, I’ve used Linux professionally and have never had issues with persistent instability. I currently run NixOS on the not-so-aptly named
unstablechannel and have never experienced a crash. Prior to this, I ran Ubuntu, Slackware, and Redhat.I wouldn’t describe any of these distros as “polished” in the UI/UX sense that MacOS is, but I’d describe all of them as profoundly stable.
I personally do still experience Linux evenings pretty regularly (on NixOS). My current crop of workflow-breaking bugs;
To emphasize, these are current bugs (there’s a reasonable bug rotation in place), and they are breaking (as opposed to minor things like half of the apps showing GTK file open dialog in my KDE desktop, or plasma emojier taking seconds to start https://discourse.nixos.org/t/plasma-emojier-too-slow-episode-iv/40130?u=matklad)
Damn, that’s all really unfortunate for you. I suppose I should be thankful for my run of luck. It probably helps that I do most things in the terminal and run hardware that’s known not to have any major compatibility issues. My currrent systems are System 76 and a Thinkpad.
That was something I kept in mind back when I was on Linux, always prefer parts that are Intel. I didn’t even bother with a dedicated video card, integrated GPU was enough for me. Right now there are more choices, but still it’s something you have to optimize for, you can’t expect to install Linux on any laptop and expect everything to work out-of-the-box.
I guess I didn’t go into much detail in the post, but this was back in 2015 and it hasn’t been more than a year since I started working full-time, and I must say that I liked installing a different distro every other week. I enjoyed that when I had a lot of free time, but that was starting to change.
Also you are spot on about UI/UX polish. I wanted that kind of polish, instead of setting a custom bootloader I wanted my system to load fast, and hibernate to just work transparently.
Ah, the old distro hunt gets old very quickly when real work begins :)
This is perhaps the most helpful “How to use nix” cheatsheet I’ve seen yet, thanks!
Some useful commands to make it faster to type:
I don’t need these since I use Nix Super and can omit the default# prefix.
Thanks, I wasn’t aware of this! I went through the feature, and looks like
nix-dramis powering default registries. Also upgrade and remove by name seems to have landed with Nix 2.20 a month ago. I should update the post when it’s in a new NixOS release, full path or indices are one not very user friendly.So I thought this was a good idea just to use Nix as a quasi Homebrew-ersatz but turns out not every toolchain works well installed in this way (cough… Rust).