Jan*_*ary 21 touchpad thinkpad trackpoint
Thinkpads(例如我使用的X230)有一个轨迹点和一个触摸板。打字时触摸板被禁用。
然而,当我使用轨迹点时,我也经常触摸触摸板,并产生我想避免的鼠标点击。有谁知道如何在使用轨迹点时禁用触摸板上的鼠标点击?
编辑:另外,有人可以解释一下打字时禁用触摸板的选项是如何工作的吗?幕后正在做什么?它是一个 xinput 配置命令,如果是,是哪个?
EDIT2:澄清;手动禁用触摸板(即使使用快捷方式)也不是这里的问题。这应该像选项“打字时禁用触摸板”一样工作,因为我交替使用触摸板和轨迹点(最常见的是,我使用触摸板进行滚动,使用轨迹点移动光标)。
ish*_*ish 10
此功能由syndaemon实用程序从xserver-xorg-input-synaptics包中执行。您可以设置诸如空闲时间、轮询频率等选项(请参阅运行时帮助):
用法:syndaemon [-i idle-time] [-m poll-delay] [-d] [-t] [-k]
-i 最后一次按键后等待的秒数
启用触摸板。(默认为 2.0 秒)
-m 等待下一次轮询的毫秒数。
(默认为 200 毫秒)
...
-t 仅禁用点击和滚动,而不是鼠标移动。
这里的源代码的syndaemon.c。
keyboard_activity(...)和main_loop(...)keyboard_activity使用XQueryKeyMap API 调用获取键盘的当前状态(每个键 1 位),然后与上次(旧)状态进行比较;如果它们不同,则返回 1main_loopkeyboard_activity每m毫秒轮询一次,并根据“上次活动时间”以及是否keyboard_activity返回 true 或 false,决定是否禁用或启用触摸板。dp_get_device函数说明了如何枚举 X 输入设备;你应该能够修改这个和keyboard_activity函数来检查任何跟踪点活动。该xinput工具会列出设备和 ID,例如“
虚拟核心指针id=2【主指针(3)】 ? ? 虚拟核心XTEST指针id=4【从指针(2)】 ? ? SynPS/2 Synaptics TouchPad id=11 [从指针 (2)] ? ? TPPS/2 IBM TrackPoint id=12【从指针(2)】
您可以通过XListInputDevices函数获取此(ID)
您可以使用xinput带有query-state开关和设备 ID的实用程序来检查您的编程是否正确,例如:
$ xinput 查询状态 12 2个班级: 按钮类 按钮[1]=向上 按钮[2]=向上 按钮[3]=向上 按钮[4]=向上 按钮[5]=向上 按钮[6]=向上 按钮[7]=向上 ValuatorClass 模式=Relative Proximity=In 估价员[0]=854 估价员[1]=867
xinput来源以获取更多提示要修改和重建这个包:
apt-get source...tools/syndaemon.csyndaemon通过注释掉118...和124...行来禁用现有补丁debian/patches/seriesdpkg-buildpackage -us -ucdeb 文件将位于父目录中。
要做的第一件事是知道您的触摸板 ID。因此,请按照以下步骤操作
首先打开终端并运行此命令
~$ xinput --list
Run Code Online (Sandbox Code Playgroud)
在这里我们得到这个 Touchpad id = <id Number>
之后打开键盘快捷键,然后使用键盘快捷键在两个命令下方添加此命令。
# Disable Touchpad:
xinput set-prop <id number> 'Device Enabled' 0
# Enable Touchpad:
xinput set-prop <id number> 'Device Enabled' 1
Run Code Online (Sandbox Code Playgroud)
