Answers:
在终端中运行以下命令:
xinput list
您将获得如下所示的输出:
⎡ 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=13 [slave keyboard (3)]
它显示所有已连接的输入设备。请注意,它们都有一个ID。由于12是我的触摸板的ID,因此运行以下命令将其禁用。
xinput set-prop 12 "Device Enabled" 0
在Ubuntu版本中,>12.04
您也可以直接通过禁用
xinput --disable 12
(并通过类似的命令启用)
检查此链接:如何在ubuntu 11.10中禁用触摸板
找到的答案确实很整洁:
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
之后,您将在通知区域中进行切换。
我唯一希望的是能够将开关键设置为Fn+ F8(这是键盘上的触摸板键开关...
atareao
,他可能在其PPA中托管了恶意软件
基于@Peng Wu给出的答案,我创建了一个可以使用的bash脚本。
#!/bin/bash
declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
xinput set-prop $ID "Device Enabled" 0
echo 'Touchpad has been disabled.'
您可以手动运行它,也可以在启动时运行它。然后,可以使脚本在引导时运行。
另一个切换触摸板的bash脚本:
#!/bin/bash
declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
xinput disable $ID
echo "Touchpad disabled."
else
xinput enable $ID
echo "Touchpad enabled."
fi
'Touchpad in mouse emulation mode\s*id\=[0-9]{1,2}'
Touchpad
不是TouchPad
。要使其不区分大小写,只需i
在您的grep选项中添加一个即可。
synclient TouchpadOff=$(synclient | ruby -ne 'puts ($_.match(/\\d+/)[0].to_i ^ 1) if /TouchpadOff/ =~ $_')
imwheel
以下方式解决了解决滚轮速度问题的问题:askubuntu.com /问题/ 844151 /启用-禁用触控板/ ...。另外我的答案搜索xinput
两个TouchPad
和 Touchpad
,因为有时在P是或不是资本,取决于系统,所以如果你不搜索这两个剧本,否则可能无法正常工作。
只需在终端中:
synclient TouchpadOff=1
但是,以上似乎在Ubuntu 16.04中不再起作用。在这种情况下,xinput
仍然可以使用:
xinput set-prop `xinput --list | awk '/[Tt]ouch[Pp]ad.*pointer/ {print $7}' | sed 's/id=\(.*\)/\1/'` "Device Enabled" 0
取而代之的xinput
是id变量可以改变,更好地利用synclient
在其他的答案指出,像这样。
sudo apt install xserver-xorg-input-synaptics
要关闭触摸板:
synclient TouchpadOff=1
打开:
synclient TouchpadOff=0
可以与启动器或快捷方式配合使用,如下所述。
这只是本问题中此答案中命令的应用。下面的解决方案仅限于Xfce / Xubuntu,但是尽管我偶然发现了它,但我发现它太优雅了,在这里不太喜欢分享。因此,我最初为Xubuntu 创建了一个单独的问题。这个问题只能是这个问题的重复,并且可能由于这个原因而被关闭,这就是为什么我敢在这里重新发布该答案。
关于以下两个命令:
禁用:
xinput set-prop 15 "Device Enabled" 0
启用:
xinput set-prop 15 "Device Enabled" 1
可以通过运行找到ID号
xinput list
这是在启动时自动禁用触摸板的 方法。此方法将通过名称而不是ID更安全地禁用触摸板。这是获取触摸板名称的方法:
$ xinput list --name-only | grep -i Touchpad
ETPS/2 Elantech Touchpad
创建一个bash脚本文件。我已将该文件添加到ubuntu启动应用程序,因此该文件在每次重新启动时都会运行。记住使文件可执行。这里是内容:
#!/bin/bash
$ xinput disable 'ETPS/2 Elantech Touchpad'
这在11.10中对我有用:
⎡ 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=13 [slave keyboard (3)]
它显示所有已连接的输入设备。请注意,它们都有一个ID。由于12是我的触摸板的ID,因此运行以下命令将其禁用。
xinput set-prop 12 "Device Enabled" 0
我会将其放在.bashrc或其他格式中,但是我不确定设备12(实际上对我来说是11)始终是触摸板。
现在,如果我可以在nautilius中向上箭头工作并查看.dirs
(此答案是从无效的编辑中复制的)
您不必每次都希望启用/禁用触摸板时都记住该命令,而可以将其添加为键盘组合快捷方式。
在键盘快捷键的首选项下,单击添加。给快捷方式命名,例如“禁用触摸板”之类,然后添加您在上面发现的命令
xinput set-prop <id> "Device Enabled" 0
然后单击“应用”。然后添加另一个称为“启用触摸板”的快捷方式或与第一个相似的快捷方式,最后将上一个命令更改为1
xinput set-prop <id> "Device Enabled" 1
这些分别是关闭/打开。
现在已添加了这些内容,请单击“启用触摸板”的“快捷方式”列(应该说“已禁用”),然后键入您想要的键盘快捷方式,我选择了Win+ 1(按住Windows键并按数字1)。对“禁用触摸板”执行相同的操作,我选择了Win+ 2。
现在Win+ 1启用我的触摸板,而Win+ 2禁用它。
我使用以下脚本来启用/禁用触摸板。我也将其分配给键盘快捷键。
用法:toggle_touchpad.sh [on|off
]
如果您不带参数运行,它将简单地反转触摸板的当前状态。
#!/bin/bash
# toggle_touchpad.sh
is_off=`synclient | grep -Pio "TouchpadOff.*?(\d)" | grep -Eo "[01]"`
if [ -z "$1" ]; then
echo "Inverting touchpad state"
if [ "$is_off" -eq '0' ];then
synclient TouchpadOff=1
notify-send "Touchpad Disabled"
else
synclient TouchpadOff=0
notify-send "Touchpad Enabled"
fi
else
if [ "$1" == "on" ]; then
echo "Turning on touchpad"
synclient TouchpadOff=0
notify-send "Touchpad Enabled"
elif [ "$1" == "off" ]; then
echo "Turning off touchpad"
synclient TouchpadOff=1
notify-send "Touchpad Disabled"
else
echo "Unknown arg! Pass no args or on/off !"
fi
fi
首先,请检查您的笔记本电脑是否有启用/禁用触摸板键盘快捷键的功能!在我的Lenovo Thinkpad T500上,它是Fn+F8
xev
或xinput
尝试使用G700上的按钮,则它不会注册令人毛骨悚然的东西。甚至evemu-record
不注册任何东西,这是在内核级别。如果内核看不到它,那么除了修复设备驱动程序之外,就不需要做太多事情了。话虽这么说,这是一个很好的解决方案,但对于所有用例来说都不是一个可靠的解决方案。
就我而言,fn+F9映射到触摸板切换。
但是,该键什么也没有做,只是在屏幕的右上方显示了触摸板图标。
这是仅需按快捷键即可切换触摸板的解决方案。
$ xinput list
因此,我得到了一个bash脚本文件,用于使用“ xinput”命令切换触摸板(原始脚本可在此处找到)。
就我而言,触摸板的ID为12。
#!/bin/bash
device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`
if [ "$state" -eq '1' ];then
xinput --disable "$device"
else
xinput --enable "$device"
fi
将上面的脚本文件保存.toggleTouchPad.sh
在所需的位置。
最后一步是添加键盘快捷键以运行脚本文件。
因此,只需sh /PATH/TO/SCRIPT
在Command
快捷方式窗口中输入即可。
按快捷方式,然后检查触摸板是否已切换。
它适用于华硕A556UA笔记本电脑,并已安装Ubuntu14.04 x64。
请提出一种将触摸板切换键分配给自定义快捷方式的方法,以实现完整的解决方案
对于Ubuntu 16.04
对于禁用触摸板:
xinput --disable $(xinput --list | grep -i 'touchpad' | grep -o 'id=[0-9]*' | sed 's/id=//')
并启用触摸板:
xinput --enable $(xinput --list | grep -i 'touchpad' | grep -o 'id=[0-9]*' | sed 's/id=//')
https://bitbucket.org/barseghyanartur/xinput
这是一个很小的代码,它使您可以从终端禁用/启用触摸板。
只需遵循以下说明:
安装:
$ pip install xinput
禁用触摸板:
$ disable-touchpad
启用触摸板:
$ enable-touchpad
只需在.bashrc中添加几个bash函数即可进行切换...
#toggle-touchpad on|off
function touchpadon { /usr/bin/xinput --enable $(xinput --list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') ; echo "touchpad enabled";}
function touchpadoff { /usr/bin/xinput --disable $(xinput --list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') ; echo "touchpad disabled";}
在Ubuntu中禁用触摸板实际上非常简单。只需删除xserver-xorg-input-synaptics
在Ubuntu中使用触摸板所需的软件包即可!
sudo apt-get remove xserver-xorg-input-synaptics
这是永久禁用触摸板的唯一方法,对我有用。其他方法只是暂时的:
xinput list
xinput set-prop IDOFTOUCHPAD "Device Enabled" 0
synclient TouchpadOff=1
我正在使用LXDE,但无法通过将这些行添加到-prefix ~/.config/lxsession/LXDE/autostart
或/etc/xdg/lxsession/LXDE/autostart
使用@
-prefix 来自动禁用触摸板。它只是被忽略了。
我尝试使用dconf-editor(org.gnome.desktop.peripherals.touchpad)和gconf-editor(desktop.gnome.peripherals.TOUCHPADNAME)禁用触摸板,但两者均无法正常工作。dconf-editor上的设置完全无效,而在gconf-editor上,则继续显示错误消息“此键没有模式”。
在装有Dell笔记本电脑的Ubuntu 12.04 LTS上对我有用的东西
我想禁用位于键盘中间的指针,并且在键入时会产生很多问题。所以:
$ xinput list
⎡ Virtual core pointer id=2
⎜ ↳ Virtual core XTEST pointer id=4
⎜ ↳ Wacom Graphire2 4x5 eraser id=9
⎜ ↳ Wacom Graphire2 4x5 cursor id=10
⎜ ↳ Wacom Graphire2 4x5 id=11
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=14
⎜ ↳ Macintosh mouse button emulation id=15
⎜ ↳ DualPoint Stick id=13
⎣ Virtual core keyboard id=3
↳ Virtual core XTEST keyboard id=5
↳ Video Bus id=6
↳ Power Button id=7
↳ Sleep Button id=8
↳ AT Translated Set 2 keyboard id=12
The device I want to disable has id 13. Use xinput to list its properties:
$ xinput -list-props 13
Device 'DualPoint Stick':
Device Enabled (115): 0
[...several lines removed...]
$ xinput -set-prop 13 115 0
这禁用了Dualpoint摇杆。但是没有其他答案对我有用。我做了
安装dconf-tools
:
sudo apt-get install dconf-tools
dconf-editor
然后转到org-> gnome-> settings-daemon->外设->触摸板并取消选中启用触摸板的字段
我发现了创建一个将调用该命令的键绑定的好方法:
xdotool key 199
其中199是识别为XF86TouchpadToggle的键控代码。这样一来,他可以将自己的选择组合成一个按键,使其表现得像一个特殊按键,有些笔记本电脑必须在Mate或Cinnamon之类的桌面环境下很好地切换触摸板。您可以通过以下命令检查键码:
xmodmap -pke
我已经在自己的博客上创建了操作方法:https : //artofcode.wordpress.com/2017/10/01/how-to-add-a-key-binding-to-toggle-a-touchpad-under-linux /
适用于所有触摸板的替代解决方案,无需ID。
打开终端并输入“ gedit toggle_touchpad.sh”
#!/bin/bash
condition="$(gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled)"
if [ "$condition" == "false" ]; then
gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled true
elif [ "$condition" == "true" ]; then
gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false
fi
保存文件并退出。现在,您有了一个名为“ toggle_touchpad.sh”的文件。
运行命令chmod +x toggle_touchpad.sh
以使文件可执行。
将该文件放在您喜欢的任何文件夹中。让我们假设您将其放在文件夹/ home / username / myscripts /中。
从右上方的菜单转到system-settings->keyboard->shortcuts->custom-shortcuts
。
创建一个新的快捷方式,并根据需要输入名称。作为命令放置,/home<username>;/myscripts/toggle_touchpad.sh
其中“用户名”是您的用户名
分配所需的任何键盘快捷键。
准备好了:)
PS个人而言,我将文件放在文件/opt/myscripts/
夹中,但是为了将其放置在文件夹中,您应该在创建文件后运行以下命令:
sudo mkdir /opt/myscripts/
sudo mv toggle_touchpad.sh /opt/myscripts/
sudo chown <username>:<username> /opt/myscripts/toggle_touchpad.sh
chmod +x /opt/myscripts/toggle_touchpad.sh
其中“用户名”是您的用户名
然后,当您创建快捷方式时,将使用路径“ /opt/myscripts/toggle_touchpad.sh”,而不是上面提到的路径。
因此,通过结合Krzysztof Tomaszewski和JaeJun LEE的答案,我得出了这个解决方案。
创建以下toggleTouchPad.sh
脚本并将其保存在所需的位置:
#!/bin/bash
device=14
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`
if [ "$state" -eq '1' ];then
xinput --disable "$device" && sleep 1 && xdotool key 201
else
xinput --enable "$device" && sleep 1 && xdotool key 200
fi
其中14是您的TouchDevice ID(请参阅JaeJun LEE的回答)
转到Ubuntu设置->设备->键盘
在列表的末尾,单击+
以添加新的自定义快捷方式
Toggle Touchpad
用Command /path/to/.toggleTouchPad.sh
和您想要的任何按键组合将其命名(我刚刚选择了Super + F7)。
现在,只要您按了所选择的组合键,它不仅可以切换触摸板,而且还可以通过以下方式显示通知图标: xdotool
为了禁用我的纬度中间杆,我将其放置在Ubuntu的.profile上,因此每次启动/重启笔记本电脑时,它将禁用该输入。
我使用--id-only
来避免grep中的不匹配
declare -i ID
ID=`xinput list --id-only 'AlpsPS/2 ALPS DualPoint Stick' | grep -Eo '[0-9]{1,2$
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
echo "id" $ID
xinput disable $ID
echo "Touchpad disabled."
else
echo "id" $ID
xinput enable $ID
echo "Touchpad enabled."
fi