I wouldn't try to make macOS into Arch, if Arch is what works for you.
Just run Arch in a VM on the mac, using Apple's virtualization framework [1]. (No need for other wrappers; the framework is often easier to use directly.) I find no significant performance issues; a lot of software actually runs faster in a Linux VM than when I compile and run it on the mac.
The limitations are that the Linux VM's don't support save/restore of state (i.e., you have to shut down to stop the VM) and the graphics and device support is limited.
You might get more performance if you compile your own Arch distribution with all the flags necessary to enjoy modern CPU features in M-series (particularly M4+ with SME extensions). With M4-Pro memory should run 273GB/second for JAX and PyTorch.
However, AFAICT, PyTorch supports vectorization on Apple silicon by delegating to Apple's Metal API's, and that wouldn't be available from the Linux VM, so you might prefer running those on macOS directly.
To me the biggest draw of the M4 processor is that it supports CPU tracing (at least for Xcode-run code): actual, direct (not sampled) data about CPU internals like branching, cache misses, etc. If you're into performance, this will take you from working with a black box to seeing exactly what's up.
I would love to use Arch in a VM on macOS, but Arch ARM is pretty bad. From the installation experience, the frequent stops in updates because something is compiling, to Chromium being broken for months.
WhyNotHugo · 4h ago
Consider Alpine, if it fits your needs. The ARM support if first class.
minton · 4h ago
Insane that their official docs suggest running some Xcode project to start your VM. It seems like such a powerful feature might have a better UI.
trueismywork · 4h ago
What do you mean by direct data on branch prediction (as opposed to sampled one, presumably you mean from perf)? An example?
Sytten · 4h ago
My homebrew story is always something along the lines of:
Me: Please install software A.
Homebrew: In order to install it I will also install 20 libraries (some need to be built from source), update openssl, update Python and wreck all virtual environments. Also since its been a while I decided it must be time to upgrade your other unrelated packages. Enjoy!
notpushkin · 51m ago
I just use https://mise.jdx.dev/ for everything command-line nowadays, and keep brew for casks only.
NERD_ALERT · 4h ago
You should use pyenv instead of relying on homebrew for your python version
yberreby · 4h ago
Better yet, use uv [1]. I've been using it on all of my projects since it came out, and I'm never looking back. It's in a class of its own.
Nix completely broke on my security locked down work laptop, so I had to revert to symlinks, bash, and brew.
wyager · 4h ago
I remember when homebrew first came out it was pretty snappy and didn't do a bunch of extraneous nonsense. A remarkably precipitous decline in software quality
bigyabai · 4h ago
Or the rose-tinted glasses have come off. Homebrew is simultaneously a very impressive "my first package manager" experience as well as a chronically deficient packaging solution.
subjectsigma · 3h ago
I use “normal, mainline Homebrew as well as Bundles and I’ve never had a major issue. I’m not sure “chronically deficient” is the right word
Szpadel · 30m ago
> quite impressed with the smoothness of the UX on this relatively cheap machine.
I recently tried installing cachyos kernel on fedora I tried sched_ext with it (scx_lavd specifically) and to my suprise changing CPU scheduler resolved all UI stuttering for me (even dual 360hz + laptop screen on 3y old laptop with integrated intel gpu)
I occasionally use M1 apple mini and right now I can confidently say that now my Linux machine works smoother.
jasoneckert · 5h ago
For the same reasons, I prefer Linux - but also like Apple Silicon platform.
As a result, I use Fedora Asahi Remix natively on the hardware. It's a few generations behind in support (M1- and M2-based systems right now), but I can't tell you how good it feels to be able to use Linux natively on Apple Silicon hardware. In my workflow, Fedora Asahi Remix runs at least twice as fast as macOS on the same hardware for any task (and 4-6 times faster for heavier tasks).
vouaobrasil · 3h ago
What about support for graphics? Does it work?
qudat · 4h ago
Why not just run an OS in a VM and full screen it?
seec · 1h ago
It's interesting and all but in typical "Apple switcher" fashion, a preposterous comparison is/will be made: the M4 Pro MBP is around 3K€, replacing a laptop that seems to go for around 1K€ at best.
When something costs 3 times as much, it should be better. It's a bit like comparing an entry level Ford to an S class Mercedes.
I think the best "feature" of Apple computers is that it prevents cheapskates from making bad choices they will regret.
In my family, they use iPhones and I'm glad for it because if they would use Androids, they would just buy the cheapest garbage they could find and the experience would be miserable. It's funny how a corporation greed is actually useful to prevent some people being fucked by their own greed (stinginess is a form of reverse greed, particularly true when you actually have money).
moribvndvs · 2h ago
As someone who’s been a heavy apple daily driver since the Intel Macs arrived on the scene, I can feel myself grinding my teeth while reading this. Watching Apple commit to eroding macOS’s previously-lauded user-centric freedom, simplicity, and reliability year after year in their quest to turn it into another iOS black box appliance that you just rent not own makes me wonder what happens when the author approaches similar categories of problems from different directions vis a vis Linux.
st3fan · 6h ago
> Homebrew's filesystem permission handling is controversial, to say the least, and it has a tendency to fail at a package manager's main job: ensuring that new dependencies don't break the system.
Homebrew user from day 1 it appeared. I have many many packages installed on multiple actively used systems and I have never had to deal with any kind of breakage.
What is this myth? Yeah yeah I am just one data point ...
shakna · 5h ago
It's been five years for my data point, but every single time it came time to update brew, I hit something else I'd never seen before. Every time, it broke.
And from what I can see, migrations are still causing issues. [0]
Crazy, what kind of set up were you trying to do there? Been using it for probably 10 years and I can't remember the last time I had an issue and I run updates on it automatically every day. Biggest problem I remember is having to chown a directory again or something.
shakna · 4h ago
It usually hit, when a dependency of programs gets shoved out into cask. The moment where that happens, and where the things listing it as a dependency realise its now cask and not the main repo, is not altogether in sync.
yberreby · 6h ago
Interesting that you had such a smooth experience. I was mainly using Homebrew on the daily between 10 and 14 years ago, so I couldn't give you specifics. My experience at the time was poor; maybe I was using it wrong. My impression from looking at recent user reports was that Homebrew's stability has continued to lag behind pacman's, but I agree that my assertion in the latter part of the excerpt you quoted was insufficiently substantiated, so I'll remove it.
sroussey · 5h ago
I also had a bad time with brew back then. On new machines these days no issues at all.
timcobb · 5h ago
Every time I need to update anything on brew, I end up updating thousands of packages and it goes on and on for a long time.
skydhash · 5h ago
The one issue I had was creating a new admin user for a client project (so I can just package everything created for that client neatly) and then immediately run into permissions issue. After that, I installed macports and never looked back (other than checking formula for installation guidance for some package).
Also, I can never internalize its nomenclature: formula, cask, tap, bottle… makes no sense to me.
c-hendricks · 4h ago
Yeah, homebrew works so well for me I also use it on Linux. In fact, its growing support for Linux/arm means I'm no longer stuck with Arch ARM VMs and can get up to date dev tooling in any Linux arm distro
bee_rider · 4h ago
Those apple chips are really quite impressive. But, AMD has those fancy APUs now, maybe it is possible to stay in x86 land a bit longer?
WhyNotHugo · 3h ago
Why do you prefer x86? If another architecture offers better performance with the same hardware support, isn’t that good enough?
bee_rider · 3h ago
If Linux runs fine on it, sure. The blog post linked seemed to indicate that Linux wasn’t 100% on the M4 yet. If that’s wrong, then that’s good news.
babuloseo · 4h ago
what apus?
bee_rider · 3h ago
Strix Halo
xelxebar · 3h ago
This couldn't have come at a more opportune time. My 11th gen Framework just gave up the magic smoke last night, which was a frightening experience.
The Framework has given me a bewildering litany of issues over the years, and I now just want something solid, light, and reasonable battery life, so just I threw down for an M4 Air today.
Having used Linux exclusively for 25 years and an unaBashed CLI junkie, I'm a bit nervous about workflow friction.
How does experience with nixos-darwin compare against just VMing on top of MacOS?
Also, is there any reason for mucking about with Apple's bootloader etc?
fernandojose · 2h ago
I enjoyed reading the post and maybe will try following some part of it, such as the nix-darwin setup. Thanks for sharing, it is well written.
I have used Arch in a couple of personal laptops during a handful of years and macOS at job for the last year. I love using Arch, even though it is sometimes painful qua drivers and issues with non-essential hardware. In macOS I don’t recall having issues with homebrew, however I am more familiar with pacman on Arch and therefore prefer it. Before starting to use it, I set up alacritty on macOS building it from source.
Liquix · 4h ago
aerospace is nice, but also consider checking out yabai [0] + sketchybar [1] for an i3/hyprland style tiling setup. more customizable (IMO) and perfectly suited for a terminal based workflow :~^)
I switched to AeroSpace from Yabai because I had to disable parts of SIP for certain functions (such as switching workspaces with keybindings from SKHD), and that didn't feel right. Updates are also smoother since I don't need to update the sudoers file allowing the Yabai CLI to run without requiring password. Been happy as a clam ever since.
shmerl · 1h ago
I'd stick to Linux/KDE.
babuloseo · 4h ago
thats cool been to mila before, anyway OP we need to get CachyOS on Mac Os immidiately
SanjayMehta · 4h ago
I use macOS for day-to-day work on a laptop, but all serious business is conducted on Linux workstations. I can’t be bothered with Docker et al, so each workstation is configured for one special set of tools, and nothing else. Updates are tightly controlled, to avoid breaking build configurations.
In the long run, hardware is cheaper than your time.
jmtulloss · 5h ago
[deleted… my disagreements about time allocation aside, there’s no reason to argue on the internet about it]
lioeters · 4h ago
> Linux is the most distracting
That's totally subjective. Windows takes the cake, since it ignores user agency when it wants. It's not your operating system. macOS is not as bad, but it does what Apple wants. If your use of computers fits within what Apple wants, then I suppose it's smooth sailing. Otherwise, there are endless distractions of fighting the OS to make it do what you want, and make it NOT do what you don't want it to do. Refreshingly, Linux is all yours. That power comes with responsibility, its greatest advantage and disadvantage.
tfpgh · 5h ago
Did you actually read the article? Multiple times, they talk about how they're just trying to find a smooth, comfortable workflow and don't need every detail perfect (at least initially).
jmtulloss · 5h ago
Yes, but they’re over indexing on that imo. The smooth comfort they’re looking for is costing them multiples of how much time it will actually save
yberreby · 4h ago
The core initial setup here took about 2h30 from getting the laptop out of its packaging to being able to run and develop my main project's code within the environment I described.
tfpgh · 5h ago
A few days of work doesn't matter over years.
jmtulloss · 4h ago
Yes it does
do_not_redeem · 4h ago
Even if it takes you a full 2 days, that's literally 0.1% of your time over the 5-year life of a machine. Sharpen your axe before you go into the woods.
do_not_redeem · 4h ago
> Linux is the most distracting
Spoken as someone who's never seen random gaming ads in their OS
bigyabai · 6h ago
Nix is downright awful on MacOS, even with the DetSys installer. Almost worse than Homebrew.
If you ever sit down to play with a native NixOS install, the difference in functionality is night-and-day.
yberreby · 6h ago
Care to elaborate on what you've found most painful? Since `nix-darwin` is anything but officially supported, I am expecting trouble, but it would be nice to know if there are specific things I should look out for.
I'd love to use NixOS itself, of course, but it's not a native option on this machine due to the missing M4 support in Asahi. For now, I'm trying to see how much package/configuration management discipline I can reclaim on macOS, and familiarize myself with Nix in the process.
I could have just used a set of Ansible scripts and Homebrew, but that didn't seem quite as interesting as trying Nix out.
indemnity · 4h ago
Not sure what issues they are facing but I use Nix flakes to manage my command line and UNIX env for two Macs, a Linux desktop running NixOS, a Windows WSL environment and two Linux home servers using NixOS.
I used to use a dot file manager (home grown and later yadm).
But once I got over the learning curve I much prefer using Nix.
My machines are now effectively immutable and I wipe them without worrying I will lose anything. Can still have machine or role specific configs (e.g. one of the Linux servers is my firewall, so it has no desktop environment or GUI apps).
Btw, you should Ghostty a try too. I was a long term Alacritty and WezTerm user, but Ghostty in 1.0 form already replaced everything I used those for, and has better native platform integration.
tymscar · 4h ago
I am running nix darwin and its a dream.
Don’t have any issues and things just work.
Setting everything up just the way I like it took ages but thats because I wanted to play with it.
I use most of the same configuration on nixos too
reactordev · 5h ago
>The macOS package management story is not great.
Ummm... Homebrew has been around for at least a decade.
intothemild · 5h ago
I think what you might be missing here is that compared to the package management in Arch, the package management in MacOS appears not great in comparison.
Just run Arch in a VM on the mac, using Apple's virtualization framework [1]. (No need for other wrappers; the framework is often easier to use directly.) I find no significant performance issues; a lot of software actually runs faster in a Linux VM than when I compile and run it on the mac.
The limitations are that the Linux VM's don't support save/restore of state (i.e., you have to shut down to stop the VM) and the graphics and device support is limited.
You might get more performance if you compile your own Arch distribution with all the flags necessary to enjoy modern CPU features in M-series (particularly M4+ with SME extensions). With M4-Pro memory should run 273GB/second for JAX and PyTorch.
However, AFAICT, PyTorch supports vectorization on Apple silicon by delegating to Apple's Metal API's, and that wouldn't be available from the Linux VM, so you might prefer running those on macOS directly.
To me the biggest draw of the M4 processor is that it supports CPU tracing (at least for Xcode-run code): actual, direct (not sampled) data about CPU internals like branching, cache misses, etc. If you're into performance, this will take you from working with a black box to seeing exactly what's up.
[1] https://developer.apple.com/documentation/Virtualization/run...
Me: Please install software A.
Homebrew: In order to install it I will also install 20 libraries (some need to be built from source), update openssl, update Python and wreck all virtual environments. Also since its been a while I decided it must be time to upgrade your other unrelated packages. Enjoy!
[1]: https://docs.astral.sh/uv/
I recently tried installing cachyos kernel on fedora I tried sched_ext with it (scx_lavd specifically) and to my suprise changing CPU scheduler resolved all UI stuttering for me (even dual 360hz + laptop screen on 3y old laptop with integrated intel gpu)
I occasionally use M1 apple mini and right now I can confidently say that now my Linux machine works smoother.
When something costs 3 times as much, it should be better. It's a bit like comparing an entry level Ford to an S class Mercedes.
I think the best "feature" of Apple computers is that it prevents cheapskates from making bad choices they will regret.
In my family, they use iPhones and I'm glad for it because if they would use Androids, they would just buy the cheapest garbage they could find and the experience would be miserable. It's funny how a corporation greed is actually useful to prevent some people being fucked by their own greed (stinginess is a form of reverse greed, particularly true when you actually have money).
Homebrew user from day 1 it appeared. I have many many packages installed on multiple actively used systems and I have never had to deal with any kind of breakage.
What is this myth? Yeah yeah I am just one data point ...
And from what I can see, migrations are still causing issues. [0]
[0] https://github.com/Homebrew/brew/issues/19951
https://news.ycombinator.com/item?id=44621441
Also, I can never internalize its nomenclature: formula, cask, tap, bottle… makes no sense to me.
The Framework has given me a bewildering litany of issues over the years, and I now just want something solid, light, and reasonable battery life, so just I threw down for an M4 Air today.
Having used Linux exclusively for 25 years and an unaBashed CLI junkie, I'm a bit nervous about workflow friction.
How does experience with nixos-darwin compare against just VMing on top of MacOS?
Also, is there any reason for mucking about with Apple's bootloader etc?
I have used Arch in a couple of personal laptops during a handful of years and macOS at job for the last year. I love using Arch, even though it is sometimes painful qua drivers and issues with non-essential hardware. In macOS I don’t recall having issues with homebrew, however I am more familiar with pacman on Arch and therefore prefer it. Before starting to use it, I set up alacritty on macOS building it from source.
[0] https://github.com/koekeishiya/yabai
[1] https://github.com/FelixKratz/SketchyBar
In the long run, hardware is cheaper than your time.
That's totally subjective. Windows takes the cake, since it ignores user agency when it wants. It's not your operating system. macOS is not as bad, but it does what Apple wants. If your use of computers fits within what Apple wants, then I suppose it's smooth sailing. Otherwise, there are endless distractions of fighting the OS to make it do what you want, and make it NOT do what you don't want it to do. Refreshingly, Linux is all yours. That power comes with responsibility, its greatest advantage and disadvantage.
Spoken as someone who's never seen random gaming ads in their OS
If you ever sit down to play with a native NixOS install, the difference in functionality is night-and-day.
I'd love to use NixOS itself, of course, but it's not a native option on this machine due to the missing M4 support in Asahi. For now, I'm trying to see how much package/configuration management discipline I can reclaim on macOS, and familiarize myself with Nix in the process.
I could have just used a set of Ansible scripts and Homebrew, but that didn't seem quite as interesting as trying Nix out.
I used to use a dot file manager (home grown and later yadm).
But once I got over the learning curve I much prefer using Nix.
My machines are now effectively immutable and I wipe them without worrying I will lose anything. Can still have machine or role specific configs (e.g. one of the Linux servers is my firewall, so it has no desktop environment or GUI apps).
Btw, you should Ghostty a try too. I was a long term Alacritty and WezTerm user, but Ghostty in 1.0 form already replaced everything I used those for, and has better native platform integration.
I use most of the same configuration on nixos too
Ummm... Homebrew has been around for at least a decade.