Work issued me an M1 MacBook Pro, but all my development is under Linux. Linux has been my preferred environment since the late 90s. While I find the MacBook Pro hardware to be nice, I find macos clumsy and frustrating, and my productivity severely drops.
So, I run Fedora (aarch64) under UTM full screen. It works acceptably well, and I often forget I'm on a mac.
I just wish macos would get out of the way, and not sometimes knock you out of full screen mode.
The Linux -> macOS experience tbh is really either about putting up with macOS' issues and adjusting to them, or patching things up with third-party solutions to make it tolerable. Or a bit of both. I've learned to adapt to it since it's a shame to miss out on the reliable battery life.
Maybe there's a solution out there somewhere that would let you stay in full screen mode.
Maybe around once a week, sometimes twice? It's not so often, but on occasions when I have to, it's nice to have long, reliable battery life since they're usually the times when there's also a notable lack of power outlets, or it's inconvenient to set up to plug and charge.
But yeah, I can imagine myself in the same situations with UTM running nonstop and it'd still have enough battery life.
What specifically makes your productivity drop? I find having a terminal running bash on my mac is more or less same/same as being in linux. Occasionally the utils will not support a cli argument I am used to, but that's more of a versioning issue than a mac/linux issue, and one I have seen many times in my career sometimes just moving between boxes within a company.
The biggest headaches, though they aren't that big, is really about ARM vs x86, sometimes you will come across a package that just isn't supported on ARM, though that is increasingly rare.
I really don't like mac os's graphical shell. I am constantly frustrated by how terrible its window management and virtual desktop support is.
I also find developing on a mac is so frustrating. The package management experience is just such a downgrade.
And then there are the apps. All my daily apps are open source, and the apps I use just tend to work so much better on linux then on mac os (if they are even available on mac os!)
> Why you can’t toggle between different instances of the same app by default is beyond me.
I’m not entirely clear on what your requirement here is. Historically, Mac OS X/OS X/macOS has had a different app and windowing model compared to Linux. If you’re looking to switch between windows of a single app, you can use the keyboard shortcut Cmd + ~ (that’s Command and tilde). There are also trackpad gestures to see all windows of an application (swipe down with three or four fingers) and switch.
Rosetta works surprisingly well even on Apple's Virtualisation framework in Linux VMs. I've not come across a codebase that I can't develop locally on Apple Silicon in some capacity, whether that be on a VM or not. We've got a pretty annoying C++ repo to build that was very much written with the intention of only supporting x86 on Linux, and it wasn't too much of a hassle to set up an ARM Ubuntu VM through UTM and make a few minor tweaks to the build process (mainly just spoofing uname -m) to get things going.
Same goes for some .NET Framework apps we have; I've found an ARM Windows VM has been indistinguishable from x86 Windows.
I’m not the OP, but for me I yearned for two things: my favourite window manager and a system whose source code was easily within reach. I rarely use the latter and the former is something I could be coaxed away from over time, but really there’s little reason to change from a free and open system in 2023 when everything works so well.
I make do with being an XPS peasant compared to the beautiful rounded rectangles used by my peers on the basis that my machine is completely available to me in every way possible thanks to source
code.
Any time the file dialog opens in macos my productivity drops to 0 for a few minutes while I try to do basic things like go up a directory or open my home directory.
I’d suggest that you lookup and learn keyboard shortcuts. Going up a directory is Cmd + Up Arrow, going to Desktop is Cmd + Shift + D, going to Documents is Cmd + Shift + O, going to Downloads is Cmd + Option + L, Cmd + Shift + G to bring a Go text input that understands ~ for home folder as well as autocompletes on tab, and so on. While macOS is not as keyboard friendly as Windows or Linux, it’s not totally devoid of it either.
If you’d like to have a more powerful experience with file dialogs, the paid application Default Folder X [1] is worth it.
I wouldn't call it dramatic, I feel like windows and linux (Caja, specifically for me) are mostly intuitive and natural but Finder is bizarrely alien and unproductive. There's not a native version of Caja to install so finder kind of makes lost in general.
Also Samba shares seem to mount perfectly on windows/Caja but on Finder there is some weird issue where after it working a few days suddenly you can't connect unless you use the terminal.
Cmd+shift+g brings up a dialog where you can type arbitrary paths to jump to. Cmd+(up arrow) goes up a directory. Took me way to long to figure these out, seems small but they definitely are productivity boosters :)
M1+ is quite fast hardware. If not for lack of hardware compatibility with projects based on x86/x64, it'd be the best option.
I think Parallells give you more, but I do a big window in UTM over 2 displays which works quite well and doesn't break rest of the OS X flow. Mic doesn't work, you occasionally have correct audio output, but OS X audio daemons sucks so it's a crapshoot if you get audio and where/how it's output. You don't get 3d accelleration I think, but haven't tried. It's not for games or Teams (neither is OS X).
But it works reasonably well for software that runs on arm64, which on Linux may limit you a bit. But you get to make things work either on OS X or Linux arm64, and the rest works well. You may not notice much overhead compared to OS X on M1+.
As with everything, you can make it work for you, but it's not for gaming, CAD, some proprietary or limited projects, etc. Should be fine for development and sysadmin stuff.
If something works on Linux arm64 on M1, it's quite well supported you might say. So you get to weed out some fluff, but also some nice things.
I've found Rosetta works really well with VMs using Apple's Virtualisation framework, to the point that I've not had any issues building niche proprietary x86-only C++ libraries like network card drivers. The only annoyance was spoofing uname -m and/or setting architecture build flags everywhere since build systems will try to target arm64, but actually getting things to build was far less painful than I thought it would be. I'm thoroughly impressed.
Given the multiple perf/$ boost of ARM on cloud hosts (e.g. AWS Graviton), that hardware compatibility can be put to work for recurring monthly profitability at the expense of helping OSS ecosystem learn that ARM exists.
So, I run Fedora (aarch64) under UTM full screen. It works acceptably well, and I often forget I'm on a mac.
I just wish macos would get out of the way, and not sometimes knock you out of full screen mode.