我愿意不是有function key
/fn为此 :( 。
有什么想法吗?也许有设置或命令?
其他科目没有帮助:
gpointing-device-settings
(自动禁用设置取消勾选);kde-config-touchpad
(不可单独安装);- 不知道如何使用
udevd
。
答案1
解决方案-自动
感谢 Esamo 和他的工作。
要添加用于在启动时连接鼠标的自动触发器:
创建文件:/etc/udev/rules.d/10-local.rules
填写以下内容:(将$USER替换为您的用户名)
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh false"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh true"
例子:
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh false"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh true"
接下来将脚本放在你想要的任何位置。我将其放在 ~/scripts 中
触摸板切换器
#!/bin/sh
enabled=$1
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);
if $enabled
then
xinput set-prop $touchpad_id "Device Enabled" 1 | notify-send "The touchpad is now enabled." ""
else
xinput set-prop $touchpad_id "Device Enabled" 0 | notify-send "Disabling the touchpad..." ""
fi
记得添加执行权限:
chmod +x touchpad_switcher.sh
现在只需重新启动!(仅仅重新启动 udev 似乎不起作用……)
其他一些有用的东西:
有关的一些信息udev 规则
答案2
解决方案 - 不是自动的
下面的脚本在执行时将如果连接了鼠标,请禁用触摸板并显示通知。
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);
if xinput | grep -i "mouse" | grep -i "pointer"
then xinput set-prop $touchpad_id "Device Enabled" 0 |
notify-send "Disabling the touchpad..." ""
else xinput set-prop $touchpad_id "Device Enabled" 1 |
notify-send "The touchpad is now enabled." ""
fi
还添加了一个相反的情况,尽管在我的情况下,触摸板无论如何都会在鼠标断开连接时启用。我已将脚本保存在一个文件中,并在Unity Launcher
Terminal
每次插入鼠标后从部分运行它。
先进的
还有老鼠吗?
mouse
通过扩展片段中的值"mouse"
、根据xinput
设备列表命名来确定哪些应该停用触摸板。受惊的老鼠从一边跑到另一边?
我不得不为鼠标运行额外的命令 - 减少,
cursor acceleration
因为它在每个连接上都被疯狂地设置为 10。实际上过了一段时间,我制作了自动检测脚本(它获取鼠标 ID 及其速度属性;不知道性能如何cut
)...touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2); mouse_id=$(xinput | grep -i "mouse" | grep -i 'pointer' | cut -f2 | cut -d '=' -f2); mouse_prop=$(xinput list-props $mouse_id | grep -i "velocity" | cut -f2 | cut -d '(' -f2 | cut -d ')' -f1 ); if xinput | grep -i "mouse" | grep -i "pointer" then xinput set-prop $touchpad_id "Device Enabled" 0 | xinput set-prop $mouse_id $mouse_prop 3 | notify-send "Disabling the touchpad..." "" else xinput set-prop $touchpad_id "Device Enabled" 1 | notify-send "The touchpad is now enabled." "" fi
今天学到了很多东西:D。
有人是专业人士吗?
知道如何使其自动化将会很有用。
还好奇为什么鼠标配置没有保存(2.)。
答案3
@David Drozd 发布的内容对我不起作用Ubuntu 16.04。
似乎这个技巧xinput
在 中不起作用udev
。只synclient TouchpadOff=[0|1]
起作用。ACTION="remove"
单独使用时也不起作用。
我终于在添加时得到了ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'"
完整的解决方案/etc/udev/rules.d/10-local.rules
:使用以下行创建文件(将 $USER 替换为您的用户名)
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'", RUN+="/bin/sh -c '/usr/bin/synclient TouchpadOff=1' "