AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 736035
Accepted
misha
misha
Asked: 2016-02-18 19:13:36 +0800 CST2016-02-18 19:13:36 +0800 CST 2016-02-18 19:13:36 +0800 CST

如何完全禁用我电脑上的触摸板设备?(重启后又恢复了)

  • 772

我知道禁用触摸板就像在系统设置中切换开/关按钮一样简单,但不幸的是它仅适用于当前会话。重新启动后,触摸板重新打开。

touchpad
  • 4 4 个回答
  • 904 Views

4 个回答

  • Voted
  1. Best Answer
    Jacob Vlijm
    2016-02-27T09:41:26+08:002016-02-27T09:41:26+08:00

    禁用触摸板的命令

    禁用触摸板的命令是:

    对于 14.04:

    gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false
    

    对于 15.04 +:

    gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled
    

    将其添加到启动应用程序

    最实用(和简单)的解决方案是将命令添加到启动应用程序。

    就像在许多情况下,当命令涉及屏幕、xrandr键盘或触摸板设置时,您需要添加一个小中断以防止可能的本地程序推翻命令,因此应该是:

    对于 14.04:

    /bin/bash -c "sleep 15 && gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false"
    

    对于 15.04 +:

    /bin/bash -c "sleep 15 && gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled"
    

    打开 Dash > 启动应用程序 > 添加。根据您的 Ubuntu 版本添加上面的命令。

    现在登录后不久(15 秒内),您的触摸板会自动禁用。

    当然,您可以使用 15 秒来优化您的系统。


    编辑

    根据您的评论,事实证明触摸板在一段时间后(重新)启用,这意味着某些过程正在启用触摸板。

    通常,很难找出是哪个进程导致了这种变化。即使可以,也不确定是否可以消除原因。

    然而,好消息是gsettings(用于检查/控制触摸板)非常“低电量”。这意味着让后台脚本监视当前状态不会对您的系统造成任何负担,如果某个进程以某种方式启用了触摸板,则会立即再次禁用它。

    如果你运行 14.04

    • 使用下面的脚本
    #!/usr/bin/env python3
    import subprocess
    import time
    
    key = "org.gnome.settings-daemon.peripherals.touchpad"
    
    def check_set():
        currstate = subprocess.check_output([
            "gsettings", "get", key, "touchpad-enabled",
            ]).decode("utf-8").strip()
        if currstate == "true":
            subprocess.Popen([
            "gsettings", "set", key, "touchpad-enabled", "false"])
    
    while True:
        time.sleep(2)
        check_set()
    

    如果您使用 15.04+

    #!/usr/bin/env python3
    import subprocess
    import time
    
    key = "org.gnome.desktop.peripherals.touchpad"
    
    def check_set():
        currstate = subprocess.check_output([
            "gsettings", "get", key, "send-events",
            ]).decode("utf-8").strip()
        if currstate == "enabled":
            subprocess.Popen([
            "gsettings", "set", key, "send-events", "disabled"])
    
    while True:
        time.sleep(2)
        check_set()
    

    使用它

    • 将脚本复制到一个空文件中,另存为no_touchpad.py
    • 将以下命令添加到启动应用程序:

      /bin/bash - c "sleep 15 && python3 /path/to/no_touchpad.py"
      

    正如 Serg 所说,恐怕唯一的选择是物理断开触摸板。

    • 4
  2. Sergiy Kolodyazhnyy
    2016-02-28T08:20:37+08:002016-02-28T08:20:37+08:00

    下面讨论了 3 种可能的方法、优点和缺点。可能还有其他的,但这些是最防弹和最简单的。

    配置文件方法

    第一种方法是使用dconf(这是我更喜欢的方法,因为它至少在我的 14.04 LTS 系统上重新启动后仍然存在),更具体地说是这个命令:

    dconf write /org/gnome/settings-daemon/peripherals/touchpad/touchpad-enabled false
    

    要完成它,请运行dconf update.

    非常好的方法,不需要root访问权限,在重新启动后仍然存在,脚本简单。

    将司机列入黑名单

    如果驱动程序(在 Linux 术语中 - 模块)被列入黑名单,则不会使用该设备 - 这是一个简单的想法。我们需要的具体模块是pmouse.

    使用 root 权限打开文件/etc/modprobe.d/blacklist.conf,例如使用sudo nano /etc/modprobe.d/blacklist.conf(命令行编辑器)或使用gksu gedit /etc/modprobe.d/blacklist.conf(gui 编辑器)。在末尾添加以下行:

     blacklist pmouse
    

    保存、退出、重新启动,现在您的触摸板将无法使用。作为记录,无线 USB 鼠标仍将处于活动状态 - 我目前正在使用 USB 无线鼠标在我的笔记本电脑上输入,移除触摸板模块,同时使用 USB 无线鼠标。

    这种方法的小缺点是需要 root 访问权限,但总的来说它是一种简单而有效的方法。

    输入

    最后一个是xinput --disable ID,其中 ID 是设备的id=编号xinput(注意没有参数)。现在我们如何在每次登录 GUI 时自动启动?

    制作一个脚本并将其添加到启动应用程序菜单:

    #!/bin/bash
    DISPLAY=:0
    xinput --disable 13 # id 13 is just an example
    

    现在每次登录时,都会运行。稍微详细一点,更多步骤。但是,当您使用任何依赖于 X 服务器的 GUI 时,这具有优势。但只有那些使用该方法的人才能使用dconf该dconf方法(显然),例如 Unity 或 Gnome。

    硬件解决方案:

    这可能很明显,但是如果您想 100% 禁用触摸板,请打开笔记本电脑并断开从触摸板到主板的带状连接器。

    • 4
  3. hazrpg
    2016-03-02T11:58:43+08:002016-03-02T11:58:43+08:00

    有一个非常酷的实用程序touchpad-indicator,它在顶部栏中显示一个关于触摸板状态的图标。重要的是,它还允许您执行以下操作:

    • 只需单击图标即可启用/禁用触摸板。
    • 启动时自动禁用触摸板touchpad-indicator。
    • 插入鼠标时禁用触摸板。
    • 打字时禁用触摸板。
    • 使用键盘快捷键启用/禁用触摸板。

    我将向您展示如何安装和设置它,以便在启动时禁用触摸板。

    1. 首先我们需要安装它,打开一个终端并输入以下内容:

      sudo add-apt-repository ppa:atareao/atareao 
      sudo apt-get update
      sudo apt-get install touchpad-indicator
      
    2. 安装后,通过Touchpad-Indicator在 Dash 菜单中查找来启动它。

    3. 您将在屏幕右上角看到一个新图标(见下图)。单击它并选择Preferences。

      将显示在右上角的通知工具栏中的图标。

    4. 您将看到此窗口:

      触摸板指示器工具。

    5. 转到常规选项选项卡。

      应用程序顶部的选项卡。

    6. 勾选显示Autostart的框。

      自动启动复选框

    7. 现在转到“操作”选项卡。

    8. 勾选“触摸板指示器启动时禁用触摸板”框。

      应用程序启动时禁用触摸板。

    9. (可选)在“操作”选项卡中设置您喜欢的任何其他条件。

    10. 完毕。

    您现在可以关闭该窗口(通过单击OK)。

    享受。

    • 4
  4. Tropcon
    2016-02-27T08:05:26+08:002016-02-27T08:05:26+08:00

    以下命令将禁用您的触摸板,前提是您将“XX”替换为触摸板的 ID。

    xinput set-int-prop XX "Device Enabled" 8 0
    

    要查找触摸板的 id,请运行:

    xinput --list
    

    例如,我的触摸板如下所示:

    ⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=15 [从指针 (2)]

    所以我的触摸板的 id 是 15。

    所以,使用这个命令,我可以关闭我的触摸板:

    xinput set-int-prop 15 "Device Enabled" 8 0
    

    再回来:

    xinput set-int-prop 15 "Device Enabled" 8 1
    

    这与键盘上的启用/禁用触摸板热键发出的命令相同,因此您仍然可以在需要时随时重新打开触摸板。

    所以现在,剩下的就是让这个命令在你打开计算机时运行。执行此操作的最简单方法可能是将命令添加到您的启动应用程序中。在 Unity 中,只需在破折号中搜索 Startup Applications。 在此处输入图像描述如果您使用的是 Mate,该工具位于“系统 -> 首选项 -> 个人 -> 启动应用程序”下。

    使用启动应用程序方法运行命令,触摸板仍将在登录屏幕和其他用户帐户的配置文件中处于活动状态。如果您想让命令在启动期间在系统范围内运行,这个问题有一些有用的答案可以帮助您入门。

    其他来源: http ://wpkg.org/Disable_/_enable_keyboard_and_mouse_in_Linux

    • 3

相关问题

  • Synaptics 触摸板禁用按钮不起作用

  • 如何在 Aspire One 上打字时禁用触摸板

  • 触摸板在 HP Pavilion dv6 上不起作用

  • 是否支持 Synaptics 触摸板?

  • 如何修复我的鼠标中键被识别为鼠标左键?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve