I Used Arch, BTW: macOS, Day 1
97 points
11 days ago
| 21 comments
| yberreby.com
| HN
w10-1
11 days ago
[-]
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.

[1] https://developer.apple.com/documentation/Virtualization/run...

reply
c-hendricks
11 days ago
[-]
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.
reply
WhyNotHugo
10 days ago
[-]
Consider Alpine, if it fits your needs. The ARM support if first class.
reply
lrvick
10 days ago
[-]
But Alpine does not even attempt reproducible builds, maintainer signing, etc. Running Alpine means anyone with access to the git repo or build server can push any code they want to your system.

Alpine is a musl research/hobby distro at best.

reply
minton
11 days 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.
reply
JimDabell
10 days ago
[-]
They are the official docs for a developer API, not an end-user feature. Of course they are going to describe it in Xcode terms. That’s how you use the API.

If you want an app, then pick an app that uses that API.

reply
rollcat
10 days ago
[-]
Is it also insane to have access to a CLI in a graphical user interface? It just gives you a different level of abstraction to work with. If you want a simple GUI, just grab UTM <https://mac.getutm.app>. Also: check out their gallery.
reply
w10-1
10 days ago
[-]
You build your VM app in Xcode, but you can run the app headless. The UI is your VM, with a menu to start and stop the VM.
reply
gloxkiqcza
10 days ago
[-]
More and more I feel like Apple’s SW division is dropping the ball. It’s starting to show more and more that the software is lagging behind the hardware, especially with macOS. macOS is their power user friendly OS. For once they could do a release that actually improves on that front. The list of things to improve is so long and endlessly repeated. Just imagine what an amazing OS macOS could be if Apple actually cared.
reply
trueismywork
11 days ago
[-]
What do you mean by direct data on branch prediction (as opposed to sampled one, presumably you mean from perf)? An example?
reply
w10-1
10 days ago
[-]
WWDC 2025, "Optimize CPU performance with Instruments" 14:05+

https://developer.apple.com/videos/play/wwdc2025/308/

reply
Sytten
11 days 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!

reply
tacker2000
10 days ago
[-]
Yea, homebrew feels like a package manager for people who have no idea what packages or versions are.

Its doing so much hand-holding and extra stuff, it cant be really considered “pro” at all.

What bothers me the most is when they immediately remove packages because they get EOL’ed, but in the real world it doesn’t work like this.

I still have projects that use old PHP versions for example and brew just refuses to install these since they have been deprecated.

So then you have to use some finicky workaroud and download these old versions off of some repo/cask that will also probably go away at some point.

reply
emchammer
10 days ago
[-]
Doesn’t homebrew have launchd unit files now? When it was supposed to be totally self-contained? Homebrew is lost.
reply
notpushkin
10 days ago
[-]
I just use https://mise.jdx.dev/ for everything command-line nowadays, and keep brew for casks only.
reply
qn9n
9 days ago
[-]
I've been using this for a while now, much better versioning system. Great tooling support with multiple backends, fast and information rich CLI. Highly recommended over brew.
reply
lrvick
10 days ago
[-]
Homebrew also takes a wikipedia style approach to package maintenance where any of hundreds of unvetted internet randos can push any unsigned changes they want to all users of that package with no review.

When you install Homebrew you are literally granting access to virtually anyone remote access to your laptop.

Any security leaders in an org that allow Homebrew on workstations used for anything remotely sensitive should be fired.

I have been restricted from disallowing it at some orgs, which is my cue to leave before a major supply chain attack is blamed on me.

reply
zbentley
10 days ago
[-]
As someone for whom Nix and MacPorts are a bit too much of a chore, I find that three things massively improve the Homebrew user experience:

1. If you do Python development, use “uv” or any other Python interpreter-management tool which uses precompiled Python installations from a reputable source. This removes the pain of sorting out compile dependencies for Python itself, as well as solving the “unrelated brew install command trashed all my Python virtualenvs” issue. Whether you use uv or some other Python-version-manager, I hope we can all agree that Brew-managed Python for development, as well as pyenv-compiled Python, are just garbage. As a bonus, “uv” gives you decent reproducibility on a lot of other platforms, if you ever want to develop or share your software to someone on a different version of MacOS or a different OS.

