716 words
4 minutes
I Built A Custom ThinkPad!
2026-09-12

I found an X230 untested going for $85 dollars so I had to try out this mod. Main reason was that I wanted DirectX 11 support in order to run a couple lightweight games that weren’t compatible with the i5-2520M in the X220.

Basically, I took the keyboard, display assembly, 9-cell battery, and some chassis parts from the X220 and swapped them into the X230. It was a pretty time consuming process but I think it turned out pretty well.

alt text

Buying this machine also gave me an excuse to purchase a bunch of extra parts, such as a WiFi 6E card, an mSATA SSD, and a USB 3.0 ExpressCard.

alt text

The entire process, from assembling the machine to installing Arch Linux and Windows 10 took about two days. I spent the first day putting the machine together, and then the next installing Arch & Windows 10.

In terms of some of the other modifications I did, I also flashed the EC chip with the battery and keyboard patches, so both parts from the X220 work almost perfectly here. For the BIOS I’m using 1vyrain.

alt text

Unfortunately the palm rest of my old X220 cracked underneath the track pad and a tiny piece of the palm rest came out, so I had no choice but to sand down and modify the tabs. It hurt my soul modifying the keyboard like that, but it fits with the X230 palm rest so all is good for now.

alt text

Before the X220 palm rest cracked, I did install it on the X230 and it fit fine, though the top right corner of the palm rest stuck out so it doesn’t sit flush with the rest of the chassis. Not a big deal but something worth mentioning if that’s something you want to try for yourself.

I also removed the old Bluetooth module and took out the webcam. I bought a WiFi 6E card that has Bluetooth so the old module was useless. I don’t use the webcam either so it’s better gone than not.

alt text

As for whether this mod was worth it or not, honestly I’m not sure. For general computing (browsing the web, watching videos, taking notes in Obsidian), I have yet to feel much of a difference between the X220 and X230. The only somewhat noticeable difference so far is just the DirectX 11 support with 3rd-Gen Intel, and the faster graphics, but that’s about it. I guess it’s also nice to have all USB 3.0 ports around the machine but I never really found myself needing the USB ports on the X220 to begin with. Again, it’s nice to have, but it won’t change my workflow.

I basically did all this work for a marginally better CPU. Would have been great if it was a drop-in upgrade, though not much you can do for a machine that has the CPU soldered down.

It was definitely an interesting experience, but if you just want to type on the classic keyboard it’s honestly fine to just stick with the X220 as is.

As for me, even if I question it’s general worth, I’m very proud of and love this machine. It’s so much nicer to carry this around over my M1 Pro MacBook Pro simply due to how the keyboard feels over the MacBook. I type a lot of scripts for my YouTube channel, and do some light programming once in a while, so having a nice keyboard is a must.

The X220 keyboard is just simply better; not only is there a significant amount of key travel, there are also keys that I use regularly that are missing on the MacBook, namely Home, End, Insert, Delete, Page Up and Page Down. It frustrates me incredibly not having these keys on the MacBook, and typing on the MacBook gives a very uncomfortable, hollow sounding press. It’s hard to explain, but point being, it’s just not desirable for any sort of typing work for me, and the X225 here fills the gap perfectly.

The M1 Pro is way faster for sure, and I use that to edit my videos and do creative work, but for everything else, nothing beats the experience I can have with this machine, especially because of that keyboard.

alt text

I’ll be daily driving this machine until I can’t anymore, so I hope it lasts me a long time.

I Built A Custom ThinkPad!
https://biriamu.com/posts/thinkpad-x225/
Author
billiam
Published at
2026-09-12
License
CC BY-NC-SA 4.0