Skip to main content

From MacBook Pro to Thinkpad X1 Extreme: A survival guide

Recently my Mac was constantly warning me that it was running out of space, and with that warning it was reminding me that I didn’t have a good Apple option to upgrade. 

Apple lately has put a lot of effort in destroying what was once the perfect laptop (because, you know, courageTM). Among many other annoyances, the main reasons that made me switch were: the keyboard with almost no key travel and prone to auto-destruction with the smallest speck of dust, no esc key, and the useless touchbar. 

I know that I might sound picky, but I care a lot about keyboards, and not because I have a weird fixation with them, but because I spend a lot of time typing. Key travel determines how fast you can type and how sure you are that you pressed a key (feedback). It is the distance a key takes to be fully depressed. Too low key travel allows you write very fast with almost no noise, but the keys are prone to obstructions from crumbles and dust. Too much key travel and you will feel like typing in a typewritter. Most laptops have between 1.5 mm and 2 mm of key travel, the new MacBooks have less than 1 mm.

When I started looking for options, I quickly found out that only had three options. The Surface Book, the Dell XPS 15 and the Lenovo Thinkpad series. The main features I was looking were:

  • Keyboard: Good key travel (1.7mm), no flex (HP is the worst here) and Escape key, because I use VIM keybindings.

  • Screen: Mac has spoiled me with their retina screens. Every time I see a FHD screen now I can’t stop looking the border of the fonts to see if I can see the pixels, which I do most of the times.

  • Processor: Not a low-power processor for ultrabooks, i7 if possible, with lots of cache.

  • Memory: at least 16 GB.

I quickly I discovered Lenovo had just released what would be my next computer: The Thinkpad X1 Extreme. It supports two SSDs, up to 64 GB of RAM, a i7-850H CPU (with 9 MB of cache) and an NVIDIA GeForce GTX 1050Ti (4 GB) graphics card. The memory and SSDs can be upgraded, something hard to find lately in laptops. 

Also, the laptop was included in fwupd.org, which means that the vendor releases firmware updates that can be installed using Linux. 

Windows

Of course, the computer had Windows installed. I had heard a lot of good things about WSL in recent Build events, and I wanted to give it a try for development. Well, it turns out it is really good, it’s like working on a real Linux command line—not a VM, not Docker—inside Windows.

For those who haven't heard about WSL, it is like wine but in reverse. It is an environment that translates Linux kernel calls to Windows calls, so you can run Linux compiled binaries in Windows. You can even download Ubuntu from the Windows Store (approved by Canonical). With an X server you can even run graphic applications. 

But then something had to ruin the magic. In my day to day work I use Docker heavily. After installing Docker For Windows I tried to run several projects on it and started having strange issues with files that couldn't be found, that were locked, or simply strange crashes, specially when accessing a shared disk very fast, like when installing dependencies with composer or npm. It looks that shared volumes between Docker and Windows still needs some work.

It was a shame, because I really wanted it to work. Maybe Docker isn’t ready yet and needs still more time. If you don’t need docker though, WSL is your best option for development because you would have working native Linux environment and all Windows commercial software in the same computer.

Linux

So I moved to Linux and installed Fedora. Their community apparently was very proud of the latest release, which just had happened a few weeks before I received my laptop and I had never used fedora before, so I thought it was a good opportunity to give it a chance.

After installing it nothing worked. The computer freezed on the first boot. Turned out that I had to give up Hybrid Graphics in favor of Discrete Graphics in the BIOS, and thus, killing the prodigious advertised battery life. 

Hybrid Graphics means that the computer will switch graphics card depending on the demand. Discrete Graphics means that it will use only one, usually the best one (NVIDIA). I managed to setup a stable graphic environment after installing the NVIDIA propietary drivers, but then I noticed that the function keys didn't work, neither the sound and screen brightness control (from the keyboard o command line). So I decided to never try Fedora again... at least not with a new laptop and decided to look for another dristro.