2. ‘export HOMEBREW_NO_AUTO_UPDATE=1’ in all your profiles to turn off the automatic updating of unrelated dependencies. That feature is so stupid. Yes, even given security issues and changing system deps.

3. Keep MacOS updated to current minus one point version, and make sure to fully uninstall/reinstall XCode/XCode CLT every time you update MacOS, and then check “brew doctor” every time you do. I’ve had far too many “brew decides to build from source” situations that boil down to Homebrew detecting my OS or build chain as not up to date with the last 6 months of MacOS updates, or lacking prebuilt artifacts for a very recently-released version.

None of this is a defense or indictment of Homebrew itself. I’m not commenting on whether or not this should be necessary (lord knows I’ve updated into plenty of MacOS misfeature releases just to get Homebrew working again). These are just relatively easy steps that allowed me to forget Homebrew build/install issues entirely.

reply
NERD_ALERT
11 days ago
[-]
You should use pyenv instead of relying on homebrew for your python version
reply
yberreby
10 days 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.

[1]: https://docs.astral.sh/uv/

reply
yoyohello13
11 days ago
[-]
Nix Darwin is the solution.
reply
sunaookami
10 days ago
[-]
nix for CLI and config and Homebrew (through nix-darwin) for GUI programs is a good combo.
reply
dbalatero
10 days ago
[-]
Nix completely broke on my security locked down work laptop, so I had to revert to symlinks, bash, and brew.
reply
OJFord
10 days ago
[-]
Nix-Darwin completely broke on my not at all locked down fresh out of the box from Apple work Mac, refusing to uninstall itself even, so I had to wipe and reinstall macOS. (It was a new machine, so it wasn't a huge deal, but I'd really wanted it to work.)
reply
nocab
10 days ago
[-]
for future reference you should really consider installing it with the determinate nix installer [0] instead. it's multi-platform and among other things creates an install receipt so that changes can be painlessly reverted.

[0] https://determinate.systems/nix-installer/

reply
OJFord
10 days ago
[-]
Fairly sure that is what I used, though I remember being confused about whether Determinate Systems was the legit way, or super opinionated not necessarily most supported way, which was going to be least friction/widest adoption, etc.
reply
wyager
11 days 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
reply
thiht
10 days ago
[-]
Except that’s just your opinion, not everyone agrees that it’s "in decline" or does "nonsense". Homebrew is exactly what I want from my desktop package manager: I want everything I install from Homebrew to always be in an evergreen state, I’m ok with everything being in latest and Homebrew forcing package maintainers to work with the latest of their dependencies. This ends up being remarkably stable, and I actually get a looot less of version incompatibilities than when I used Linux (easy because I don’t get any with Homebrew).

If I want a specific version of something I don’t mind using a specific version manager (eg. asdf or mise)

reply
bigyabai
11 days 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.
reply
subjectsigma
10 days 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
reply
jpc0
10 days ago
[-]
I install a modern llvm toolchain and then just build from source
reply
javier2
10 days ago
[-]
well, I prefer they added the forced update, since many people never updated it. So when they run brew install X, they got the 2 year old version of X.
reply
jasoneckert
11 days 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).
reply
mmcnl
10 days ago
[-]
It's a few years behind is true, but the gap keeps widening. DP Alt Mode isn't supported. M3 and M4 support might never happen. It doesn't seem like a viable long-term alternative to be honest.
reply
jasoneckert
10 days ago
[-]
The gap is widening largely because the maintainer left the project due to the Linux kernel rust drama. But there is still plenty of very talented contributors who have taken over. That, combined with a rapidly growing interest to run Linux on Apple Silicon instead of macOS, will likely result in faster development over the next few years.

But for me, the long term momentum of new platforms as they release doesn't matter - what IS supported is excellent (including the brilliant GPU driver).

My Mac Studio M1 Ultra runs Fedora Asahi Remix perfectly with full support and is exactly what I need. So those who are looking for a fast Apple Silicon system that can run Linux natively will save $$ and buy a used M1/M2 from Apple or otherwise.

