我发现了类似的问题:
和
如何在 linux(True 或 False)bash 命令上设置切换?
但这些是基于 gnome 的,他们的解决方案使用gsettings
命令,这些命令在 Xfce 中不起作用(如org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled
)。
我在 Xfce 中使用的命令是synclient touchpadoff=1
和synclient 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