Ubuntu
TrackPoint

Ubuntu17.10でtrackpointの速度を調整する

全開発者の5兆%がUbuntu on Thinkpadで開発していることと思いますが、そのうち4億%の開発者が、トラックポイントの速度の遅さに辟易してることと思います。
ちなみに自分はそんなに気にならなかったんだけど、変えてみたらクッソ遅く感じでもう元には戻れない感じです。

最近のLinuxは親切なので、当然GUIから速度をコントロールできるんですが、GUIからコントロールできません :innocent:
何言ってんだこいつ。

対象のひと

  • Ubuntu 17.10
  • Thinkpad (自分はT470Sでtrackpoint+touchpadなハードウェアです)

https://wiki.archlinux.jp/index.php/%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88#Sysfs_.E5.B1.9E.E6.80.A7
↑ここの説明よむ限り、touchpadの有無でパスが若干変わるらしいので注意

んなもんGUIからできるやろ

範囲を選択_042.png

たしかに↑の設定画面からある程度変更できるんですが、これ最大値が128くらいなんですよね。
実際のMAXが255なので、半分しか設定できないっていう。
「最速(ただし最速とはいってない)」みたいな。

やることその1:どのスピードがいいか決める

$ sudo -s
$ echo -n 180 > /sys/devices//platform/i8042/serio1/serio2/sensitivity
$ echo -n 150 > /sys/devices//platform/i8042/serio1/serio2/speed

この 180sensitivity に設定してるところが超大事。これで爆速。
ちなみに255まで設定できるけど、200の段階で結構自分にはきつかったので間とって180がまぁまぁいいかなというところ。
慣れてきたら255の高みを目指せるのかしらね。

この時点で「なんや!簡単やん!最高やん!」みたいに抜か喜びするほどUbuntuに辛酸なめさせられてないので、とりあえず再起動したらまぁ、設定消えて元の速度に戻りました:innocent:
せやろな:innocent::innocent::innocent:

とりあえずこれは値を決めるためのやつだと思えばいいです。

やることその2:永続化

$ sudo -s
$ echo 'KERNEL=="serio2", SUBSYSTEM=="serio", DRIVERS=="psmouse", ATTR{sensitivity}:="180", ATTR{speed}:="150"' > /etc/udev/rules.d/10-trackpoint.rules

180 150 のところは好きに数字変えればいいと思います。

ちなみにコレが何やってるのかはワイには分からんので聞かないでください:innocent:

やることその3:確認

$ udevadm test /sys/devices/platform/i8042/serio1
結果
calling: test
version 234
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          234
(略)
timestamp of '/etc/udev/rules.d' changed
Reading rules file: /etc/udev/rules.d/10-trackpoint.rules #<=追加したファイルが読み込まれてん
Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules
(略)
SUBSYSTEM=serio
USEC_INITIALIZED=856114110
run: 'kmod load serio:ty01pr00id00ex00'
Unload module index
Unloaded link configuration context.

細かいことはおいといて Reading rules file: /etc/udev/rules.d/10-trackpoint.rules みたいに追加した設定ファイルが読み込まれてることを確認します。

$ udevadm info --query all --attribute-walk --path /sys/devices/platform/i8042/serio1/serio2
結果
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/platform/i8042/serio1/serio2':
    KERNEL=="serio2"
    SUBSYSTEM=="serio"
    DRIVER=="psmouse"
    ATTR{bind_mode}=="auto"
(略)
    ATTR{resolution}=="200"
    ATTR{resync_time}=="0"
    ATTR{sensitivity}=="180" #<= 180!
    ATTR{skipback}=="0"
    ATTR{speed}=="150" #<= 150!
    ATTR{thresh}=="8"
(略)

なんかようわからんけど、sensitivityとspeedがちゃんと設定されてる風です。

やることその4:再起動

とりあえずここまでやって再起動してみて、トラックポイントの速度が早いままなら勝ち確です。おめでとうございます。

なお、これでだめだった場合は、私にはわからないです。ごめんなさい。

参考