Thinkpad 的小紅點在 Linux 上似乎一直沒有完善圖形化介面的設定工具。若要設定的話,常得參考一些指令設定

驅動程式預設的速度、靈敏度都太低,推一陣子手指就累了,也無法按著中鍵移動小紅點來捲動視窗。不甚好用,稍做一些設定的筆記,作為未來參考。

在 GNU/Linux Debian/Ubuntu 上有數種機制可以更改小紅點設定,若是新手使用,大概會被 sysfs, udev, hal, DeviceKit, pm-utils, xorg.conf, xinput 等術語搞得一頭霧水。你若不想弄懂這些難解術語,也不想更改 xorg.conf,最快的作法是以 sudo 在虛擬終端機執行以下指令

#!/bin/sh
# 游標速度,可調整數值。大為快,小為幔
echo -n 120 > /sys/devices/platform/i8042/serio1/speed
# 靈敏度,最高應為 255
echo -n 250 > /sys/devices/platform/i8042/serio1/sensitivity
# 按小紅點為選取,1 為啟用,0 為關閉。
echo -n 0 > /sys/devices/platform/i8042/serio1/press_to_select

xinput list-props '"TPPS/2 IBM TrackPoint"'
xinput set-int-prop '"TPPS/2 IBM TrackPoint"' 'Evdev Wheel Emulation' 8 1
xinput set-int-prop '"TPPS/2 IBM TrackPoint"' 'Evdev Wheel Emulation Button' 8 2
xinput set-int-prop '"TPPS/2 IBM TrackPoint"' "Evdev Wheel Emulation X Axis" 8 6 7
xinput set-int-prop '"TPPS/2 IBM TrackPoint"' "Evdev Wheel Emulation Y Axis" 8 4 5
xinput set-int-prop '"TPPS/2 IBM TrackPoint"' "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput list-props '"TPPS/2 IBM TrackPoint"'

這些指令可以幫你把 TrackPoint 的速度、靈敏度調高,並驅動中鍵模擬滾輪功能。頭三行 echo 指令需以 root 權限執行,你可自行調整偏好的數值。後面幾行 xinput 指令,必須在 X 視窗下執行。(意即,你不能拿到 console 下面來跑)

這些指令每次重開機或休眠後都需重新執行一次。你若嫌麻煩,目前最簡易的設定機制應該是寫成 udev rules,作法以 root 執行指令如下

# cat > /etc/udev/rules.d/90-trackpoint.rules <<EOF
# SUBSYSTEM=="serio", DRIVERS=="psmouse", ATTR{press_to_select}="0", ATTR{sensitivity}="250", ATTR{speed}="120"
DEVPATH=="/devices/platform/i8042/serio1", ATTR{press_to_select}="0", ATTR{sensitivity}="250", ATTR{speed}="120"

ACTION!="add|change", GOTO="xorg_trackpoint_end"
KERNEL!="event*", GOTO="xorg_trackpoint_end"

ENV{ID_PATH}!="platform-i8042-serio-1", GOTO="xorg_trackpoint_end"

ENV{x11_options.EmulateWheel}="1"
ENV{x11_options.EmulateWheelButton}="2"
ENV{x11_options.XAxisMapping}="6 7"
ENV{x11_options.Emulate3Buttons}="0"

LABEL="xorg_trackpoint_end"
EOF

這段程式碼,參考 ThinkWiki 網站理論上,會在你開機以及重休眠模式啟動時,自動套用小紅點速度設定與模擬滾輪設定。

實際上,因為一個已知的 #549379 udev/kernel 問題,滑鼠的速度設定無法自動套用。暫時可以先用前段的 echo/sysfs 方式解決。

這是一篇 Tip.