启用/禁用触摸板
我设法在我的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)] ↳Integrated_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