trackpoint 以 evdev 驅動以 xinput config

無意間又進入 windows,才發現 linux 下的 trackpoint 速度是近不能用的狀態,虧我還能用這麼久。 找到 解法是移除 xserver-xorg-input-libinputxserver-xorg-input-evdev 即可 。 之後就能用 xinput 或 xorg.conf 調速度了。

在 windows 下可以直接用預附的工具調, 然後 重新開機 到 linux 下還是很快; 但如果是 關機再開機 就會變很慢了。

google 找類似的問題,多數太舊問題和解法都不對。 有找到一個 stack exchange 的問題,但沒人回答。 最後找到上面那串 reddit,仔細看才發現有解法。

一開始直接移除 xserver-xorg-input-libinput 後重啟 xserver systemctl restart lightdm , 結果鍵盤和滑鼠就沒反應了。 完全無法操作電腦,只好重開進 recovery mode, 發現文字介面下還能操作, 但 startx 進 gui 就不行了。 之後仔細看,發現我預設沒裝 input-evdev 這個 package, 難怪拔了 input-libinput 就沒反應。 就裝再重開就好了。

裝好 evdev 發現 xinput 可以多看到很多選項, 調低 Device Accel Constant Deceleration 可以加速, reddit 那個人調到 0.2,我調 0.3 就很快了,要適應一下。 其它還有模擬滾輪、中鍵,都有開。

evdev map-pages 裡有介紹 config 怎麼寫, 我就照著寫 ,然後丟到 /etc/X11/xorg.conf.d/systemctl restart lightdm 就卡住了。 不知道哪裡錯 orz 最後用 shell script 呼叫 xinput 解決。

xorg config 雷點

後來終於寫對 config 了, 原本是照 evdev map-page 裡寫, 發現最後一些中間有空格的屬性不知道怎麼調, 用 Option 設的選項都是 UpperCamelCase, 那些是中間有空格的。

Evdev Axis Calibration
        4 32-bit values, order min-x, max-x, min-y, max-y or 0 values to
        disable in-driver axis calibration.

Evdev Axis Inversion
        2 boolean values (8 bit, 0 or 1), order  X,  Y.  1  inverts  the
        axis.

這些是只能用 xinput 調的, 然後調速度的選項不在 evdev man-page, 在 xorg.conf 的 man-page。 有很多能調,像加速的曲線 AccelerationProfile 就有八九種。 主要我選了一個順手的曲線, 和 ConstantDeceleration 調減速倍率, 2 就是 1/2,所以調 0.3 就是近三倍。

然後一直錯的一個雷點是 config 裡 選項名和值都要用雙引號包起來。 總之 最後就用 xorg.conf 了 , shell script 就刪了。