如何禁用触摸板?


223

我希望在使用鼠标时禁用触摸板。我怎样才能做到这一点? touchpad-indicator已停止在11.10上工作。它曾经在11.04上工作。Gnome3并不是解决方案,因为我不喜欢它,发现它存在问题。


1
好的,我认为触摸板指示器开发团队将解决此问题。
澎湖


最简单的解决方案不是第一个答案。向下滚动至屏幕截图:-)
guettli

Answers:


304

在终端中运行以下命令:

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

(并通过类似的命令启用)


31
关闭触摸板synclient TouchpadOff = 1将其重新打开synclient TouchpadOff = 0这样可以更好。
彭武

1
sudo apt-get install touchpad-indicator的一个好新之处是touchpad-indicator在11.10中可以再次使用。
彭武

3
“ synclient -l | less”查看所有可用选项
samis

8
在12.10及更高版本中,您还可以xinput -disable 12用于禁用输入设备12(或xinput -enable 12启用它)。请参见手册xinput(1)
Lekensteyn

1
@smartmouse,尝试将Geremy的命令放入脚本中,然后使用“启动应用程序”程序在登录时运行该脚本。
b_laoshi

83
  1. 搜索鼠标
  2. 单击鼠标和触摸板
  3. 单击触摸板设置右侧的关闭/打开按钮。

第一步

在此处输入图片说明


3
大的ON | OFF小部件在12.04中不可用,那就是一个必须诉诸命令行...
knocte 2014年

1
我不小心用这种方法禁用了触摸板,如何在不将鼠标连接到计算机的情况下再次启用它?
2014年

1
@Ziv转到此“鼠标和触摸板”窗口,继续单击选项卡,直到打开/关闭切换器处于焦点,然后按Enter。
paibamboo

这是一个很好的方法。我的触摸板保持重新启用后,本身我通过命令行禁用它
晃龙

38

检查此链接:如何在ubuntu 11.10中禁用触摸板

找到的答案确实很整洁:

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator

之后,您将在通知区域中进行切换。

我唯一希望的是能够将开关键设置为Fn+ F8(这是键盘上的触摸板键开关...


太好了!它曾经在11.10中被破坏。但现在它的工作
吴鹏

1
在12.04中工作。
北欧海盗

1
在14.04中工作正常
voiger

2
警告:这需要信任用户atareao,他可能在其PPA中托管了恶意软件
knocte 16-10-16

1
在Xubuntu 16.04.1。中无法正常工作。将某些点击记录为按键,然后阻止进一步使用触摸板,尽管您单击并没有按任何键,但是另一方面,当我按动按键并使用触摸板不断在光标周围移动时,它什么也没做。某些东西一定有问题,或者在发行版或计算机上不够普遍,以致引起这种行为。
Zelphir Kaltstahl '17

31

基于@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

检查第一个脚本的状态码会很酷。我不得不将grep模式更改为'Touchpad in mouse emulation mode\s*id\=[0-9]{1,2}'
galath 2015年

在我的系统上,它Touchpad不是TouchPad。要使其不区分大小写,只需i在您的grep选项中添加一个即可。
zondo

红宝石触摸板开关onelinersynclient TouchpadOff=$(synclient | ruby -ne 'puts ($_.match(/\\d+/)[0].to_i ^ 1) if /TouchpadOff/ =~ $_')
GALVA

有关这一行的等效内容,请参阅我的答案
knocte

我将其设置为附加到Ctrl + Alt + P的键盘快捷键,以打开和关闭触摸板,其中包括2秒钟的窗口弹出窗口以指示新的触摸板状态,同时还通过imwheel以下方式解决了解决滚轮速度问题的问题:askubuntu.com /问题/ 844151 /启用-禁用触控板/ ...。另外我的答案搜索xinput两个TouchPad Touchpad,因为有时在P是或不是资本,取决于系统,所以如果你不搜索这两个剧本,否则可能无法正常工作。
加布里埃尔·斯台普斯

26

只需在终端中:

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

最简单的解决方案,谢谢。尽管打开了“在输入时禁用触摸板”,但还是不小心触摸了触摸板-使我有些疯狂。这样,我可以只使用USB鼠标,并保持键盘正常运转。
大卫·托马斯

这需要须藤吗?它对我的HP 6460b + Ubuntu 14.04没有影响
itsols 2015年

它没有,并且可以在我的14.04上工作
knocte

1
可在Ubuntu 16.04上运行,不需要sudo,可以轻松地用它创建键盘快捷键:+1 :-)
Martin Thoma,2016年

1
xinput适用于Fedora 25,谢谢!
Alois Mahdal

11

更新的解决方案:

取而代之的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

@galileopy-就我现在所知,一个简单的快捷方式甚至更有用

7

这是在启动时自动禁用触摸板的 方法此方法将通过名称而不是ID更安全地禁用触摸板。这是获取触摸板名​​称的方法:

$ xinput list --name-only | grep -i Touchpad
ETPS/2 Elantech Touchpad

创建一个bash脚本文件。我已将该文件添加到ubuntu启动应用程序,因此该文件在每次重新启动时都会运行。记住使文件可执行。这里是内容:

#!/bin/bash
$ xinput disable 'ETPS/2 Elantech Touchpad'

4

这在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


没有触摸板实用程序不会禁用11.10中的tp,因此请返回命令行
Touristguy87'4

运行xinput列表,获取触摸板的ID,然后运行xinput set-prop(id)“设备已启用” 0就像一个
超级按钮

4

定义键盘快捷键

(此答案是从无效的编辑中复制的)

您不必每次都希望启用/禁用触摸板时都记住该命令,而可以将其添加为键盘组合快捷方式。

在键盘快捷键的首选项下,单击添加。给快捷方式命名,例如“禁用触摸板”之类,然后添加您在上面发现的命令

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禁用它。


