I've been working on a Linux laptop now for about nine months and I wanted to retro my learnings for the benefit of others.
So after these last nine months I've realized all the reasons I changed over aren't the the same reasons that have kept me on Linux. It's been extremely interesting finding the hidden costs in switching, but also the hidden gains.
First, to outline some of my motivations, I should note that I'm an SRE/"DevOps" engineer who manages Linux and containerized distributed systems. I'm very comfortable with Linux and all the issues that might happen on a server. That said, I don't manage any systems that have X Windows installed nor Bluetooth or other "must haves" for a work environment (Spotify for instance).
My Original Reasons for the Switch:
- Mac hardware has some issues (I didn't want a touchbar but I did want the latest CPU and memory specs)
- A more native environment, akin to what I'm used to working on the servers I work with
- Recent experience with personal laptops with Debian installed, I really enjoyed setting things up and getting things smooth
- Performance tuning and control (more on this later)
Hurdles in my jump from OS X:
- Is Bluetooth reliable
- Does Spotify have a client
- Iterm2 split windows and broadcast input
- VS Code and other IDEs or dev envs
- I can't treat my laptop as "cattle", it's definitely a pet
- Will I spend all of my time just getting the OS to behave? Will it leave me stranded?
I really wanted some nice new hardware to get me rolling on my nice new job. Unfortunately all the best Apple had to offer stuck me with USB-C only, no mag-safe, and a silly touchbar, not to mention all the keyboard issues with the new models... If I was going to be eating the fact of no mag-safe, I thought I should check out how it would be to work on some non-Apple hardware. I also thought it would be good to go with Linux because of my familiarity using it for servers. I had also been running an
old laptop with Debian Jesse for a while and really enjoyed playing with my development environment on there. I found that most modern IDEs, worth their weight, have a Linux client so VSCode was pretty much a 1:1 switch from Mac to Linux. Spotify also had a client which pretty much sold me on the move. After learning a new workflow to get bluetooth speakers and headphones paired, I realized there are a few other hardware managers out there. Reading up online, I moved to a different Bluetooth manager. One thing I learned is you can replace just about anything, but be prepared to rollback your decision if it's not what you expected!
As for replacing Iterm2, I found tmux to be a super nice solution that you can carry with you via dotfiles and other customizations.
One of my original reasons for the change was to get better control over technical decisions and performance of what my laptop was doing. This ended up being a double edged sword but overall, if you have a slowdown you can really lean into systems knowledge to understand what your laptop is doing and why! I ended up encrypting my boot disk as well as having an encrypted home directory for overkill, this can sometimes be cumbersome so always remember with great power, comes great personal accountability :).
In terms of the hurdles, I did find myself learning more about how the system worked and how to care and feed the OS. In terms of daily "care and feeding," I haven't found myself unable to work or getting stuck because my laptop wasn't working.
Downsides I Hadn't Considered:
- Installing dev tooling and comparing notes with coworkers: Uh I don't have Brew.. what now..
- Internal tools built for Darwin only - this means your building your own stuff sometimes.
- Company policy: Most larger organizations have agents installed on laptops to be able to apply policies and control access. This might not be possible with Linux or in your org.
- Mouse gestures still aren't as amazing as OS X: Multi-touch works but no really great native swipe gesture functionality.
- Sometimes the bundled hardware manger tool for the distro isn't your favorite.
Honestly, the things I learned from the jump to a Linux workstation surprised me and overall I still would recommend it to anyone where it's an option. After the internal docs and tooling fight, to get my laptop ready to do daily work, I spent some time writing issues and docs for others to help them migrate if they want to.
One thing that I still do miss about OS X is the four finger swipe between workspaces, but honestly the Ctrl+Alt left or right arrow works fine in it's place.
My Reasons for Staying with it:
- More native experience is awesome
- Just being a user has increased my community involvement
- Boot times are incredibly fast on new hardware with SSD
The reasons I've really appreciated lately actually are mostly new reasons, and not always the reasons I thought I wanted to move. Using Linux as a daily driver has driven me to investigate inconsistencies, report issues and try out new open source tools. Just by using the technology, I feel like I've been slightly contributing back. I've really enjoyed both the updates as well as boot performance of my system.
- Confirm it's cool with your org! Or try it at home!
- Try to pick a distro that is similar to what you work on. Try to avoid installing Debian if you use all CentOS at work on your servers. Unless you really want to know both, it's much easier keeping you one distro line. I personally like Mint Linux because we use Ubuntu or Debian for most our servers.
- You might live with "that one weird thing" that happens on your workstation until you figure it out: For me it's my line wrap with ZSH and tmux. Sometimes it does weird things and it isn't enough for me to go really figure it out
- Try Linux out at home first or Dual Boot. The idea here is to be able to roll back to a productive environment
Feel free to ask questions but remember, if you're thinking of taking the leap, have fun and experiment!