Lenovo Carbon X1 Gen 7 + Arch Linux
Table of Contents
1. Introduction
In late 2019 I got a new thinkpad. In that post I wrote about installing Manjaro linux. In retrospect I think it went just ok - I had some pain with the architect installer and some key system features weren't working right. After that I tried Ubuntu and then Fedora. They worked well enough but I wasn't totally satisfied.
The other day I was inspired to install Arch. I downloaded the iso,
ran dd
, and rebooted. Once the boot media loaded I ran archinstall -
a new addition to arch that does a basic installation
automatically. archinstall
ran without problems, and overall was
easier than going through the Manjaro Architect installer. I didn't
install a profile so I was left with a barebones system.
In general you should follow advice from the Arch Wiki, not from blog posts like this. Here's a good place to start:
https://wiki.archlinux.org/title/Lenovo_ThinkPad_X1_Carbon_(Gen_7)
2. Setup
2.1. Bios
Change the "Sleep State" to "Windows". I've had it on "Linux" for the last year and have had problems with waking. This fixes it.
2.2. Linux Console
https://wiki.archlinux.org/title/Linux_console#Persistent_configuration
The text in the TTY was tiny after the installation. Here's how I increased the font size:
pacman -S terminus-font
- Update /etc/vconsole.conf
2.3. SMBus Errors
After booting I was getting errors in the console like i801_smbus
timeout
. To fix this I blacklisted the i2c_i801
kernel module.
2.4. i3 WM
Here is how I setup my i3 environment. I'm definitely missing quite a few things, so check the arch wiki when in doubt.
i3 config: https://dotfilehub.com/knoebber/i3
2.4.1. pacman -S
xorg-server i3-gaps dmenu i3status lightdm lightdm-gtk-greeter pulseaudio pulseaudio-alsa firefox gnome-terminal
feh
set a background picturenm-applet
configure network from traypasystray
configure audio volume and output from trayscrot
screenshot tool
2.4.2. X Config
- Initiaize X: ~/.xinitrc
- Increase DPI: ~/.Xresources
- Set a background in lightdm: /etc/lightdm/lightdm-gtk-greeter.conf
2.4.3. Scripts
Scripts I wrote that I bind in my i3 config. I store these
locally in ~/bin/
(added to $PATH
in my profile).
- Bind toggle-display to the display media key (
XF86Display
). It switches my display to an external monitor if it's plugged in, or back to my laptop screen. - Bind screenshot to the PrtSc key (
code: 107
). Saves a screenshot to~/Pictures/screenshots
.
3. Conclusion
Everything is working better than expected. Webcam, microphone and media keys work. I've been enjoying the simplicity and documentation of Arch. Setting it up has been fun and problems feel solvable. Hopefully my distrohopping is over for now!