305 × 206 × 20 mm, 1.3 kg
This laptop replaced my Thinkpad x120e in February 2013, mostly because the AMD E-350 processor was too slow.
Everything seems to work. I replaced the disk with a 64 GB SSD, and the stock battery with the smaller and lighter 4-cell battery. In 2015 I upgraded to a Samsung 250 GB SSD. At the end of 2018 I replaced the battery.
Summer 2019 I got a x230 that is now my main computer. I still have the x220 and use it when I'm out of the country. Most of the information here also applies to the x230.
This seems to be fixed as of the 5.15 kernel.
Bug 93782 - [i9xx TV][BISECT] vblank wait timeout on crtc
FS#51703 - [linux] kernel error in drm_kms_helper, flip_done timed out
For more mind-boggling mode setting nonsense, see The Linux Kernel Has Been Forcing Different Behavior For Processes Starting With "X" (Phoronix)
My x220 came with a Realtek wifi card, but I've never had much luck with Realtek so I replaced it with an Intel card. The x220 bios has a whitelist for wireless cards, in an attempt to make you buy expensive Lenovo branded cards. Previous Thinkpads could have the whitelist disabled by a simple program, but this one requires a new bios, which is hard to install without running MS Windows. I ended up finding a cheap Intel card that worked so I haven't tried the modified bios.
The iwlwifi driver stopped working with 802.11n as of the 2.6.38 kernel. I use it with 802.11b/g, which seems to work. See for example iwconfig shows high Tx excessive retries, Wireless Issues (TX Retries, Speed, Disconnections), Extremely slow network with Intel "Ultimate N WiFi Link 5300" (iwlagn) after upgrade from Fedora 14, iwlwifi driver for Centrino Wireless-N 1000 slow and unusable after upgrade to CentOS 6.3, and iwlwifi 802.11n usability resolved.
Also I would avoid the Intel Advanced-N 6200 series. The firmware is buggy, causing frequent driver crashes. To recover, unload and reload the iwldvm and iwlwifi kernel modules. See Bug 90751 - microcode errors with Intel Advanced-N 6235.
If you run VirtualBox or similar, you'll want to enable VT-x in the bios. I think this is required for 64-bit guests. I'm told the option is sometimes hidden in the "Security" menu but I had no trouble finding it.
The volume controls seems to be handled by software, not hardware as in previous Thinkpads. This may be handled by some desktop packages. I run xbindkeys:
% cat ~/.xbindkeysrc "amixer -q -c 0 set Master 4- unmute" XF86AudioLowerVolume "amixer -q -c 0 set Master 4+ unmute" XF86AudioRaiseVolume "amixer -q -c 0 set Master toggle" XF86AudioMuteJim Rees