Dell XPS 13 AKA 2018 is the year of Linux on the desktop

Back story…

I’ve owned and used Apple laptops for over ten years now. I spend a lot of time writing code and prose and I need a reliable platform that runs something Unix-like and just works. I’ve regularly upgraded to newer devices to take advantage of better performance and new capabilities. The last upgrade I undertook was to the new Macbook Pro with a touch bar. My initial reaction was pretty poor. I didn’t like losing my Esc key and I found the feel of the new keyboard disconcerting. But I figured I’d get used to it, as I’ve done in the past. Then the “e” key came loose. Admittedly, I type firmly and I am tough on keyboards but this had never happened before. I took it into the Apple store to be fixed and was told this was generally a send-off repair. Thankfully, one of the lovely Geniuses said they’d see what keys they had in the back and managed to fix it. But by the following week the “r” and “s” keys had also come off and broken the butterfly clips. A little research online suggested that I was far from the only person with this issue. So I decided it was time to investigate a new laptop.

I knew I wanted a Unix-like platform with a good screen and lots of memory and disk. The logical choice was an ultrabook of some kind running Linux as a desktop. Asking on Twitter revealed a number of folks swore by their Dell and IBM laptops running Linux. My friend Jess Frazelle has also always talked fondly of her Dell XPS (XPS’es - she owns four I think!). These XPS 13s are part of Dell’s Project Sputnik, delivering developer-friendly laptops running Ubuntu or RHEL. I’d known about it for a while and helped some folks at Puppet get hooked up with devices in the very early days.

Through the kind works of Barton George I was able to get a complimentary XPS 13. This post details my first thoughts both on it and going back to Linux on the desktop.

/images/posts/2018/3/dell.jpg

Hardware

The XPS is light. Really light. I can heft it easily in one hand. It has a plastic feel that was initially odd but I am now used to. The screen is bright (and although I didn’t realize it at first is a touch screen - doh well done James on not reading the fine print) and the resolution and definition is sharper than my last MBP. It has three USB C ports and a head phone jack (woot!) and a micro SD slot. Most of my kit is now USB C-enabled so that made for a smooth transition for me.

The keyboard has a nice return with raised keys (and an Esc key thank Vim!). I am finding it hard to get used to the feel of it after years of flatter, butterfly keys but my touch is returning pretty fast. I did find one oddity: the PgUp and PgDn buttons are right next to the arrow keys and I keep bumping them. Although I also have long, clumsy fingers so it might be my fault too. :) If it continues I’ll investigate disabling them.

In another slight oddity, the camera is located at the base of the screen, allowing the bezel to be super thin. I love that I can use all of the screen real estate. I do find the perspective the camera presents in video calls of a “bottom up” view a bit disconcerting. :)

Battery performance seems solid. I’ve not yet drained it out fully but it seems to trickle out normally enough with my standard set of apps and daemons running.

The USB C power pack is awesomely compact. I spend a lot of time on the road and clunky power blocks in planes and hotels are annoying. This is small and easily stored. A1.

Overall, I like the unit a lot.

Software

This is the first time in more than ten years I’ve run Linux as a desktop. The laptop came pre-installed with Ubuntu 16.04 LTS. I am perhaps in a minority but I am pretty happy with an LTS release. I presume I could version upgrade to a more recent Ubuntu but there’s also a lot of potential that kernel changes and hardware might not mix well. As everything works “out of the box” with the pre-shipped Ubuntu it seems sane and sensible to me. I place a high value on immediate productivity versus new and shiny. The laptop boots fast and I although I tend to like Gnome more I don’t mind Unity. I might replace the launcher at some point but generally find it meets my needs.

I had also forgotten how many years worth of OS X tweaks I had invested, carried from laptop to laptop. I’ve spent the last few days discovering shortcuts and utilities I had forgotten in my dot files: “Oh shite - diff-so-fancy. Hmmm is there a Deb…? No… Install it.” I’m an avid Fish shell user and my setup is fairly complex. Recreating my terminal environment with the right fonts and various bits and pieces took a bit more than just porting my dot files over.

I also love the degree to which I can customize. The level of OS X tweaks that are readily exposed is pretty good but Linux exposes a lot of additional functionality. For example, my clumsy hands and bad eyes need a nice big scroll bar on my terminal sessions. Plus I like moving the scroll bar only a page at a time. I had forgotten how configurable Gtk is and I achieved this with some tweaks in local ~/.config. I added some CSS to ~/.config/gtk-3.0/gtk.css like so:

1
2
3
4
5
6
.scrollbar {
  -GtkScrollbar-has-backward-stepper: true;
  -GtkScrollbar-has-forward-stepper: true;
  -GtkRange-slider-width: 20;
  -GtkRange-stepper-size: 20;
}

And then enabled one page sliding by overriding the settings in ~/.config/gtk-3.0/settings.ini.

1
2
[Settings]
gtk-primary-button-warps-slider = false

I also have a fairly complex routing and network configuration with two VPNs, both split tunnel and routing traffic for specific destinations. That caused me some annoyance and I confess I spent eight or so hours fucking with configuration and finally several hours in the source code of iproute2 and Network Manager trying to work out exactly how to configure what I needed or rather why what I thought I was doing was marginally right but in fact wasn’t at all.

My biggest software complaint about Linux is the lack of an email client that meets my needs. I’ve been using Postbox for years and like it a lot. It is about the only email client that does sorting how I want: reminders pinged to the top and then all mail sorted in descending date order. It seems like a little thing but I literally can’t seem to organize my life otherwise. :) I’m currently using Postbox for Windows under Wine and trying out Mailspring. I find the former a bit painful and the latter it looks like I’ll need to write a plugin to get the sort behavior I want. I’ve also ignored the now numerous suggestions I try mutt or neomutt. My neck beard days are well over.

Overall, the transition has been relatively smooth. I suspect there’s still a few things I’ve forgotten to setup that I’ll stumble across in the next couple of weeks. It’s definitely a learning curve but there are a lot of resources online (I think I’ve visited StackOverflow a few hundred times). But worth the implementation cost to be back to my previous level of productivity. And helpful to have a full set of key caps!

Disclosure: Dell provided the XPS 13 free. They didn’t ask for any promotion in return but I felt it was appropriate to say a few words about my experience with the laptop and my return to a Linux desktop.