启用/禁用触摸板

Rei*_*Rei 19 touchpad shortcut-keys asus

我设法在我的 asus ux501 vw 上安装了 Ubuntu 16.04,但我的一些快捷方式不起作用。我不打算修复所有这些问题,而只想修复一个:允许我启用或禁用触摸板的快捷方式,因此我可以使用触摸板编写长文档。

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

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

Alm*_*sal 31

我根据negusp的回答创建了这个 bash 脚本。它查找并切换触摸板设备。您可以在系统设置中为其配置自定义快捷方式。

#!/bin/bash

read TPdevice <<< $( xinput | sed -nre '/TouchPad|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
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

更新:您可能需要使用命令chmod +x filename或在自定义快捷方式窗口的命令字段中输入/bin/bash /filepath使脚本可执行。

  • 获得错误行 6 后,Ubuntu 17.10 脚本中的一个小更正:[:: 整数表达式预期无法找到设备将触摸板更改为触摸板 (3认同)
  • 很少需要链接 `grep` 和 `sed`。您可以轻松地将两者合并为 `sed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'`。 (2认同)

neg*_*usp 15

您想要快捷方式,但您可以轻松地将 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 
Run Code Online (Sandbox Code Playgroud)

找到触摸板。在这个例子中,触摸板被列为id=12

用这个创建第一个脚本:

#!/bin/bash
xinput enable 12
Run Code Online (Sandbox Code Playgroud)

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

chmod +x touchpadenable.sh

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

xinput enable 12
Run Code Online (Sandbox Code Playgroud)

使用命令

xinput disable 12
Run Code Online (Sandbox Code Playgroud)

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


her*_*slm 9

您必须像negusp的回答那样做,首先检查您的触摸设备,然后会显示如下内容:

~$ xinput
? 虚拟核心指针id=2【主指针(3)】
? ? 虚拟核心XTEST指针id=4【从指针(2)】
? ? PixArt Dell MS116 USB 光电鼠标 id=10 [从指针 (2)]
? ? SynPS/2 Synaptics 触摸板 id=14 [从指针 (2)]
? ? DLLC6B2:00 06CB:75BF 触摸板 id=12 [从指针 (2)]
? 虚拟核心键盘id=3【主键盘(2)】
    ? 虚拟核心XTEST键盘id=5【从键盘(3)】
    ? 电源按钮 id=6 [从属键盘 (3)]
    ? Video Bus id=7 [从键盘(3)]
    ? 电源按钮 id=8 [从属键盘 (3)]
    ? 睡眠按钮 id=9 [从属键盘 (3)]
    ? Integrated_Webcam_HD id=11 [从键盘(3)]
    ? AT Translated Set 2 keyboard id=13 [从键盘(3)]
    ? 戴尔 WMI 热键 id=15 [从属键盘 (3)]
    ? DELL 无线热键 id=16 [从属键盘 (3)]

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

~$ xinput
? Virtual core pointer                      id=2    [master pointer  (3)]
?   ? Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
?   ? PixArt Dell MS116 USB Optical Mouse       id=10   [slave  pointer  (2)]
?   ? SynPS/2 Synaptics TouchPad                id=14   [slave  pointer  (2)]
?   ? DLLC6B2:00 06CB:75BF 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)]
    ? Integrated_Webcam_HD                      id=11   [slave  keyboard (3)]
    ? AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ? Dell WMI hotkeys                          id=15   [slave  keyboard (3)]
    ? DELL Wireless hotkeys                     id=16   [slave  keyboard (3)]

设置为此脚本执行权限:

chmod 775 /Desktop/bin/toggle-touch
Run Code Online (Sandbox Code Playgroud)

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

PATH=$PATH:~/Desktop/bin
Run Code Online (Sandbox Code Playgroud)

更新路径:

. .bashrc
Run Code Online (Sandbox Code Playgroud)

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