A good lesson learned while trying to fix Fedora was that Kernel 4.19 doesn't plays well with this laptop. My advice is to stay on 4.18 or move to 4.20 when its released.

Pop!_OS

I found good reviews about a new Ubuntu based distro: Pop!_OS, made by System76, a computer manufacturer in the US that sells computer and laptops with Linux.

The installation surprised my because it was very polished and easy. When it finished my I couldn't believe that everything worked out of the box! 

Video, sound, function keys, brightness, suspend to ram, I could even switch video cards (after reboot)! The included power management is great, keeps the fans silent and includes a handy shell extension to manage it.

 

Applications

After finding my new distro, I proceeded to replace my most frequently used applications.

Category

Mac

Linux

Notes

Editor

Visual Studio Code

Sublime Text

Visual Studio Code

Sublime Text

Sublime Text is the fastest, vscode is a browser and, thus, it devours memory. 

If you miss Language Servers in Sublime Text, try this plugin: https://github.com/tomv564/LSP

Terminal

iTerm

Tilix

As good a iTerm. A good example of what the D language can do.

Git Client

Tower

Sublime Merge

gitg

I use it mainly to visualize branches, but Sublime Merge allows you to do operations. 

Sublime Merge is super fast.

Browser

Firefox mainly 

Firefox

I’ve been jumping between Vivaldi, Brave and Firefox lately though.

Music

Spotify

Spotify

If using a HiDPI display, use this to run it or everything will be just tiny: 

/usr/bin/spotify --force-device-scale-factor=1.5

Clipboard history

CopyClip 2

Clipboard Indicator

(Gnome Shell extension)

I installed it manually and edited a few files to allow more entries.

Mail

Mail.app

Geary

 

Notes

Bear

Haven’t found  a good replacement for Bear yet. I'm using Evernote for now.

Office

MS Office

MS Office (Web version)

Microsoft has an office version for web which is good for my few needs and is identical to the desktop applications. 

Diagrams

Omnigraffle

Draw.io

Web application. Nothing will ever match Omnigraffle.

Design

Photoshop

PSDTech

Zeplin

Gimp

Figma

I’m no designer, so my needs are reduced to open a PSD from time to time. PSDTech allows opening PSD files in a capable browser to extract the layers. Zeplin has a web version.

Gnome Extensions

Extensions allows you personalize your Gnome environment with little utilities. To install extensions, install the browser extension in chrome/vivaldi/brave Gnome Shell Integration (or for Firefox) and browse the available extensions here: https://extensions.gnome.org . You will be able to install them from the browser. 

To manage the extensions, themes, and other good stuff install Gnome Tweaks:

sudo apt install gnome-tweaks

I’m currently using these ones:

Dash to dock: Shows a dock like in MacOS

https://extensions.gnome.org/extension/307/dash-to-dock/

Top Icons: Tray icons for Gnome Shell

https://extensions.gnome.org/extension/1031/topicons/

Workspace Scroll: Move between desktops by scrolling the Gnome Shell top bar.

https://extensions.gnome.org/extension/943/workspace-scroll/

Other hardware

I was able to pair my AirPods with Pop!_OS. For listening music they are okay, but when trying to use the microphone in a call the other person would just hear very load static. So no mic when using AirPods.

Things to consider

Nothing is perfect, and this laptop is no exception. Now, these are for me more minor annoyances than issues, but are things you might want to consider.

If you come from a Mac, you will miss the nice aluminum feeling. The Lenovo X1E is built in a nice matte carbon fiber that looks and feels good, but it is plastic. However, this allows the computer to be extremely light. 

Another thing to consider is the fan noise. It is not very loud, and they are not always on, but when they are you can definitely hear them.

Conclusion

Windows or Linux are a great options today for development, but Linux has the advantage if you work a lot with docker. Previously, Linux had an applications problem, but with the rise of sophisticated web applications there are many good  alternatives.

Apple has lost their way, and now is a good time to make the jump.

Big or Complex Project,
Not Enough Devs?

We help development teams meet their deadlines by seamlessly integrating our highly skilled developers.