启用/禁用触摸板

我设法在我的asus ux501 vw上安装了Ubuntu 16.04,但是我的一些快捷方式无效。 我不是要修复它们,而只是一个:允许我启用或禁用触摸板的快捷方式,因此我可以编写长文档来处理触摸板。

我试图在谷歌上找到它但我一无所获。

有人可以解释一下如何解决这个问题吗? 谢谢 !

我从negusp的回答中创建了这个bash脚本。 它找到并切换TouchPad设备。 您可以在系统设置中配置自定义快捷方式。

#!/bin/bash read TPdevice <<< $( xinput | sed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p' ) state=$( xinput list-props "$TPdevice" | grep "Device Enabled" | grep -o "[01]$" ) if [ "$state" -eq '1' ];then xinput --disable "$TPdevice" && notify-send -i emblem-nowrite "Touchpad" "Disabled" else xinput --enable "$TPdevice" && notify-send -i input-touchpad "Touchpad" "Enabled" fi 

我正在设置Ctrl + Shift + F9来切换触控板启用和禁用,如下所示:

在此处输入图像描述

您需要快捷方式,但您可以轻松地在桌面上放置2个脚本并执行它们。

首先,去终端。 输入xinput 。 输出示例:

 ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics 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)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Sleep Button id=9 [slave keyboard (3)] ↳ Laptop_Integrated_Webcam_1.3M id=10 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)] ↳ Dell WMI hotkeys 

找到触摸板。 在此示例中,触摸板列为id = 12

用这个创建第一个脚本:

 #!/bin/bash xinput enable 12 

保存并将其命名为touchpadenable.sh ,并在终端中将其标记为可执行文件:

chmod +x touchpadenable.sh

再做同样的事情,但将文件重命名为touchpaddisable.sh (或其他),而不是

 xinput enable 12 

使用该命令

 xinput disable 12 

保存,标记为可执行文件,您应该能够从桌面运行脚本。 注意:您可能必须右键单击脚本,单击属性并允许其执行。

你必须像negusp的回答一样,首先检查你的触摸设备,并会显示如下内容:

 〜$ xinput
 ⎡虚拟核心指针id = 2 [主指针(3)]
 ⎜⎜虚拟核心XTEST指针id = 4 [从指针(2)]
 ⎜⎜PixArtDell MS116 USB光学鼠标id = 10 [从指针(2)]
 ⎜⎜SynPS/ 2 Synaptics TouchPad id = 14 [从指针(2)]
 ⎜⎜DLLC6B2:00 06CB:75BF触摸板id = 12 [从指针(2)]
 ⎣虚拟核心键盘id = 3 [主键盘(2)]
     ↳虚拟核心XTEST键盘id = 5 [从键盘(3)]
     ↳电源按钮id = 6 [从属键盘(3)]
     ↳VideoBus id = 7 [slave keyboard(3)]
     ↳电源按钮id = 8 [从属键盘(3)]
     ↳睡眠按钮id = 9 [从属键盘(3)]
     ↳Inte​​grated_Webcam_HDid = 11 [奴隶键盘(3)]
     ↳AT Translated Set 2键盘id = 13 [从键盘(3)]
     ↳戴尔WMI热键id = 15 [从键盘(3)]
     ↳戴尔无线热键id = 16 [从键盘(3)]

在我的情况下是id = 12的设备,现在在你名为“bin”的文件夹下的Desktop文件夹中创建名为“toggle-touch”的bash脚本,将是“〜/ Desktop / bin”并复制下一个代码,检查设备变量指向我的触摸id = 12,用你的情况修复它:

 #!/bin/bash device=12 state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"` if [ $state == '1' ];then xinput --disable $device else xinput --enable $device fi 

设置为此脚本执行权限:

 chmod 775 /Desktop/bin/toggle-touch 

最后,您可以将此路径添加到主文件夹中的“.bashrc”,只需将此行添加到文件末尾:

 PATH=$PATH:~/Desktop/bin 

用以下内容更新路径:

 . .bashrc 

然后你可以从任何地方执行这个脚本,希望对你有所帮助。

离开我的脚本(或多或少与上面相同)。 开箱即用,无需事先查找设备ID。

 #!/bin/bash function query_device_id { xinput list | grep -i touchpad | sed 's/.*id=\([0-9]*\).*/\1/g' } let device_id=$(query_device_id) let state=$(xinput list-props $device_id | grep Enabled | awk '{print $4;}') let new_state=$((1 - $state)) xinput set-prop $device_id "Device Enabled" $new_state 

创建一个shell脚本并将代码粘贴到其中,并将其命名为touchPadDisable.sh

 #!/bin/bash temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1) xinput disable $temp 

创建另一个shell脚本并将代码粘贴到其中,并将其命名为touchPadEnable.sh

 #!/bin/bash temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1) xinput enable $temp 

第一个脚本将禁用触摸板,第二个脚本将启用触摸板。

您可以将此脚本添加到键盘中的自定义快捷方式。

在我的Ubuntu 18.04中, Almas Dusal的回答在我的代码的以下行中将’p’更改为TouchPad中的小写后才起作用:

 read TPdevice <<< $( xinput | sed -nre '/Touchpad/s/.*id=([0-9]*).*/\1/p' ) 

之后,触摸板被脚本成功禁用并启用,但未在鼠标和触摸板设置屏幕中反映出来。 我创建了以下新脚本,在更新设置视图时切换触摸板。

 #!/bin/bash state=$( gsettings get org.gnome.desktop.peripherals.touchpad send-events ) if [ "$state" = "'enabled'" ];then gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled' \ && notify-send -i touchpad-disabled-symbolic "Touchpad" "Disabled" else gsettings set org.gnome.desktop.peripherals.touchpad send-events 'enabled' \ && notify-send -i input-touchpad-symbolic "Touchpad" "Enabled" fi