5ヶ月ほど ThinkPad T460s を Ubuntu(Xubuntu) で使ってます。
ちょっと前に さよならMac | めがねをかけるんだ という ThinkPad をdisった記事が話題になりましたが、自分はあんまり不満はありません。
ノートPCでLinuxを使う時の鬼門だった無線LANやサスペンドもまったく問題ありません。
当然トラックパッドは無効にしています。
唯一の不満がこのトラックパッド無効化です。
トラックパッドを無効にしようとBIOSで無効に設定しても無効になりません。
しょうがないので、Xubuntu の設定の「マウスとタッチパッド」でタッチパッドの設定を無効化します。
これでトラックパッドが無効になってめでたしめでたし。
…と思ったのですが、しばらく使ってると、時折トラックポイントのボタンをクリックしても効かないことがあります。
どうやらトラックパッドに触れているとボタンのクリックイベントを取りこぼすようでした。
トラックパッドを無効にしていたので、それが原因だとなかなか気がつきませんでした。
トラックパッドに二本以上の指が触れているとかなりの確率でボタンのクリックイベントを取りこぼしてしまいます。
どうやら psmouse ドライバのインストール時に proto=bare を指定するとトラックパッドを完全に無効化できるようです。
というより proto=bare ではトラックパッドを扱えないというだけな気がします。
# modprobe -r psmouse
# modprobe psmouse proto=bare
これでトラックパッドに触れていてもボタンクリックを取りこぼすことはなくなりました。
…が、もうひとつ問題が。
proto=bare ではトラックポイントの感度と速度の調整ができません。
proto=bare を指定しない時は、次のようにして感度と速度を調整できました。
# echo 200 > /sys/devices/platform/i8042/serio*/serio*/sensitivity
# echo 200 > /sys/devices/platform/i8042/serio*/serio*/speed
proto=bare で psmouse をインストールした時は、この sensitivity, speed ファイル自体ありません。
色々試行錯誤したところ、proto=bare をつけずに psmouse をインストールして、感度と速度を調整した後に proto=bare をつけて psmouse を再インストールすると感度と速度が保持されたままになることがわかりました。
とりあえず、簡単なシェルスクリプトを作って、電源ON時やサスペンドからの復帰時に走らせてます。
DIR=/sys/devices/platform/i8042
SPEED=200
SENSITIVITY=200
sub() {
(echo $1 > $2) &
pid=$!
(sleep 1; kill $pid) &
pid2=$!
wait $pid
kill $pid2
}
modprobe -r psmouse
modprobe psmouse proto=any
while :; do
sleep 0.3
speed=$DIR/serio*/serio*/speed
test -f $speed || continue
sens=$(dirname $speed)/sensitivity
test -f $sens || continue
sub $SPEED $speed
test "$(cat $speed)" -eq $SPEED || continue
sub $SENSITIVITY $sens
test "$(cat $sens)" -eq $SENSITIVITY || continue
break
done
modprobe -r psmouse
modprobe psmouse proto=bare