A Year Away From Mac OS
This is the fifth post in my series on finding an alternative to Mac OS X.
A bit over a year ago I wrote about my search for an alternative to Mac OS and switch to Linux. In this post I reflect on how that year went and detail some further adventures into Mac OS alternatives.
January 2017 — Linux All The Things
After originally choosing to use elementary OS full time I grew frustrated with some aspects of the system and switched to Arch Linux. After a bit of time on Budgie I eventually settled on the GNOME desktop environment.
The experiment was going well so I also installed Arch on my Mac mini and MacBook Pro in addition to my work PC. I used this as the primary OS on them.
February 2017 — Settling Into GNOME
I installed tools like Albert and Plank, GNOME extensions, and a custom theme to feel at home in GNOME. Over the following months I gave these up as I got more comfortable with the environment. I now run a vanilla GNOME desktop.
My experience with GNOME extensions was mostly bad. Many I tried suffered one
of these issues: memory leaks, flakiness that broke
generally low quality. I question the choice of building significant parts of
April 2017 — New Job
In April I started a new job and was given a choice between a ThinkPad T470s and a MacBook Pro 13”. I chose the ThinkPad. It too runs Arch and GNOME. I found the ThinkPad to be pretty lacklustre but it does run Linux well.
There are 3 other devs at work running Linux. The others have MacBooks, mostly the 13” MacBook “Escape”. That’s the one without a touch bar and only two USB-C ports. My feelings about modern MacBooks were only reinforced by seeing these machine in use on a daily basis.
Each MacBook is issued with a gross $100 dongle to connect it to the external displays we use and to provide at least one USB-A port. The USB port is juggled between external keyboard, mouse dongle, phone charger, and occasionally a USB hard drive. For a time there was a shortage of these dongles in Melbourne. Some people tried non-Apple ones which proved flakey and caused system instability. Apple’s choice to fully embrace USB-C has completely ignored what people actually need from their computers.
I’d estimate we have 20–30 of these MacBooks in the office. Many people choose to use a crappy company supplied Logitech keyboard with their MacBook or a personally purchased Filco TKL. I haven’t seen the same sort of failure rates mentioned elsewhere but I’ve still seen a couple of the MacBook keyboards fail in their short life. One had a key become sticky and unreliable, the other had its space fall off.
Starting a new job also meant that my chunky work PC also came home, replacing the Mac mini. I later sold the mini for 60% of the price I paid for it 5 years ago! It was one of the quad core ones they don’t make any more. Goes to show people want these machines. For whatever reason Apple is happy selling three year old hardware at brand new prices.
August 2017 — New Laptop
In August as I gained more confidence that the switch was going to stick I bought my first non-Apple personal laptop: a Dell XPS 15. The XPS has proven to be reliable, well-built, fast, and has a 4K screen that continues to impress me. On top of this it still manages ~8 hours battery life.
The XPS is a beast: Quad core i7, 32Gb RAM, 1Tb SSD, 4K display, and discrete graphics. It’s a fairly heavy laptop, but I love that I have the choice of a thicker, heavier machine if I want better battery life, a larger screen, or more ports. I’m not forced to compromise for thinness and lightness. I regularly work with Rust and having a powerful machine for compiling is really helpful.
The thing I dislike about the XPS the most is probably the power connector. I miss the ease of attachment and feedback of MagSafe. The Dell power connector is a barrel style connector with an LED embedded in it. The LED appears to serve no useful purpose. It’s always on, whether connected or not and doesn’t change colour or turn off when charged.
October 2017 — FreeBSD Desktop
I continued to be lured by a BSD desktop. The stable base + rolling packages model of the system is appealing. I prefer BSD style licensing, and the flexibility and guarantees that ZFS provides.
I installed FreeBSD alongside Arch on the XPS but laptop support (Wi-Fi, graphics, power efficiency) seems to be quite a bit behind Linux.
Eventually I realised I could try running it on my desktop PC. All the components were well-supported, including the Nvidia graphics card. Nvidia actually release official drivers for FreeBSD.
ZFS likes to use whole disks and one of the benefits of generic desktop hardware is that it’s upgradable. I invested in a trio of 250Gb Samsung 850 SSDs and added them to the system. Then installed FreeBSD 11.1 on them.
$ zpool status pool: zroot state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 ada0p3 ONLINE 0 0 0 ada1p3 ONLINE 0 0 0 ada2p3 ONLINE 0 0 0 errors: No known data errors $ df -h / Filesystem Size Used Avail Capacity Mounted on zroot/ROOT/default 417G 13G 404G 3% /
A FreeBSD 11 Desktop How-to by Allison Nicole Reid proved especially helpful in configuring the system for desktop use. As usual, I went with a GNOME desktop. Unfortunately the FreeBSD version of GNOME is stuck on a more two year old version (3.18). For the most part this isn’t an issue although I do miss some improvements from subsequent releases. Fortunately this version does have good HiDPI support as I’m using it with a 4K display.
The one hurdle to using FreeBSD was password management. The password manager I was using, Enpass, did not support FreeBSD. I did some research and settled on pass as a replacement. It’s a elegant solution to password management that makes use of a tree of files encrypted with GPG and a shell script to manage them. There are browser extensions and an iOS client so actual use is surprisingly user-friendly.
I imported my 1200+ passwords into
pass and was then able to
access them all on FreeBSD too. As a bonus, my password manager is now open
source and the data is self-hosted and tracked in
Even with various settings tweaked the desktop FreeBSD experience is not as
seamless as it is on Linux. For example, when starting the GNOME session
gnome-keyring-daemon --start doesn’t appear to be called. Or, if it is called
it’s not having the desired effect. So I have to run it manually and set the
agent environment variables myself. I’ve also been unable to eliminate screen
tearing in Firefox when scrolling. I’ve poked at various settings but it
I initially missed the game Stardew Valley on FreeBSD. It was consuming a few hours of my time each week prior to the FreeBSD install. The extra friction of rebooting into Arch to run the game basically stopped me playing. There was some recent progress running Stardew Valley on OpenBSD so I could look into porting that work… I have enough side projects as it is though.
To a lesser degree I’ve also missed Dropbox on FreeBSD. I’m not a heavy Dropbox user and can get by with the Dropbox website. Its absence is a minor annoyance but it would be nice if there was a FreeBSD version available.
March 2018 — Windows?
In January 2017 I wrote:
Regarding Windows, I should say that I am strongly biased towards *nix style operating systems and find it unlikely that I’d be happy using Windows full time. However, in the interests of keeping an open mind I will give it a try in the next few months. I have backed the Eve V campaign. The Eve V is a 2-in-1 laptop tablet that will come with Windows 10. For now Windows is off the table.
It took a lot longer than expected, but the V finally arrived in February 2018. I backed the campaign in December 2016. I’ve been getting a feel for what a 2-in-1 Windows machine with a pen has to offer. I still can’t see myself making Windows my primary OS but I will keep exploring. I’ve been tweeting my adventures with the #wesonwindows hash tag. At some point I’ll attempt installing Linux on it too.
My initial goal is to be able to replicate my work flow for updating Read Rust on Windows. This feels like a reasonable sample to determine if I can use Windows to get real work done. It uses the following tools:
- Cobalt static site compiler
- A Makefile
- Ruby (for a little date script)
- AWS command line tools
I haven’t yet tried installing the AWS tools. I have all the rest working in Powershell, without the Windows Subsystem for Linux (WSL). Most tools were installed with Scoop.
I’ll post more about the V and Windows in the future.
In October I wrote:
My migration away from Mac OS X is still going well. I rarely use Mac OS any more. The one remaining application I’m yet to find a suitable replacement for is MoneyWell.
This is still the case. About once a month I open up the MacBook to balance finances and track my budget. I’ve looked into many alternatives and none of the non-web based options I could find do:
- Envelope budgeting
- Automatic distribution of funds to envelopes based on a spending plan
Eventually I’ll either build a replacement myself or pay someone to build one for me. I’ve actually written a requirements document already. If anyone is interested in a paid project to build an open source command line replacement for my use of MoneyWell in Rust email me.
In my opinion the GNOME desktop environment is very good, it’s not Mac OS levels of polished but for most part it works well. It is consistent and cohesive, uncluttered, and unobtrusive. Releases are made every 6 months so it’s always improving. However, in the vein of, “yyyy is the year of Linux on the desktop”, I have a bit of a perpetual feeling that the next GNOME release will solve all my gripes.
For part of the year I was eagerly awaiting the 3.26 release. It brought per display resolution settings (allowing 2× and 1× displays to be used together) and the ability to adjust the split position when two windows are tiled next to each other. These features arrived and I suppose my attention was then drawn to other things. What I’m getting at is it never quite feels feature complete and there’s always this feeling of waiting/looking forward to the next release.
I don’t like the notification handling in GNOME. Notifications appear centred at the top of the screen, which is super annoying. I assume because of this they don’t slide down to make room for subsequent notifications (because they’d be filling the middle of your screen). Instead they just replace the current notification.
Almost all the notifications seem to be transient and don’t show in the notifications panel. If several show in quick succession you only see the most recent one. Mac OS handles notifications a lot better.
At this point I can’t see myself switching back to Mac OS. There is only one task (MoneyWell) that I haven’t been able to achieve with my new Linux or FreeBSD systems. I’m hopeful that I will eventually be able to move that one too. In all other areas I’m using the same tools or have found suitable replacements.
Me on Twitter 8:27 AM - 5 Mar 2018:
@wezm OMG what’s happening to me‽ My immediate reaction to this was, “that’s interesting but if it was open source we wouldn’t have this problem”.
@b0rk: super cool post about how to get the abandoned mac Twitter client to support 280 character tweets by modifying its assembly https://alva.link/post/reclaim-your-abandonware/
Over the year I think what I value in an operating system has shifted. I went in valuing design, consistency, and attention to detail. I definitely still value those things but I think I’ve softened on them. I’m willing to settle for a few rough edges. In return I get:
- Systems that are always up to date
- More hardware options
- Upgradeable hardware
- The ability to build an environment that works for me
- “The freedom to study how the program works, and change it so it does your computing as you wish”.1
That last one has come as a bit of a surprise. I’ve always been a fan of open source but was happy to use well-made proprietary software. It turns out that when a huge portion of your system is open source your perspective changes. Jumping through hoops to install proprietary software (that’s not in the system package repos) is kind of a drag, and feels sort of wrong for the system.
There’s also something wonderful about public bug trackers. You can search and track the progress of an issue instead of just submitting it into the void.
To say thanks for all this wonderful software I’m using for free I’ve tried to give back a little. Financially and through code and documentation contributions. I also maintain a number of packages in the Arch User Repository and hope to submit my first FreeBSD port in the not too distant future.