It has been a good couple of months since I took delivery of my new laptop and made the switch to Linux full time. Quite a few people on twitter have asked for a follow up post on how things were going. Here it is!
Let’s start with the Dell XPS 13. It is an impressive bit of kit. Small, light, well built and very comfortable to use. There are some really nice little touches. For example there is an option in the BIOS to turn it into a battery pack for other USB devices and I really appreciated that the laptop shipped in packaging that is almost completely recyclable.
My main complaint would be the placement of the webcam which sits just above the keyboard and makes for some interesting perspectives on video calls. The webcam placement though allows for an almost borderless display which is probably one of the nicest parts of the laptop. In short, it is a compromise worth making.
I have improved the webcam problem by bringing the laptop off of the desk on a Roost stand. The stand is portable too so I intend to take it with me when travelling.
I have been impressed at how well devices have worked with this laptop. For instance I can easily switch between HDMI audio, internal audio and headphones. This all works far better than it ever did on my Mac.
The Dell ships with Ubuntu 16.4. I have never been a fan of the default Ubuntu desktop environment (Unity) so began testing different distributions straight away. My preference was to stay with something Ubuntu/Debian based as this is where I have the most Linux experience thanks to the Raspberry Pi and a Digital Ocean droplet I host with. I tested Mint, Elementary, Ubuntu Gnome, Ubuntu Mate and Xubuntu. There were quirks with every single one, mostly around the HiDPI screen and occasionally odd bits of hardware too. Out of them all I was hoping for Elementary to work the best. Unfortunately it failed to detect both the WiFi and correctly support the HiDPI screen.
In the end I switched back to Ubuntu, upgraded to 16.10 and installed the Cinnamon desktop environment which is part of the Mint distribution. I took to Mint very quickly and it allowed me to create a desktop experience similar to the one I had on my Mac. When logging into Ubuntu I can pick Cinnamon as the default and I have yet to feel the need go back to Unity. As Cinnamon is built for Mint there are a few small bugs from time to time but I have managed to work past most of them.
Most of the quirks seem to be around the HiDPI screen. Switching between my standard DPI desktop screen and the laptop screen requires me to restart Cinnamon sometimes and I have found it almost impossible to run both the laptop screen at desktop screen at the same time with different DPI settings. To be fair though, most of the distributions I tested struggled with this too.
From a development perspective Linux is fantastic. I would say my experience with the tools has been better than those on Mac. I have mostly all the same applications I have come to rely on and there has been almost no disruption in my workflows. The Atom editor has played a major part in easing the transition which allowed me to keep all my favourite extensions and settings.
This has been much trickier. I was hoping I could keep Adobe Photoshop and launch it under Wine. I managed to get a 2014 version of Photoshop installed and running but failed when it came to Illustrator. Some of the open source alternatives are OK — Inkscape seems to be heading in the right direction, but to collaborate with others I really need to able to at least open some Adobe file formats.
My solution has been to install Windows 10 as a virtual machine. I tested a few different ways of running a virtual machine and settled with VirtualBox as it allowed me to enable 3D support in the box. From the VM I run Creative Suite and SketchUp, although I have SketchUp installed under Wine as well. I am hoping this is all I need to use Windows for.
All Switched Up
I can now officially say I have made the switch. My Macbook has been sold and I can happily work from Linux every day.
As I have fixed issues, tested applications and made changes to the OS I have kept an ongoing log of the commands I have needed to run. The idea is to create a single script that will setup a machine as I like it should I ever need to format and start again.
If you are interested in a full list of software I have installed and the tweaks I have made, then you can find a gist of the script below. DO NOT run this as it stands, it will probably fail and should be considered a work in progress.
p.s. For those wondering about the title of this post, I was brainwashed as a child 🙂