4

我使用以下脚本来启用/禁用触摸板。我也将其分配给键盘快捷键。

用法: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

3

首先,请检查您的笔记本电脑是否有启用/禁用触摸板键盘快捷键的功能!在我的Lenovo Thinkpad T500上,它是Fn+F8


很好的解决方案!及其吻:保持超级简单。
Esteve 2014年

1
似乎太具体了。无法与我的n550jv一起使用。Peng Wu的评论起到了作用。
louiscoquio 2014年

1
大多数带有触摸板的笔记本电脑都具有这样的键,但是不能保证它能正常工作。如果我使用xevxinput尝试使用G700上的按钮,则它不会注册令人毛骨悚然的东西。甚至evemu-record不注册任何东西,这是在内核级别。如果内核看不到它,那么除了修复设备驱动程序之外,就不需要做太多事情了。话虽这么说,这是一个很好的解决方案,但对于所有用例来说都不是一个可靠的解决方案。
wxl 2015年

3

就我而言,fn+F9映射到触摸板切换

但是,该键什么也没有做,只是在屏幕的右上方显示了触摸板图标。

在此处输入图片说明


这是仅需按快捷键即可切换触摸板的解决方案。

1.获取触摸板的ID

$ xinput list

2.编写用于切换触摸板的脚本

因此,我得到了一个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在所需的位置。

3.用于运行脚本的键盘快捷键

最后一步是添加键盘快捷键以运行脚本文件。

因此,只需sh /PATH/TO/SCRIPTCommand快捷方式窗口中输入即可。

在此处输入图片说明

4.尝试快捷方式

按快捷方式,然后检查触摸板是否已切换。

它适用于华硕A556UA笔记本电脑,并已安装Ubuntu14.04 x64


有待改进。

  • 触摸板切换键分配给上述自定义快捷方式将不起作用
  • 它只是在屏幕的右上方显示触摸板图标
  • 因此我必须分配另一个键(super+ F9而不是触摸板切换(fn+ F9键。

在此处输入图片说明

请提出一种将触摸板切换键分配给自定义快捷方式的方法,以实现完整的解决方案


3

对于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=//')


2

只需在.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";}

2

安装Jupiter应用程序。您可以禁用触摸板,它会被记住。这对于11.04、11.10和12.04上的Lenovo IdeaPad和ThinkPad都有效。


2

在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上,则继续显示错误消息“此键没有模式”。


2

我尝试使用笔记本电脑功能键(fn)禁用指针,并且它可以工作。但是在我的11.04天内它没有工作,因此请尝试一下。


我没有那个按钮兄弟。这是一本HP Probook 4520s
Peng Wu,

哦好的。我只是发现我发布的解决方案也不是永久的,每次重启机器时都必须这样做。
法亚兹

1

如果您的笔记本电脑键盘没有打开/关闭触摸板的特殊功能键,也许您可​​以找到一个模拟它的屏幕虚拟键盘(尽管我还没有找到)。

简短地说,这很好用:

sudo apt-get install gpointing-device-settings

在此处输入图片说明


1

在装有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->外设->触摸板并取消选中启用触摸板的字段


小Nob!GH和B键之间的键实际上安装在一个小方钉上,用镊子将其拉出!这样可以防止您在键入时被击中-如果需要,稍后将其放回原处(因此请勿将其丢弃)尝试通过软件禁用它可能会阻碍鼠标或触摸板的功能!
Ken Mollerup

1

我发现了创建一个将调用该命令的键绑定的好方法:

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 /


1

我的解决方案是以下tp脚本:

#!/bin/bash
TT=`xinput --list | grep -i touchpad | sed -e "
s/(// 
s/)//
s/ //g
"`
set $TT

(( $2 ))

xinput list | grep -iq mouse &&{
   xinput --disable $id
}||{
   xinput --enable $id
}

如果检测到鼠标,则禁用触摸板,否则请启用。
脚本可找到触摸板ID。


0

我有一个使用Ubuntu 11.10(64位)的Medion Akoya笔记本型号P7812,并且FnF6组合键禁用了触摸板。


0

适用于所有触摸板的替代解决方案,无需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”,而不是上面提到的路径。


0

首先使用xinput列表获取触摸板的基本设备名称...而不是将带有完整设备名称的xinput disable命令(以双qoutes表示,接受空白)添加到〜/ .bashrc文件中(即xinput disable“ SynPS / 2 Synaptics TouchPad“)上面的脚本非常有用。


0

这种方法有效,但是我似乎无法使用“赢”按钮。所以我用了CtrlF1F2

目前,我的笔记本电脑操作系统是ubuntu 14.04LTS。

哦,需要xinput < id >在下面的命令中找到。对于Ubuntu 14.04,它是“ SynPS / 2 Synaptics触摸板”

xinput list
SynPS/2 Synaptics TouchPad                  id=###

0

我在这里尝试了所有先前的答案,但均未成功。
在Ubuntu 16.10上对我有用的是

killall syndaemon 
syndaemon -i 1 -KRd

您可能需要将值1更改为0.5。


0

因此,通过结合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的回答

  1. 转到Ubuntu设置->设备->键盘

  2. 在列表的末尾,单击+以添加新的自定义快捷方式

  3. Toggle Touchpad用Command /path/to/.toggleTouchPad.sh和您想要的任何按键组合将其命名(我刚刚选择了Super + F7)。

现在,只要您按了所选择的组合键,它不仅可以切换触摸板,而且还可以通过以下方式显示通知图标: xdotool


0

为了禁用我的纬度中间杆,我将其放置在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

0

就我而言,我将Slimbook和Kubuntu结合使用:Fn+ Z
这将禁用或启用触摸板。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.