外接鼠标会自动禁用触摸板吗?

外接鼠标会自动禁用触摸板吗?

这个触摸板让我抓狂。我想用外置有线鼠标替换它,但必须自己买一个(我闲置的光学 USB 鼠标无法识别)。安装时会自动禁用触摸板吗?还是我必须告诉系统忽略触摸板?

5 年前有人问过类似的问题,但除了询问正在使用的版本之外,我没有看到其他答案。(我仍在寻找如何找到我正在运行的 Xubuntu 版本。我认为它是最新版本。)

答案1

参考:https://itsfoss.com/disable-touchpad-when-mouse-used/

安装:

$ sudo add-apt-repository ppa:atareao/atareao
$ sudo apt 更新
$ sudo apt 安装触摸板指示器

自动启动:

  • 按 Win 键/Super 并输入Startup
  • 点击Startup App...
  • 单击Add并键入/usr/bin/touchpad-indicator命令,
  • 以及其他两个字段中的任何适当内容(自由文本)。
  • 单击保存。

删除的一般顺序如下:

  • apt 卸载/清除
  • ... 进而
  • apt-add-repository --remove

答案2

不同版本的 Ubuntu 的外围设备管理并不相同(在我看来这是一种遗憾:我们不需要一个如此多功能的系统,这意味着计算机辅助浪费时间每次升级时)

为了插入鼠标时禁用触摸板

  1. Ubuntu 20.04在迁移到 Ubuntu 22.04 LTS 之前,我使用触摸板指示器上面提到过,可以使用 Synaptic 进行安装。
  2. Ubuntu 22.04,我现在正在测试一个Dconf 编辑器我找到的解决方案这里。只需将/org/gnome/desktop/peripherals/touchpad/send-events设置更改为disabled-on-external-mouse。无需外部程序。经过几次测试,它似乎运行得很好。只需单击 即可恢复默认值Use default value

注意:抱歉!作为一个非英语母语的人,Ubuntu 版本的名称记不住。对于英语水平高的人来说,它们可能很有诗意,但对我来说却很奇怪。20.0422.04都很好。

答案3

我在 Dell Latitude Setup 中找到了鼠标的设置,我可以选择在连接 PS2 鼠标时禁用鼠标垫(或类似的文字)。

还可以在那里调整屏幕亮度。

答案4

答案是针对 Ubuntu 22.04 LTS (Jammy Jellyfish) 编写的具有库输入驱动程序(模块)代替旧的突触旧版 Ubuntu 中的驱动程序。

下载并运行自动禁用触摸板的脚本USB鼠标插入。
脚本将工作,如果你有只有一个触摸板
您可以拥有任意数量的鼠标。
如果您需要脚本的静默版本,请删除所有回声通知发送命令(脚本文件行)。
供参考我不是 bash 脚本专家,我是为自己编写该脚本的,我认为该脚本可能经过优化,但对我来说已经足够了。
仅供参考 2如果你有桌面环境您可能会发现安装突触驱动程序(模块)而不是库输入(默认驱动程序)。在我的情况下,它根本没有帮助,因为当我使用突触司机。

如果您有非标准触摸板,其名称中带有“鼠标”字样,则需要通过添加名称来修改脚本FAKE_MCOUNT脚本的变量,用于将触摸板设备排除在检测算法之外。例如,我有华硕笔记本电脑和义隆触摸板“老鼠”其名称中有一个单词,因此脚本需要知道它不是鼠标。您可以在脚本中看到单词 ELAN 及其用法。脚本使用正则表达式确实找到需要的 USB 鼠标插件事件。

# Execute these commands one by one.

# print list of devices to check if you have a touchpad
# with "Mouse" word in its name
# unplug your actual mouse before executing the command
# If you have such touchpad then you need to modify FAKE_MCOUNT variable of the script
xinput list

# install curl utility to download a stuff
sudo apt install curl

# install utility to show notifications
sudo apt install libnotify-bin

# download and run the script
sudo curl -L https://gitlab.com/blog.awesomesoft/blog.awesomesoft/-/raw/master/src/linux/sh/off_touchpad_on_usb_mouse.sh -o ~/off_touchpad_on_usb_mouse.sh

sudo chmod a+rx ~/off_touchpad_on_usb_mouse.sh

~/off_touchpad_on_usb_mouse.sh

目前脚本如下

#!/bin/bash

# The script listen mouse plug in event. And when mouse is pluged in then touchpad will be off.
# The script works with one touchpad only!
# The script works with USB mouse only (or mouse that emulate USB connection)!
# The script works with any quantity of usb mice.

TID=`xinput list | grep -Eo '\sTouchpad\s+id\=[0-9]{1,}' | grep -Eo '[0-9]{1,}'`
MCOUNT=`xinput list | grep -Eo '\sMouse\s+id\=[0-9]{1,}' | grep -c ^`

# Fake touchpad count
# Add any fake touchpad to the expression, you can find it with "xinput list" command
#
# e.g. ELAN is an ASUS touchpad that have "Mouse" word in its name
# https://github.com/mishurov/linux_elan1200_touchpad
FAKE_MCOUNT=`xinput list | grep -Eo 'ELAN.+\sMouse\s+id\=[0-9]{1,}' | grep -c ^`

echo mouse count $MCOUNT
echo fake mouse count $FAKE_MCOUNT

MCOUNT=$((MCOUNT-FAKE_MCOUNT))

echo actual mouse count $MCOUNT

function inc_mouse_count {
    MCOUNT=$((MCOUNT+1))
    echo current mouse count $MCOUNT
}
function dec_mouse_count {
    MCOUNT=$((MCOUNT-1))
    echo current mouse count $MCOUNT
}
function touchpad_off {
    if [ $MCOUNT -eq 1 ]
    then
        xinput --disable $TID
        notify-send "Touchpad is OFF."
    fi
}
function touchpad_on {
    if [ $MCOUNT -lt 1 ]
    then
        xinput --enable $TID
        notify-send "Touchpad is ON."
    fi
}

if [ $MCOUNT -gt 0 ]
then
    touchpad_off
else
    touchpad_on
fi

# RegExp explanation https://www.debuggex.com/r/4aJKR6XKjYFO1-1o
udevadm monitor -k | stdbuf -o0 grep -P '^KERNEL\[' | stdbuf -o0 awk '{print $2, $3, $4}' | stdbuf -o0 grep -P '^(add|remove)\s/devices/[^/\s]+/[^/\s]+/[^/\s]+/usb\d+[^\s]+/mouse\d+\s\(input\)$' | stdbuf -o0 awk '{print $1}' | while IFS= read -r line;
do
    if [ "$line" = "add" ]
    then
        inc_mouse_count
        touchpad_off
    elif [ "$line" = "remove" ]
    then
        dec_mouse_count
        touchpad_on
    fi
done

相关内容