會用 ThinkPad 筆電的人,可能有不少人是衝著那個小紅點 (Trackpoint) 而作的選擇吧。
不但如此,使用桌上型電腦時,還會花高價,新台幣要三千左右,去買個外接的 USB 鍵盤+小紅點來用。本人就是如此,當年IBM還未這產品時,我也是在那抗議的其中之一。不過,我習慣使用 Linux,並沒有這產品的驅動程式。其實也沒差啦,還是可以正常使用。只是最近,覺得那個小紅點推得實在很辛苦,造成腕部的傷害,痛得無法打羽球。
在Linux的滑鼠設定中,可以設定加速和閾值,雖然稍有改善,但腕部還是很痛苦,久久沒有改善。
經過努力的搜尋,終於找到可以透過 sysfs 設定 sensitivity。不過,只有Thinkpad筆電才可以,因為它是在i8042的目錄下,那是透過 PS/2 界面的裝置。
原想,自己也可以 HACK 一個 USB 的吧。沒想到,再努力搜尋一下,已有人做了,實在太棒了,有現成的可用。
原來要修改 kernel,但太麻煩了,改進的作法如以下所述。
設定好之後,哇! 輕輕一推小紅點,cursor 跑得像飛的一樣,真是太感動了。
數值越大,推起來越輕鬆,原來的數值是 0,難怪我推得那麼辛苦。
接下來,要開機自動設定,請自行參閱其它文件了。
2013-05-18 補記
應該是用下面這個比較簡單,不用去動到 kernel。
https://github.com/bseibold/tpkbdctl
參考網址:
http://linux-thinkpad.10952.n7.nabble.com/Changing-sensitivity-ThinkPad-USB-Keyboard-with-TrackPoint-td18067.html
使用 python 寫的,在 MAC OS 也可以用,太棒了。
=====================
2013-08-13
可以使用 Python 直接控制
首先要 emerge pyusb
然後透過下列指令找到裝置,確定 idVendor=0x17ef, idProduct=0x6009 符合,最末一碼為 0 是鍵盤,1 是trackpoint。
# ls /sys/bus/usb/drivers/usbhid/1-1.5:1.1
在此目錄下會有一個檔名為 0003:17EF:6009.0004
執行下列指令改變 sensitivity
# echo 1-1.5:1.1 > /sys/bus/usb/drivers/usbhid/unbind
# python trackpoint-script.py
# echo 1-1.5:1.1 > /sys/bus/usb/drivers/usbhid/bind
trackpoint-script.py 內容如下
#pyusb imports
import usb.core
import usb.util
data = [0x4, 0x6a, 0x3, 0xfc, 0x38]
dev = usb.core.find(idVendor=0x17ef, idProduct=0x6009)
dev.ctrl_transfer(0x21, 0x9, 0x304, 0x1, data)
另外,下面的一些資料,可以做為進一步的參考。
Just for anyone not immediately recognizing the usb_control_msg()
parameters:
0x21 == USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE
0x9 == HID_REQ_SET_REPORT (assuming the interface class is HID)
0x304 == report_type + 1 << 8 | report_id
0x1 == interface number
parameters:
0x21 == USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE
0x9 == HID_REQ_SET_REPORT (assuming the interface class is HID)
0x304 == report_type + 1 << 8 | report_id
0x1 == interface number
沒有留言:
張貼留言