Its been roughly five months since I decided to make the leap from Mac OS to Linux. I am happy to report I have only had to go back to the Mac a couple of times to retrieve some files. Beyond that, I don't miss it at all.
My productivity has increased greatly since making the switch. The largest reason for the switch was so I could get the most out of Docker when working on projects in Drupal, Storybook or Pattern Lab. I use Docker for just about everything I can, and the amount of time spent waiting for Docker on Mac (even with Mutagen enabled) just eats into my time every single day. Composer operations, NPM, xdebug, running tests... they are all a magnitude of order slower - but not on Linux.
I can effectively hop in and out of projects, its a total breeze. There were other benefits too, like being able to fully utilize my 4K monitor (my MacBook Pro models had an older HDMI spec, so they cannot). Since that time, I have added 32GB of RAM, a 1TB SSD NVME stick in the extra m2 slot, and a nice Blue Yeti mic for better vocal quality. I had some extra gift cards saved from the holidays, so this was a nice addition.
Now, I am changing my OS to Fedora.
I initially started with Ubuntu 20.04. Ubuntu is a known quantity and I knew if I started with it I could begin work right away after installing software I needed - which is exactly what I did. However, there were a number of quirks. While they were not necessarily showstoppers by any means, all of them added up was just too annoying to deal with on the daily:
- FortiClient VPN would connect but not seem to receive any packets
- Ubuntu can't ever seem to remember my sound output/input settings. Every day they are reset to the wrong device.
- Ubuntu would often get worked up just opening windows with the file manager, with my fan taking off.
- The type was too small to read on this monitor, even with Large Text accessibility setting enabled - this means I had to also enable fractional scaling and set it to 150% to be usable.
- Fractional scaling is buggy with certain apps depending on how they were made (GTK vs Qt vs Electron etc). Apps like Gimp are unusable in this state.
- Fractional scaling has a bug in Ubuntu that leaves a ghost mouse pointer on the screen on login. You have to unset and reset display settings to make that go away.
- Using fractional scaling the system didn't really know what resolution it was in. For example some apps thought the resolution was ~5200x3000. Albert, Steam and other apps couldn't figure out the center point of the screen and would always toggle open near the top left.
- To the last point, using screen recording software like OBS Studio was painful because it was capturing or upscaling the recording higher than what it actually was, which took more resources and was very laggy. Oddly enough - SimpleScreenRecorder did not suffer from slowdown.
- Yet another issue with fractional scaling - the only way to fix the interpretation of "center screen" with apps was to let the system go into suspend and then wake/login again.
- Zoom also could not remember my sound settings, and would often log me into meetings twice (though this could just be Zoom itself)
Like I said, it wasn't like the system was unusable, but add it all up together makes for a daily annoyance to deal with. I started looking into Fedora 34 based on it being released with Gnome 40, a vast improvement on the UI. It would also ship with Wayland as the default display protocol over Xorg.
It would not be my first experience with Fedora either. I developed on Fedora way back in 2007 when we had to build an event ticketing system for the Delaware State Fair in 72 hours. Fedora was a solid choice then, and it is a very solid choice today.
Swapping was very easy and one of the main reasons I bought that second SSD. Installing Fedora 34 was a matter of minutes, and I brought my profile/rc files and ssh keys over on USB. After that it just took a couple hours to get the requisite software I needed, Slack, Zoom, PHPStorm, Docker, etc. Again, since my projects are all in Docker, once I checked them out with git on Fedora, I was literally ready to work.
I am very pleased with the swap. So far, here are the differences between experiences:
- FortiClient VPN just works. Pi Hole is not interfering - so this must be something Ubuntu related.
- Fedora seems to boot faster.
- Fedora remembers my sound settings.
- I don't need fractional scaling enabled on Fedora 34 - the max resolution with large type is perfectly fine to read and code with. I tried this one last time on Ubuntu, and it made my eyes water and strain.
- My system resources seem to be used more efficiently. RAM usage is lower and the CPU fan does not spin up as much as it did on Ubuntu.
- Wayland + Gnome 40 feels faster and snappier. Many seem to disagree, but side by side it is very noticeable IMO.
- Managing local certificates seems easier to me with the trust command on Fedora. It is clunkier to me on Ubuntu. Minor point.
After spending a few hours setting up this weekend, I am ready to begin work tomorrow with a more stable setup. The only thing I would like to change is to replace my old mouse with a good Bluetooth enabled mouse, but my experience with Bluetooth on Mac and Linux has been far less than acceptable. Freeing up two USB ports would be nice, though.
Now I am ready to decommission one Macbook Pro and leave one for travel/leisure. Obviously one drawback of this setup is the NUC cannot be taken anywhere, but I can do the same work on the go if I need to. Traveling across country to clients/friends/family, not a problem. Of course, I could also get a System76 laptop and put Fedora on it, too :)
If you are on Ubuntu, give Fedora 34 a look. It is currently in beta - but you can upgrade to the official release with dnf update. It is slated for public release on April 27th.
Update: Bluetooth services work correctly on boot or when returning from suspend - so I can indeed unplug my keyboard above and get a Bluetooth mouse to declutter / free two USB ports! I could not get this to work on Ubuntu.