Moving to Linux

Motivation and getting started

5 min readNov 18, 2018

--

I’m currently moving my development environment to Linux. Actually, that is moving to Ubuntu with the Budgie desktop.

Before I go into details regarding about motivation and the reasons for undertaking this, let me make it clear that this is a work in progress. It might be a huge success in the end but it also might all fail and fall apart at some point in the process.

I will document interesting parts of the transition in posts as I go along. This is for my future self, but if you end up finding some of them useful, even better.

I’m not interested in triggering discussions about my reasons or a flamewar on why Windows, macOS or Linux might be better or worse. Feel free to leave comments along these lines if you must. I will not engage in any of these kinds of arguments. Any technology choice has its pros and cons.

Also, I’m currently split across two platforms and I’m not using Linux only at this stage. This might never be the case, I don’t know yet. But so far, apart from my new Linux laptop, I still have my “main” Macbook Pro, an 11" Macbook Air and an iMac. I use them in different contexts for different things and I’m happy with this approach. YMMV.

“Why would anyone sane do that and move to Linux anyway?”, I hear you ask. The public perception is that Linux as an operating system is fine for servers, VMs and cloud stuff. People would not want to deal with the clunkiness of Linux Desktop though, right?

The reality is that things most likely have improved a lot since you looked the last time. Depending on the distribution and the desktop you’re going to run, you can get a very nice and slick desktop setup.

From Mac to Linux

After having been a OS X/macOS user since 2007, I started to think about this move in 2017. It turned out that the new Macbook Pros coming out of Apple since 2016 suffer from Apple’s preference for producing things that are as slim, shiny and slick as possible. Quite often at the cost of usability for developers.

The main issue that turned me off from upgrading my 2015 13" MBP was that the new MBPs suffer from a lot of issues with the slimline keyboards. Keys would fall off or get stuck or other crazy stuff would happen. At the same time the keyboards in the 2016+ MBPs are not great to type on. Among my friends using a MBP 2016+ about 30–40% had some sort of issue with their keyboard. The prospect of having to part with my main machine for days to get a simple keyboard problem fixed wasn’t making things better. And please don’t get me started on the touch bar…

Then there’s the price. I don’t have any problem paying NZ$ 4–6,000 for a good laptop that is reliable and works. It seems that the new MBPs do have various systemic issues as outlined above. I wasn’t willing to drop that amount of money on one of these machines.

The last nail in the coffin was Apple’s inability to produce a laptop with 32 GB of RAM. When I’m doing Android development, I quite often run various backend platforms in VMs or on Docker to test against. I found that doing this is more pleasant with 32 GB RAM instead of the 16 GB RAM most Macbook Pros max out at.

Since June 2018, Apple now has a MBP with 32 GB of RAM in their lineup. It’s only available as a 15" model though (which I prefer not to have) and it’s also quite expensive (above NZ$ 6,000 in a decent configuration). Apple say they have fixed the keyboard issues of the 2016/2017 MBPs, but only time will tell if that is the case.

Anyway, here we are. Around April/May 2018 I started to do research in the available hardware options for setting up a Linux-based laptop. I pretty soon settled on a laptop from Tuxedo Computers in Germany. Their approach is to build and provide systems that won’t have issues with hardware due to lack of Linux drivers etc.

A laptop from them should just work out of the box and in general that seems to be true. I will write a bit more on my hardware setup, the pros and cons and how it all came together in a later post.

Distribution and Desktop

From a distribution point of view, the two mainstream platforms I was considering were Ubuntu and openSuse.

Suse Linux was my first touchpoint with Linux more than 20 years ago when I was studying mathematics at university. I liked it a lot at the time, but in the end I decided to go with Ubuntu for my new platform. Its foundations are very like Debian which I’m familiar with from the server world. I feel that openSuse is more of a niche environment in my part of the world (Australia, New Zealand).

I’ve been trying out a couple of desktops for Ubuntu in VMs and on actual hardware. For a bunch of reasons the standard Ubuntu desktop didn’t appeal to me at all. I ended up going on Budgie. From my point of view it looks great and slick. The behaviour and look and feel remind me a lot of the OS X desktop (which I actually like).

Budgie is quite new and one can probably argue that it’s more of a distribution itself than only a desktop. As far as I can see it was started around 2014 and popped up publicly more or less around the time Ubuntu 16.04 was released. It seems to be a very nice and well working Ubuntu-based platform. Also Budgie comes with a lot of useful UI and system widgets for the desktop’s top bar. Among them are CPU and temperature monitors, special key status indicators, keyboard locale selectors, shortcuts into the file system and many more.

I’m currently using Ubuntu Budgie 18.04 LTS (long-term support). It was released in April 2018. While there now is an 18.10 release, I will probably wait until I’ve learned more about Linux on a desktop before going away from the LTS setup.

I hope you find this informative and useful. As usual, I’d really appreciate any comments and feedback. You can find me as AgentK on Twitter.

--

--

Building Web & Android apps in Kotlin, CFML, JS, Java… 💑 to @blauerpunto. Also: pilot ✈️ & Nintendo gamer 🎮: 4613–9999–2913 (3DS) & SW-3852–3319–8305 (Switch)