启用/禁用触摸板

启用/禁用触摸板

我成功地在华硕 ux501 vw 上安装了 Ubuntu 16.04,但一些快捷方式不起作用。我并不想修复所有问题,只想修复一个:允许我启用或禁用触摸板的快捷方式,这样我就可以编写有关触摸板的长篇文档。

我尝试用谷歌搜索它但一无所获。

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

答案1

我从以下位置创建了这个 bash 脚本否定的答案。它查找并切换 TouchPad 设备。您可以在系统设置中为其配置自定义快捷方式。

#!/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

我正在设置Ctrl++来切换触摸板的启用和禁用ShiftF9如下所示:

在此处输入图片描述

更新:您可能需要使用命令使脚本可执行chmod +x 文件名或输入/bin/bash /文件路径到自定义快捷方式窗口的命令字段。

答案2

您想要快捷方式,但您可以轻松地将 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

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

答案3

你必须这样做否定的回答,首先检查你的触摸设备,会显示类似这样的内容:

~$ xinput
⎡ 虚拟核心指针id=2[主指针(3)]
⎜ ↳ 虚拟核心 XTEST 指针 id=4 [从属指针 (2)]
⎜ ↳ PixArt Dell 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)]
    ↳ 视频总线 id=7 [从属键盘 (3)]
    ↳ 电源按钮 id=8 [从属键盘 (3)]
    ↳ 睡眠按钮 id=9 [从属键盘 (3)]
    ↳ Integrated_Webcam_HD id=11 [从属键盘 (3)]
    ↳ AT 翻译设置 2 键盘 id=13 [从属键盘 (3)]
    ↳ Dell WMI 热键 id=15 [从属键盘 (3)]
    ↳ DELL 无线热键 id=16 [从属键盘 (3)]

在我的例子中,设备 id=12,现在在桌面文件夹“bin”下的文件夹内创建一个名为“toggle-touch”的 bash 脚本,即“~/Desktop/bin”,然后复制下面的代码,检查设备变量是否指向我的 touch 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

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

答案4

Ubuntu 22.04,你必须使用gsettings,对于 X11Wayland 窗口服务器,如下所示:

# disable the touchpad
gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled
# enable the touchpad
gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled
# enable the touchpad automatically if an external mouse is NOT plugged in, but
# disable it automatically if one is
gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled-on-external-mouse

# get the current setting
gsettings get org.gnome.desktop.peripherals.touchpad send-events

请参阅我的完整回答和更多详细信息:如何通过命令行启用/禁用 Ubuntu 22.04 中的触摸板/触控板

相关内容