IIUC, there are some hoops that one needs to jump through to have the Wifi working, then issues with the keyboard, the trackpad, the screen resolution, etc.
Another person mentions persistent GPU issues (“However, I’ve experienced significantly lower battery life and louder fans due to higher (~15C) CPU idle temperatures and not being able to switch GPUs on-demand (Nvidia GPU is always active). These problems are not specific to NixOS, I’ve experienced the same issues in other major distributions on this laptop.”) Installing NixOS on a MacBook Pro
So, good idea or not ? And if it is a good idea, how to make the installation process as painless as possible ?
One vote for good idea! Having read those same articles I was pleasantly surprised during a recent install on a similar older model MacBook Pro. The NixOS ISO recognized the keyboard, trackpad, and screen resolution with no problems.
Internet for the install will take a little effort. It’s really not too bad, depending on your definition of painless. I suppose this is only fair; the licensing for my WiFi driver (and yours) means that the drivers aren’t bundled with the installer. Another issue is that my device (and yours) do not offer Ethernet ports. I looked at using a USB Ethernet adapter but perhaps this would not be ideal for some reason or another. For instance, we can prove to ourselves that WiFi will work on the eventually installed NixOS by first testing it with the installer.
If you did follow those steps, you would have created a file modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix (or similar) with which to create a custom installer.
Second question: What were the values (the elements of the lists) you may have assigned to
“thoroughly”, no, but I was aware that building an image is the recommended approach. OTOH, I don’t have Nix system so it’s a bit of a chicken-and-egg issue.
You’ve probably solved this by now, but today ran across Stuck creating a live USB iso containing broadcom_sta drivers where somebody found success using a vm. Other things came up but I’d been hoping to test something like that out for your case.
For the record I tried this recently and a stock nixos-unstable installer image now apparently has everything necessary to connect over wifi, no extra setup required.
Speaking of nixos on apple hardware I now have about two months under my belt so I can share my experience. Generally I give it one thumb down, would not recommend unless absolutely required. I’m only sticking with it because mbp 2015 doesn’t get security updates anymore.
The touchpad experience is bad.
I could only get proper display scaling to work on Gnome
Even there, a lot of apps don’t scale properly and look very fuzzy and huge. E.g. Firefox works well, but smaller apps like Signal look crap. Emacs looks even worse.
Sleep / suspend is a joke: gnome goes to sleep after N minutes, then wants to notify you it’s going to sleep and wakes itself up. Like a pug snoring itself awake.
Awake from sleep is very slow compared to native mac. Mac: open lid and you’re ready. Nixos: …
Good points:
Filesystem access is a million times faster. This is particularly poignant for Nix itself. Much better experience on nixos (obviously).
I’m sure there are ways to solve it all and i’m hopeful that at least with NixOS we can slowly accumulate some recipe of settings that make this extremely popular hardware a breeze to use. Currently it’s not there.
Sounds like configuration for the most part. NixOS isn’t really a guaranteed-work-ootb distro, it’s more in line with gentoo/arch - you’ll have to do a bit of work for your use cases.
nixos-hardware exists, but will not cover tweaks to your choice of software:
Make sure to use wayland-based compositors. X11 never really had stellar support for high-dpi screens, this is half the reason wayland exists.
Sounds like you’re using the xwayland versions of the other two. There’s an env variable that turns on wayland support for various electron apps, and emacs has the pgtk branch for wayland support.
Personally I would recommend using firefox instead of electron to render signal in general, electron will always give you a poor experience on wayland, and is generally not great. If you really want to get rid of the URL bar there are ways to do that. Still my advice for other electron stuff, but signal doesn’t actually offer a website version, sorry!
Funny, but I doubt this is what’s happening, probably just looks like it. A sleeping computer isn’t sending software signals. More likely there is some real trigger, like the keys you press to put it to sleep not being properly debounced, or some random piece of hardware creating events when it should not.
You can figure out what caused the wake and tell Linux to ignore it, I think the arch wiki has some good suggestions here. This’d be a nice thing to include in nixos-hardware.
You’ll need to set up the sleep state you want. If it’s really that slow there’s a good chance you’re suspending to disk instead of RAM. There is more to this, quicker sleep states may simply not be supported by the kernel on your device. Apple hardware support has always been shaky in the kernel because, well, it’s Apple hardware.
Ah, whoops, I’d not realized signal is one of those web apps that aren’t available on the web I guess your best option is mautrix-signal and then using a matrix client.
I‘m successfully running NixOS on a MacBook Pro (13“ Retina Early 2015) as a daily driver and everything works out of the box (as far as I can remember because I only used Gnome to set up River as my WM). So I have to support @TLATER that it might be a configuration issue.
I first started three years ago with NixOS and have been using this setup as my main computer for a year now. So things should be supported for a quite long period now.
Sounds like configuration for the most part. NixOS isn’t really a guaranteed-work-ootb distro, it’s more in line with gentoo/arch - you’ll have to do a bit of work for your use cases.
I mean… yeah it sounds like you agree with me everything except maybe drivers is basically a configuration issue? I’m replying mostly to the original post and the linked blog post and I concur with the author(s).
Since my comment the situation has deteriorated: when the laptop enter “sleep” it locks up and heats up, only a hard reset stops it. When the lid closes the laptop becomes quite hot. Somehow wayland is no more so now there is no fractional scaling. Reverting to older generations doesn’t change it.
On the plus side back when I did still briefly have wayland I found the “pure gtk” branch of Emacs to solve the scaling problem so that’s +1.
Funny, but I doubt this is what’s happening, probably just looks like it. A sleeping computer isn’t sending software signals. More likely there is some real trigger, like the keys you press to put it to sleep not being properly debounced, or some random piece of hardware creating events when it should not.
I doubt that’s what’s hapenning as the laptop’s sleep function worked fine under mac. I would see it unfold literally out of the corner of my eye while I was working on other things. Can’t test it now since sleep mode has gotten worse of course.
Anyway long story short: I agree with the linked blog post. If someone has a nixosModule with all the settings tweaked just right for this piece of hardware then I’d be much obliged.
Until that time: the blog post stands. I would advise anyone against installing nixos on their macbook pro unless they have absolutely no other choice. Of course reasonable people are free to disagree
Kinda, but rather than “NixOS is broken and you should not install it on a Macbook” my point is “you should sit down and go through this list of things that you seem to have missed or misunderstood, then share what you’ve learned, this’d take an hour or three to fix tops”.
Be the change you want to see and whatnot, this is FOSS.
It’s enlightening to be on the other side of this comment, because I’m usually the one making it.
There is a lot to think about here: a difference in perspective, e.g. I think honesty is paramount and false advertising damages FOSS more than it helps, whereas you seem to come at this from a side of “if you can’t say anything constructive don’t say anything at all.” Or from how we see this thread to begin with: I think different rules apply when you answer an explicit question about “what is the status currently?” versus volunteering “this is bad” out of nowhere, and it seems that’s not a universal opinion. Or the irony that I was in fact preparing exactly such a list and came back here to share on such tip (“use pgtk emacs to fix the scaling issue”), only to find that comment that started this all off.
But there’s one thing I’ve definitely learned: I will never again say “be the change you want to see in the world”, now that I know what that sounds like. I think I have to go back and apologize to a few people.