Arch linux for Thinkpad T440

New laptop, new arch install. With a few issues.

Clickpad

I had a lot of trouble setting up the clickpad, especially when it comes to click+drag. I'm using i3 as my window manager and resizing an application in floating mode requires right click + drag. To get it working:

# Example xorg.conf.d snippet that assigns the touchpad driver
# to all touchpads. See xorg.conf.d(5) for more information on
# InputClass.
# DO NOT EDIT THIS FILE, your distribution will likely overwrite
# it when updating. Copy (and rename) this file into
# /etc/X11/xorg.conf.d first.
# Additional options may be added in the form of
#   Option "OptionName" "value"
#
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
        MatchDevicePath "/dev/input/event*"
EndSection

Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

# This option enables the bottom right corner to be a right button on clickpads
# and the right and middle top areas to be right / middle buttons on clickpads
# with a top button area.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        ####### !!!!!!! ########
        # The following line is the important one. It defines
        # the areas for the right and middle buttons
        Option "SoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%"
EndSection

This works, but I couldn't get secondary soft buttons to work reliably, so they were removed. More doc on the arch wiki.

Brightness

By default, the keys to adjust brightness don't work. I added the functionality within the i3 config and with xbacklight.

bindsym XF86BrightnessDown exec xbacklight -dec 10
bindsym XF86BrightnessUp exec xbacklight -inc 10

To find the correct key name: Use xev (xorg-xev), and then press the keys, there is a line with keysym 0x1008ff02 XF86MonBrightnessUp.

Wifi dead

I pressed the key to disable the wifi, which worked, but I couldn't turn it on again :( The solution is to install (while wifi is still up) rfkill and then: rfkill unblock all. This is also how to be in "airplane mode" since this will shut down all wifi and bluetooth interfaces.

Input methods (bépo and chinese)

First, setup xorg to use two keyboard layouts: the standard us one (the default one from the laptop), and a french bépo layout. This is done in the file /etc/X11/xorg.conf.d/10-keyboard.conf with the following content:

Section "InputClass"
	Identifier "system-keyboard"
	MatchIsKeyboard "on"
	Option "XkbLayout" "us,fr"
	Option "XkbVariant" ",bepo"
	Option "XkbOptions" "grp:shift_caps_toggle"
EndSection

This will setup the two layout, and pressing Shift+CapsLock will switch between the two.

Then, for chinese: install ibus sudo pacman -S ibus ibus-libpinyin. Configure (and start it) with ibus-setup. Don't forget to tick the option "Use system keyboard layout". Since in bépo layout, Shift+Space produces an unbreakable space, one need to add two modifiers to cycle through the input methods: <Ctrl>+<Shift>+space and <Ctrl>+<Shift>+nobreakspace.

Finally, add the following to the file ~/.xinitrc

export GTK_IM_MODULE=ibus
export QS_IM_MODULE=ibus
export XMODIFIERS@im=ibus

ibus-daemon -dr

Sound and mic

The key to mute the audio works, but not the volume control. So install from aur pulseaudio-ctl and then in the i3 config:

bindsym XF86AudioLowerVolume exec pulseaudio-ctl down # 5%
bindsym XF86AudioRaiseVolume exec pulseaudio-ctl up
bindsym XF86AudioMicMute exec pulseaudio-ctl mute-input #toggle

Webcam

works out of the box. Use guvcview to try it (cool nice little program btw).

Bluetooth

Enable and power up the card (sometimes it's down): systemctl enable bluetooth.service && hciconfig hci0 up. To keep the device active after a reboot: add the following line in /etc/udev/rules.d/10-local.rules:

# Set bluetooth power up
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"

All info are on the arch wiki.

Conclusion

A few more custom things went in my i3 config. Overall, it was a-okay to put arch on this T440, the major pain being the clickpad. The nice thing here is I have very good control over practically everything here, and it's fairly easy to extend or customize according to my needs.