原问题:
入手了一台 thinkpad,今天刚装 arch
按照各路前辈的做法 proto=bare 之后 trackpoint 是可以用了,touchpad 的边缘滚动、两指滚动都不能用;
去掉 proto=bare 之后,按照 wiki 配置就可以边缘滚动、两指滚动、两指模拟右键、三指模拟中键、手掌识别……但是 trackpoint 没反应
有办法让两者都可以(完美地)使用么?
(由于需要使用各种作图软件,中键点击拖拽和中键滚动同等重要,所以……)
2014-05-18 更新:
yaourt -S elantech-tp-dkms
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated Camera id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=14 [slave keyboard (3)]
(此AUR包上传于 2014-01-05)
最近编辑记录 cjxgm (2014-05-18 13:41:33)
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线
touchpad 和 trackpoint 有关系么?
「中键点击拖拽和中键滚动同等重要」+1
离线
什么型号的?我这里只需要两步
# pacman -S xf86-input-synaptics
新建文件
/etc/X11/xorg.conf.d/10-wheel.conf
内容为
Section "InputClass"
Identifier "Trackpoint Wheel Emulation"
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
MatchDevicePath "/dev/input/event*"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "Emulate3Buttons" "false"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection
离线
什么型号的?我这里只需要两步
# pacman -S xf86-input-synaptics
新建文件
/etc/X11/xorg.conf.d/10-wheel.conf
内容为
Section "InputClass" Identifier "Trackpoint Wheel Emulation" MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "Emulate3Buttons" "false" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" EndSection
这样子就没办法使用中键拖动了。
离线
touchpad 和 trackpoint 有关系么?
被内核识别为同一个输入设备
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线
什么型号的?我这里只需要两步
proto=bare 之前识别为 ETPS/2 Elantech Touchpad
proto=bare 之后识别为 PS/2 Generic Mouse
最近编辑记录 cjxgm (2013-08-31 13:06:34)
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线
这样子就没办法使用中键拖动了。
+1
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线
离线
百合仙子 说:touchpad 和 trackpoint 有关系么?
被内核识别为同一个输入设备
不是吧?我这里一直是分开的两个指针设备呀。
离线
>>> xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Integrated Camera id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)]
看 11 和 12,两个哦=w=
离线
>>> xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Integrated Camera id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)]
看 11 和 12,两个哦=w=
新机型合二为一了喵
现在都不是SynPS+TPPS了,是 elantech 的什么输入设备
cjxgm@cjprods ~$ dmesg | grep elantech
[ 6.902814] psmouse serio1: elantech: assuming hardware version 3 (with firmware version 0x350f02)
[ 6.913948] psmouse serio1: elantech: Synaptics capabilities query result 0xb9, 0x15, 0x0c.
cjxgm@cjprods ~$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated Camera id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)]
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线
新机型合二为一了喵
现在都不是SynPS+TPPS了,是 elantech 的什么输入设备cjxgm@cjprods ~$ dmesg | grep elantech [ 6.902814] psmouse serio1: elantech: assuming hardware version 3 (with firmware version 0x350f02) [ 6.913948] psmouse serio1: elantech: Synaptics capabilities query result 0xb9, 0x15, 0x0c. cjxgm@cjprods ~$ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ ETPS/2 Elantech Touchpad id=12 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Video Bus id=8 [slave keyboard (3)] ↳ Sleep Button id=9 [slave keyboard (3)] ↳ Integrated Camera id=10 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)]
晕,一直在退步啊……
离线
你是啥型号的机器啊..别跟我讲是E系列的。E的还是乖乖用win吧。
TP X201i
phoenix@Phoenix-X201i ~ % xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Lenovo ThinkPad USB Laser Mouse id=9 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=11 [slave keyboard (3)]
↳ Integrated Camera id=12 [slave keyboard (3)]
发现兼容性不好的硬件,建议到 https://bbs.archlinuxcn.org/viewtopic.php?id=1907 这里写一下。
离线
中键问题的解决方案:
目标:按下中键,1秒内移动就是拖拽,1秒后移动就是滚动。
研究了一个下午+晚上(尝试过 Xlib -> Xcb -> 完全屏蔽鼠标然后完全由我的程序处理 -> Xlib XInput 扩展 -> 最后才发现原来可以只处理中键),终于搞定了。程序托管在 GitHub 上:https://github.com/cjxgm/hiddle
原理:先用 xinput set-button-map 屏蔽鼠标中键,然后读取 /dev/input/mice 获取鼠标数据,处理后用 libxdo (xdotool)发送鼠标事件。
兼容性列表明天再写吧,今天太迟了喵……
最近编辑记录 cjxgm (2013-09-03 23:51:27)
Giumo Clanjor (哆啦比猫/兰威举)
Where there is a hacker, there is art. | Dogfooding myself. (C++ / Lua / Perl / Rust)
离线
中键问题的解决方案:
目标:按下中键,1秒内移动就是拖拽,1秒后移动就是滚动。
研究了一个下午+晚上(尝试过 Xlib -> Xcb -> 完全屏蔽鼠标然后完全由我的程序处理 -> Xlib XInput 扩展 -> 最后才发现原来可以只处理中键),终于搞定了。程序托管在 GitHub 上:https://github.com/cjxgm/hiddle
原理:先用 xinput set-button-map 屏蔽鼠标中键,然后读取 /dev/input/mice 获取鼠标数据,处理后用 libxdo (xdotool)发送鼠标事件。兼容性列表明天再写吧,今天太迟了喵……
貌似很好用的样子呢=w=
离线