reply
vouaobrasil
10 days ago
[-]
What about support for graphics? Does it work?
reply
rollcat
10 days ago
[-]
Yes, thanks to the heroic efforts of Alyssa Rosenzweig <https://rosenzweig.io/>, Asahi Lina <https://www.youtube.com/c/AsahiLina>, and others.

Unfortunately, a lot of this effort seems stalled by some of the Linux kernel developers' hostility towards Rust, which also prompted Hector Martin (marcan42) to leave the project.

Now at the current rate, Apple is still moving backwards faster than the FOSS community is moving forward. I actually miss macOS 10.5 on PowerPC.

reply
likeclockwork
9 days ago
[-]
Is Rust the only programming language that is usable for this work?
reply
sarlalian
9 days ago
[-]
No, however it makes driver development easier and all the work to date is in rust, so changing languages would be exceedingly painful.
reply
rollcat
8 days ago
[-]
So far nearly all of the kernel/driver code in the modern (~1990+?) history of osdev has been written in C/C++. However it appears that Rust can make you incredibly productive, at the very least in experimental/explorative development based solely on reverse engineering.

It's promising.

reply
anta40
10 days ago
[-]
Hmm what about Debian? https://wiki.debian.org/InstallingDebianOn/Apple/M1

I still have to use macOS for mobile app development, but definitly want to use Linux on M2.

reply
sangeeth96
10 days ago
[-]
Curious, what kind of tasks are these where you see a big uplift? Anything to do with containerization?
reply
jasoneckert
10 days ago
[-]
Yes - it's a developer workstation and I run a few different staging environments on it, including a K3s cluster and a big FreeBSD VM - both of which are lightening fast. But what always surprises me is how fast it is at compiling anything.
reply
qudat
11 days ago
[-]
Why not just run an OS in a VM and full screen it?
reply
mmcnl
10 days ago
[-]
Because it's very cumbersome. Managing with multiple audio devices and displays must be done in the host OS. Keyboard shortcuts might not work correctly. Gestures might not work correctly. Suspending and resuming is a pain, basically need to login twice. It's a lot of friction.
reply
LargoLasskhyfv
10 days ago
[-]
Do you even need to 'login' on a system which only you, personally is running in a VM?

I'd disable that as one of the first things. Just autologin with no password.

For the thing running in the VM, not the host.

reply
sarlalian
9 days ago
[-]
That’s what Mitchell Hashimoto does.
reply
moribvndvs
10 days 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.
reply
st3fan
11 days 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 ...

reply
shakna
11 days 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]

[0] https://github.com/Homebrew/brew/issues/19951

reply
rob
11 days ago
[-]
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.
reply
shakna
11 days 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.
reply
yberreby
11 days 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.
reply
sroussey
11 days ago
[-]
I also had a bad time with brew back then. On new machines these days no issues at all.
reply
timcobb
11 days 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.
reply
crabique
10 days ago
[-]
The trick for smooth experience is to treat it like `pacman -Syu`:

  brew update && brew upgrade && brew autoremove && brew cleanup && brew doctor
Running this every few days and fixing everything that it explicitly complains about kept me issue-free for the last 10 years or so.
reply
timcobb
7 days ago
[-]
Interesting, thank you. That makes sense, but it is not convenient IMO.
reply
timcobb
7 days ago
[-]
I guess it could just be a cron job
reply
crabique
6 days ago
[-]
I wouldn't recommend doing it from a cronjob, there are sometimes things that require sudo to update, breaking changes and important notes from Brew maintainers in the output. It's really important to inspect the output in order to see everything Brew doesn't consider normal.

Lately I'm running this like once every 2-3 weeks and it's still surprisingly nice to use. The problems only really manifest when you never run this "maintenance" snippet and only use the `brew install`, which will attempt to do the housekeeping stuff when you want/expect it the least.

reply
skydhash
11 days 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).
reply
vladvasiliu
10 days ago
[-]
When I used to daily drive a mac, I had Macports since day one, with no issue I can remember. This lasted for some 14 years, out of which 8 were on the same machine.

Whenever this kind of discussion comes up around these parts, you can bet on there being a bunch of people complaining about Brew, but Macports basically never comes up.

