| 20 Feb 2026 |
xored | that makes perfect sense | 20:53:20 |
xored | so it's not on my end :( | 20:53:35 |
| 21 Feb 2026 |
Randy Eckenrode | https://www.phoronix.com/news/KosmicKrisp-2026 | 01:25:04 |
Randy Eckenrode | Geometry shaders in the next 3~6 months? They’ll pass MoltenVK soon at this rate. | 01:25:27 |
msgilligan | I received a new Mac Mini M4 today and am looking to do a complete fresh install of macOS, Nix, and all the various Nix tools that I use. I have the following in mind:
- Install Nix with the experimental/beta installer.
- Install (standalone) Home Manager (existing, shared cross-platform configuration)
- Install Nix Darwin
- Setup a Linux Builder with Nix Darwin
- Setup a UTM VM with NixOS w/GUI
| 04:12:01 |
msgilligan | * I received a new Mac Mini M4 today and am looking to do a complete fresh install of macOS, Nix, and all the various Nix tools that I use. I have the following in mind:
- Install Nix with the experimental/beta installer.
- Install (standalone) Home Manager (existing, shared cross-platform configuration)
- Install Nix Darwin
- Setup a Linux Builder with Nix Darwin
- Setup a UTM VM with NixOS w/GUI
(Oops, I'm still editing this didn't mean to submit, give me a few minutes to finish...)
| 04:12:45 |
msgilligan | * I received a new Mac Mini M4 today and am looking to do a complete fresh install of macOS, Nix, and all the various Nix tools that I use. I have the following in mind:
- Install Nix with the experimental/beta installer.
- Install (standalone) Home Manager (existing, shared cross-platform configuration)
- Install Nix Darwin
- Setup a Linux Builder with Nix Darwin
- Setup a UTM VM with NixOS w/GUI
- Install NixOS in headless VMs using Lima and https://github.com/nixos-lima
- Have macOS VMs (generally with Nix Darwin) running under UTM for testing, etc.
And I want all of this to be as declarative and reproducible as possible. (Should be weeks of fun!)
Can anyone recommend a guide or even a blog post that presents a big-picture approach to doing this "all-of-the-above" Nix on Mac setup?
| 04:16:30 |
| h7x4 changed their profile picture. | 19:27:17 |
| h7x4 changed their profile picture. | 19:30:39 |
| h7x4 changed their profile picture. | 19:34:04 |
| 22 Feb 2026 |
| Cedar joined the room. | 02:54:07 |
| Desdaemon joined the room. | 04:14:32 |
| 23 Feb 2026 |
| @philip4g:matrix.org left the room. | 06:16:26 |
samasaur | do we have a standard recommendation for how to handle meta.mainProgram/nix run compatibility for packages that produce an app bundle? I've seen:
- symlinking the binary to
$out/bin via something like ln -s $out/{Applications/${name}.app/Contents/MacOS/${name},bin/}
- using
makeBinaryWrapper to do something similar
- putting a wrapper script in
$out/bin that calls open -na on the produced application bundle
Is one of these unambiguously "better" than the others? I recall the symlink approach having issues (and I can find comments in nixpkgs and on PRs to that extent), so makeBinaryWrapper seems better than that for not a lot of overhead. I vaguely recall some cases where even that approach doesn't work (properly), and see some examples in nixpkgs (libreoffice, mongodb-compass, beekeeper-studio, jetbrains, tigervnc) using open instead, but that has some other behavioral differences (such as exiting in the terminal immediately, unless we standardize on using -W). Maybe there isn't a universal right answer, but I feel like it'd be helpful to have docs either way
| 06:29:38 |
rebmit[reb] | In reply to @samasaur:matrix.org
do we have a standard recommendation for how to handle meta.mainProgram/nix run compatibility for packages that produce an app bundle? I've seen:
- symlinking the binary to
$out/bin via something like ln -s $out/{Applications/${name}.app/Contents/MacOS/${name},bin/}
- using
makeBinaryWrapper to do something similar
- putting a wrapper script in
$out/bin that calls open -na on the produced application bundle
Is one of these unambiguously "better" than the others? I recall the symlink approach having issues (and I can find comments in nixpkgs and on PRs to that extent), so makeBinaryWrapper seems better than that for not a lot of overhead. I vaguely recall some cases where even that approach doesn't work (properly), and see some examples in nixpkgs (libreoffice, mongodb-compass, beekeeper-studio, jetbrains, tigervnc) using open instead, but that has some other behavioral differences (such as exiting in the terminal immediately, unless we standardize on using -W). Maybe there isn't a universal right answer, but I feel like it'd be helpful to have docs either way
an example of symlink causing behavior differences I ran into recently: https://github.com/NixOS/nixpkgs/pull/489364 | 06:55:25 |
samasaur | yea that's what prompted me to ask, i have the zotero, cinny, and nheko PRs up in tabs rn | 06:56:06 |
toonn | Each of those approaches has more overhead than the last is worth mentioning. | 08:25:20 |
toonn | Maybe also the fact that them not working might be of interest to upstream. | 08:26:27 |
Ben Sparks | consider not setting a meta.mainProgram, then providing script aliases that point at the executables of that bundle | 11:22:13 |
Ben Sparks | let multiOutputBundle = stdenv.mkDerivation { ... }; let singleProg = writers.makeShellScript { "${multiOutputBundle}/bin/$MY-SINGLE-PROGRAM $@" } | 11:23:52 |
Ben Sparks | something like this perhaps? | 11:23:57 |
rebmit[reb] | In reply to @benjaminsparks:chat.alugha.app consider not setting a meta.mainProgram, then providing script aliases that point at the executables of that bundle i don't get it, your example seems pretty similar to using a (shell) wrapper | 11:35:44 |
Ben Sparks | except that you don't rebuild the multiOutputBundle when you use overrideAttrs to make a new meta.mainProgram for each program | 11:36:25 |
Ben Sparks | ahh im sorry i have misread the message 😄 is what I have written even helpful to you, probably not 😂 | 11:37:33 |
| Michael set a profile picture. | 14:34:01 |
WeetHet | I think the last option forces macl to be set and then nix-collect-garbage would fail | 17:49:49 |
emily | does meta.mainProgram = "../Applications/…"; work | 17:51:50 |
WeetHet | I think it should, it would with my nix-run | 17:54:00 |
emily | it's kind of awful and shouldn't work | 17:57:08 |
emily | but if it does… | 17:57:09 |