So I got a Thinkpad

December 17, 2025 ThePragmaticProgrammer

Tags: ,

Estimated Reading Time: 5 min

A word of caution

If you do buy a thinkpad, used or otherwise, and it’s on this list make sure you update the thunderbolt firmware to version 20+ otherwise thunderbolt will just stop working after a certain amount of use and you’ll have to flash the chip manually. It’s caused by a silly bug where each event on the thunderbolt port is logged to the chip, so things like plugging in and uplugging, but that log never gets cleared so eventually the chip fills up and can’t do anything… oopsies.

You can do this on windows by just running the .exe Lenovo provides or on most linux distros with the following sequence of commands:

  1. sudo fwupdmgr refresh
  2. sudo fwupdmgr update

If you’re linux distro has an app store type thing then you can also get the updates via the firmware section of that.

The machine

About a week ago at the time of writing I was able to find a really good deal on a used Thinkpad T480, and given the RAM situation currently I jumped on that deal as soon as I could and here we are. As far as specs go it’s basically the best version of the T480 you can get before doing any mods (more on that later), with specs that are as follows:

  • CPU: Intel i7-8650U 4C/8T
  • 32Gb RAM
  • 1Tb ssd
  • NVIDIA MX150 GPU

If the RAM prices ever go down I will probably upgrade the RAM to 64Gb, but all in all that’s really good for ~$400!

First impressions

The good

Having never really used a Thinkpad I was pleasantly surprised by a few things, most notably (and importantly to me), the keyboard. The keyboard on this thing is really nice to use as far as laptop keyboards go since it’s fully mechanical! Obviously it’s not as good as a high-end or even midrange mechanical keyboard but compared to what I’ve used on other laptops it’s basically the best keyboard I’ve ever used. Being a laptop keyboard, it has a quite short key travel distance but if you’ve ever used something like kailh choc switches then you should feel right at home (sorry for the store site link, I don’t get anything if you buy from this, I just couldn’t find a whitepaper or anything like that on them).

Secondly, the screen. Having been spoiled by having 2k screens on my other laptop (also a 14” screen) and my desktop I didn’t think I would like the 14” 1080p screen of the Thinkpad, but it’s totally fine. Obviously it’s not the worlds best screen or anything, but at this size 1080p is perfectly usable and I honestly can’t tell a difference between this and my other laptop besides everything being a bit bigger on this one due to ppi density affecting the scaling. Also, I went to wipe some dust off the screen and discovered my model is also a touchscreen so that’s fun!

Thirdly, mouse buttons. I don’t have much to say about this but having physical mouse buttons is really nice and I was surprised by how much of a difference that made.

Finally, the efficiency. The efficiency of this thing after I setup tlp is pretty crazy. It makes my ridiculous dream basically a certainty with ridiculously low RAM usage most of the time.

idle using sub 400mb of RAM
relatively realistic load of 3 vim terminals and a w3m window using sub 600mb of RAM

Had I known all i needed to do to complete my quest was buy a Thinkpad, I would have done this a long time ago. In all seriousness, this is really impressive for having a full GUI running and I’m excited to see how this affects battery life.

For those curious, here is how I setup tlp in my nixos configuration for the Thinkpad.

  services.tlp = {
    enable = true;
    settings = {
      CPU_SCALING_GOVERNOR_ON_AC = "performance";
      CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
      CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
      CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
      CPU_MIN_PERF_ON_AC = 0;
      CPU_MAX_PERF_ON_AC = 100;
      CPU_MIN_PERF_ON_BAT = 0;
      CPU_MAX_PERF_ON_BAT = 20;
      START_CHARGE_THRESH_BAT0 = 40;
      STOP_CHARGE_THRESH_BAT0 = 100;
      START_CHARGE_THRESH_BAT1 = 40;
      STOP_CHARGE_THRESH_BAT1 = 100;
    };
  };

The bad

Unfortunately, like most things in life this is not an all sunshines and rainbows situation. For some reason I just could not get X (the display guy not the hell site) to work and after about 12 hours of struggle I gave up and installed sway, I was really hoping to xmonad on this machine but I’ve setup sway to work pretty much the same as my xmonad config so it’s not a huge deal but still sucks.

Another things that kind of sucks but I’m sure I can figure it out when I spend the time to is the fact that only one of the battery charges. I’m not sure if that’s a problem with the laptop, the battery, or my config but it’s a little annoying.

The ugly

I haven’t been using Thinkpads for a long time, in fact this is my first one, and I known people swear by it but I was really tripped up with the FN and ctrl buttons being swapped whenever I used someone elses’ Thinkpad. Thankfully switching them back to normal is as easy as a toggle in the BIOS… not that it really matters because I swap caps lock and ctrl anyways. Here’s how to do that in sway if you use it and want to save your pinky, just add this to your sway config file.

input "type:keyboard" {
	xkb_options ctrl:nocaps
}

I also wish the trackpoint (the little red thing in the middle of the keyboard you can use as a mouse) was one key over to either side so I could use it without having to take my fingers from the typing position. Since the physical mouse buttons are positioned right below your thumbs, it is nice to use the trackpoint in conjunction sometimes but that little annoyance is enough to make me just use the trackpad most times since the trackpoint is not as accurate (in my unskilled hands).

Conclusion

As is tradition, thank you for reading! Life stuff has stopped me from having time to write lately but I have winter break now so I’m hoping to do some aoc and make a post about that this month :) Also this turned more into a review type deal than I was planning but hopefully it’s still a fun little read. As I mentioned vaguely at the start, this machine is really open to modding and the community around it has made some pretty cool mods so I’m hoping to turn this into a “Pimp my Thinkpad” type series as I mod the machine which I’m hoping will be quite fun.