So I have to wonder: why does everyone use Brew? Does it have features or other advantages which Macports doesn't? Is macports no longer a thing (I've stopping using macs around 2021)? This reminds me of people complaining about what a crappy experience Windows is, but never even contemplating moving to something else.

reply
JadeNB
10 days ago
[-]
I also used to use Macports exclusively (and Fink before that!). For me the reason behind the switch, after resisting it a long time, was simple: everything I used from Macports was also in Homebrew, but I just kept running into things I wanted to install that were in Homebew but not in Macports.
reply
eviks
10 days ago
[-]
> Whenever this kind of discussion comes up around these parts, you can bet on there being a bunch of people complaining about Brew, but Macports basically never comes up.

Macports comes up all the time, just like you've mentioned it here. It has a few user friendly benefits (no sudo, more up-to-date apps, better gui clients, slightly easier to add custom package, etc), but in general hard to say exactly why one app wins

reply
tambourine_man
11 days ago
[-]
This comment matches my experience precisely

https://news.ycombinator.com/item?id=44621441

Also, I can never internalize its nomenclature: formula, cask, tap, bottle… makes no sense to me.

reply
c-hendricks
11 days 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
reply
disintegrator
10 days ago
[-]
I know this won’t apply to everyone but I’ve been able to, relatively successfully, stick to the constraint that most of my dev tools are static binaries: zoxide, fzf, eza, btop and so on. There is one glaring exception which is docker but I let it pass.

By sticking to this I’m able to avoid Homebrew’s mess and Nix’s complexity. I use mise (https://mise.jdx.dev/) to manage the binaries and languages I have on my machine. It handles installing multiple versions and is directory-aware.

reply
SanjayMehta
10 days 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.

reply
bee_rider
11 days 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?
reply
WhyNotHugo
10 days ago
[-]
Why do you prefer x86? If another architecture offers better performance with the same hardware support, isn’t that good enough?
reply
bee_rider
10 days 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.
reply
danieldk
10 days ago
[-]
Asahi only supports M1 and M2 Macs well (and you will still miss support for some functionality, like Thunderbolt or USB-C DP-Alt mode displays). Ryzen APUs have indeed narrowed the gap and if you want to run Linux, it's probably much better to get a recent Ryzen ThinkPad than a Mac (or get a Strix Halo Ryzen once it lands in the good ThinkPad models).

(I am a longtime Mac user, but I recently got a ThinkPad T14 Gen 5 and all the hardware works out-of-the-box and very well on Linux.)

reply
babuloseo
10 days ago
[-]
what apus?
reply
TiredOfLife
10 days ago
[-]
reply
bee_rider
10 days ago
[-]
Strix Halo
reply
fernandojose
10 days 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.

reply
xelxebar
10 days 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?

reply
McAlpine5892
10 days ago
[-]
> How does experience with nixos-darwin compare against just VMing on top of MacOS?

Kinda depends what you want. Both work. With Nix Darwin you’ll sometimes run into packages that aren’t compatible with your system. It’s not an ND problem really - some software was just never built for Mac.

Running a VM works great too. I’m a big fan of Orbstack as it’s fairly transparent with the system. It’s nice to hop inside a real Linux box but feel like you’re working ON the actual system. You’ll take a battery hit compared to on-metal as macOS puts VMs on P-cores, but it’s not that bad.

reply
alexeiz
9 days ago
[-]
For some time after the introduction of the M1 CPU Macbooks provided the best battery life experience. So it would make sense to use a Macbook if you wanted your laptop to work more than 4-5 hours unplugged. But now Intel Core Ultra series 2 and AMD Strix Point laptops are almost as good. Sure you won't get 20 hours of battery life, but you get about 10-15 hours and it's already good enough. Performance of Intel/AMD CPUs are also good enough: about M2 performance-wise. Sure they are a couple of generations behind Apple, but for most tasks it doesn't matter. Linux compatibility is also getting there. You can choose a Thinkpad if you want to be sure that Linux runs on it. But even many consumer-grade laptops are supported but Linux thanks to recent kernel updates. Essentially what I'm saying is that if you want a good laptop experience and you like Linux, you don't have to settle for Macbook anymore.
reply
seec
10 days 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).

