在 Xfce 中打开/关闭触摸板的命令

在 Xfce 中打开/关闭触摸板的命令

我发现了类似的问题:

如何设置键盘快捷键来打开/关闭(例如触控板)?

如何在 linux(True 或 False)bash 命令上设置切换?

但这些是基于 gnome 的,他们的解决方案使用gsettings命令,这些命令在 Xfce 中不起作用(如org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled)。

我在 Xfce 中使用的命令是synclient touchpadoff=1synclient touchpadoff=0

如何在命令中调整那些像开/关切换一样操作的命令?

答案1

来源:https://www.commandlinefu.com/commands/view/19659/toggle-the-touchpad-on-or-off

将命令放入脚本中:

#!/bin/bash

tp=$(synclient -l | grep TouchpadOff | awk '{ print $3 }') && tp=$((tp==0)) && synclient TouchpadOff=$tp

另一个可以使用的命令是

synclient TouchpadOff=$(synclient -l | grep -q 'TouchpadOff.*1'; echo $?)

使该脚本可执行。创建运行脚本的快捷方式。


更新:由于该synclient方法可能不适用于较新的系统:

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.toggle_touchpad

if [ ! -e $TOGGLE ]; then
    touch $TOGGLE
    xinput disable 14
    notify-send -u low -i mouse --icon=/usr/share/icons/HighContrast/256x256/status/touchpad-disabled.png "Trackpad disabled"
else
    rm $TOGGLE
    xinput enable 14
    notify-send -u low -i mouse --icon=/usr/share/icons/HighContrast/256x256/devices/input-touchpad.png "Trackpad enabled"
fi

上述命令中14是一个要标识的变量xinput list

~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Sony Vaio Jogdial                         id=8    [slave  pointer  (2)]
⎜   ↳ BM30X mouse                               id=12   [slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS GlidePoint                  id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Sony Vaio Keys                            id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=9    [slave  keyboard (3)]
    ↳ Power Button                              id=10   [slave  keyboard (3)]
    ↳ USB 2.0 Camera: USB Camera                id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]

要识别该列表中的设备名称,请查看“鼠标和触摸板”设置

在此输入图像描述

该脚本还显示带有图标的通知以及消息。

来源这里,这里, 还这里

答案2

我正在运行 Xubuntu 21.10 (xfce)。 xinput 方法不起作用,因为 synclient/synaptics 不同步并且仍在运行。

我没有尝试使用 synclient 解决方案(该解决方案将来可能行不通),而是使用了腰带和吊带:

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.toggle_touchpad

if [ ! -e $TOGGLE ]; then
    touch $TOGGLE
    synclient touchpadoff=1
    xinput disable 13
    notify-send -u low -i mouse --icon=/usr/share/icons/HighContrast/256x256/status/touchpad-disabled.png "Trackpad disabled"
else
    rm $TOGGLE
    xinput enable 13
    synclient touchpadoff=0
    notify-send -u low -i mouse --icon=/usr/share/icons/HighContrast/256x256/devices/input-touchpad.png "Trackpad enabled"
fi

相关内容