Geek Igor

Ubuntu 18.04 on Thinkpad P51

30 Sep 2018 #linux

Back to Linux after almost 3 year hiatus.

Switching back from MacBook to Thinkapad and Ubuntu as the main work machine.

My MBP 13’’ aged quite nicely, but compiling large scala codebases and running VMs / containers became quite frustrating. I was eligible for a refresher at Elastic and I’ve decided to try Thinkpad P51 + Ubuntu. This is a 15’’ beast with 64 GB of RAM. It is quite heavy, but working remotely I don’t need to carry it to the office every day, while still being able to travel if needed. I consider the trade off acceptable.

This post is a short note and what works and a note on setting it up if I need to do it again.

Out of the box experience

The out of the box experience is surprisingly good. P51 is about 1 year old, so 18.04 kernel (4.15) contains everything it needs. Basically, after the installation I’ve needed only to install nvidia drivers and change display scaling (4k screen). Second display (also 4k) works, sleep works, etc.

What doesn’t work?

Battery life

I get around 3h of regular work (compilations & build, IDE, spotify, external display, mails, slack, I have it all). It is a far cry from MBP, but acceptable. I plan to experiment with TLP to see if I’ll get more out of it. Also, I’ve haven’t got a chance to test it without IDE + sbt combo; hope it’ll be a bit better in reading / surfing mode. I’m using the discrete nvidia card.

KDE vs Gnome

I’ve played a bit with kubuntu and ubuntu live cds and decided to go with KDE. But after a few days I’ve installed ubuntu-desktop and stick with it. I like KDE more, but the number of configuration options and perceived stability made me switch to gnome for now.



Kubuntu Installation

After installation


$ sudo apt install chromium-browser


$ ubuntu-drivers devices

# and if you agree with the recomendation
$ sudo ubuntu-drivers autoinstall

# reboot and then you can:
## check with card is in use
prime-select query

## select one of them
sudo prime-select intel
sudo prime-select nvidia

## and reboot
  1. glxgears on intel

    $ glxgears
    367 frames in 5.0 seconds = 73.211 FPS
    301 frames in 5.0 seconds = 60.027 FPS
    301 frames in 5.0 seconds = 60.023 FPS
    301 frames in 5.0 seconds = 60.023 FPS
  2. glxgears on nvidia

    $ glxgears
    Running synchronized to the vertical refresh.  The framerate should be
    approximately the same as the monitor refresh rate.
    71605 frames in 5.0 seconds = 14320.992 FPS
    72945 frames in 5.0 seconds = 14588.849 FPS
    73311 frames in 5.0 seconds = 14662.161 FPS
    C73643 frames in 5.0 seconds = 14728.479 FPS


cd ~/Downloads
sudo apt install curl

curl -O
curl -O
curl -O
gpg --import code_signing_key.asc
gpg --verify keybase_amd64.deb.sig keybase_amd64.deb
sudo dpkg -i keybase_amd64.deb
sudo apt-get install -f

Restart was needed to fix a permission issue while cloning a git repo

Source code pro

# Go to
# Select this font
# Download
$  mkdir -p ~/.fonts/Source_Code_Pro
$ unzip  -d ~/.fonts/Source_Code_Pro
$ fc-cache -f -v


$ sudo add-apt-repository ppa:kelleyk/emacs
$ sudo apt-get update
$ sudo apt install emacs26
$ git clone ~/.emacs.d
$ cd ~/.emacs.d
$ git checkout develop


$ sudo apt install git
$ cd ~/code
$ git clone keybase://<my-dotfiles-repo>
$ cd dotfiles
$ make do-bootstrap
$ make force-install



Install from the toolbox


As per the instructions in

$ sudo apt-key adv --keyserver hkp:// --recv-keys 931FF8E79F0876134EDDBDCCA87FF9DF48BF1C90
$ echo deb stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list
$ sudo apt update
$ sudo apt install spotify-client

# There was a problem with scaling, spotify don’t honor the gnome scaling factor

$ sudo emacs /usr/share/applications/spotify.desktop

# Exec=spotify --force-device-scale-factor=2.0 %U


I’m really happy with the new machine, it can handle a lot of load and the setup was surprisingly easy. If they fix my airpods and improve the hidpi and external monitor support I think this will be the year of linux on the laptops.