reply
zuhsetaqi
10 days ago
[-]
Well a 1k MacBook Air has the same build quality as the 3k MacBook Pro. It just has less performance. I have a HP ZBook from work and for 3k you don’t get the build quality of a 1k MacBook Air.

In my experience when you only compare on build quality of laptops there’s nothing that’s on the level of current MacBooks.

reply
thewebguyd
10 days ago
[-]
Beyond just build quality too. The $1k air has phenomenal speakers for a laptop, a great display (albeit, no 120hz), and a touchpad that is unmatched on any other laptop. Plus, it's silent.

For $1k in the WinTel world you're lucky to get 1920x1200, or even worse, 16:9 1920x1080 as the standard. I switched to Mac the day the M1 came out, and haven't looked back despite how much I miss Linux. macOS grew on me, and I can't stomach paying $3k+ for a machine that is still substandard to a $1k MacBook Air.

The only laptop that comes close is the new arm Surface Laptop 7, but - no Linux on that for now.

reply
mmcnl
10 days ago
[-]
I don't really understand the comparison with a cheap Asus laptop. Ofcourse the MBP will win. But a decent Lenovo ThinkPad or HP EliteBook/ZBook will have flawless Linux support with a rigid and robust chassis.
reply
grumpyprole
10 days ago
[-]
The vast majority of which unfortunately still come with Intel processors, especially the premium models. I handed my work issued Lenovo X1 back to my employer as being unusable due to overheating and excessive thermal throttling. The M4 Macbook Pro I now have is such a huge positive difference, I have adjusted to macOS and enjoy Intel outside.
reply
mmcnl
10 days ago
[-]
X1 is Intel only, but the new Lunar Lake is quiet and cool. And T14(s) comes with AMD. Mac hardware still is #1, but kernel panics because holding it wrong is definitely not normal.
reply
cweagans
10 days ago
[-]
> Currently using alacritty. Also considering WezTerm.

Highly recommend wezterm. That’s what enabled me to do this: https://cweagans.net/2023/09/application-specific-terminals/

You might also be interested in Hammerspoon! Lua-based customization and scripting of many macOS features.

reply
Liquix
11 days 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 :~^)

[0] https://github.com/koekeishiya/yabai

[1] https://github.com/FelixKratz/SketchyBar

reply
ChristianJacobs
10 days ago
[-]
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.
reply
Szpadel
10 days 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.

reply
danieldk
10 days ago
[-]
I recently moved from a 60Hz 5k Apple Studio Display to a 120Hz 4k Dell display for my main work desk. I was surprised that on macOS (on an M3 Pro), the difference between 60Hz and 120Hz is barely noticeable (mostly in the control center slide animation), whereas my ThinkPad with GNOME is super smooth at 120Hz. Window dragging, browser scrolling, etc., are all much smoother on the 120Hz display.
reply
bigyabai
11 days 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.

reply
yberreby
11 days 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.

reply
indemnity
11 days 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.

reply
tymscar
11 days 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

reply
shmerl
10 days ago
[-]
I'd stick to Linux/KDE.
reply
babuloseo
10 days ago
[-]
thats cool been to mila before, anyway OP we need to get CachyOS on Mac Os immidiately
reply
reactordev
11 days ago
[-]
>The macOS package management story is not great.

Ummm... Homebrew has been around for at least a decade.

reply
intothemild
11 days 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.
reply
detaro
10 days ago
[-]
and can reasonably be described as "not great".
reply
jmtulloss
11 days ago
[-]
[deleted… my disagreements about time allocation aside, there’s no reason to argue on the internet about it]
reply
lioeters
11 days 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.

reply
do_not_redeem
11 days ago
[-]
> Linux is the most distracting

Spoken as someone who's never seen random gaming ads in their OS

reply
tfpgh
11 days 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).
reply
jmtulloss
11 days 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
reply
yberreby
11 days 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.
reply
tfpgh
11 days ago
[-]
A few days of work doesn't matter over years.
reply
jmtulloss
11 days ago
[-]
Yes it does
reply
do_not_redeem
11 days 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.
reply