トラックポイントが死ぬほど遅いのを何とかする
なにをどうやってもトラックポイントが遅いのでxorgのソースをいじってみました(どう考えてもいい方法ではないので、もっといい方法はありませんか?)。
前提
- ThinkPad X21
- Debian GNU/Linux 7
解決しない方法
xset m 1 4
マウスポインタが「遅いモード」から「速いモード」に切り替わるところの閾値を変更できる(図のthresholdのところ)。
それから「速いモード」の倍率(「遅いモード」の何倍の速さか)を変更できる(図のaccelerationのところ)。
しかし「遅いモード」のときの速さを変更できない(図のAのところ)。
変更したいのは「遅いモード」のときの速さである。
図.Debian GNU/LinuxのXのマウスの加速曲線の想像図
あんまり解決しない方法
# echo -n 200 > /sys/devices/platform/i8042/serio1/speed # echo -n 180 > /sys/devices/platform/i8042/serio1/sensitivity
解決する方法
xserver-xorg-input-evdevのソースをいじる
$ sudo apt-get build-dep xserver-xorg-input-evdev #ビルドに要るパッケージをインストールする $ apt-get source xserver-xorg-input-evdev #ソースをダウンロードする $ cd xserver-xorg-input-evdev-2.7.0 $ vi src/evdev.c #ソースを編集する。編集内容は下記のソース差分を参照 $ dpkg-buildpackage -us -uc #パッケージをビルドする $ sudo dpkg -i ../xserver-xorg-input-evdev_2.7.0-1_i386.deb #パッケージをインストールする $ sudo echo xserver-xorg-input-evdev hold | dpkg --set-selections #パッケージをholdする(オプション)
ソースの差分
--- a/src/evdev.c +++ b/src/evdev.c @@ -710,9 +710,9 @@ return; pEvdev->rel_queued = 1; - pEvdev->delta[ev->code] += value; + pEvdev->delta[ev->code] += value * 3; map = pEvdev->axis_map[ev->code]; - valuator_mask_set(pEvdev->vals, map, value); + valuator_mask_set(pEvdev->vals, map, value * 3); break; } }