Внешняя мышь автоматически отключает тачпад?
Этот тачпад сводит меня с ума. Я хотел бы заменить ее внешней проводной мышью, которую мне придется достать (оптическая USB-мышь, которая у меня лежала, не распознавалась). Будет ли он автоматически отключать сенсорную панель при монтировании или мне нужно указать системе игнорировать сенсорную панель?
Кто-то задавал аналогичный вопрос 5 лет назад, но я не вижу ответа, кроме вопроса об используемой версии. (Я все еще ищу, как узнать, какую версию Xubuntu я использую. Я думаю, что это последняя версия.)
4 ответа
Управление периферийными устройствами неодинаково между версиями Ubuntu (позор, IMO: нам не нужна настолько универсальная система, которая предполагает пустую трату времени с помощью компьютера при каждом обновлении)
Для отключения тачпада при подключении мыши :
- В Ubuntu 20.04, прежде чем перейти на Ubuntu 22.04 LTS, я использовал упомянутый выше сенсорный индикатор , который можно установить с помощью Synaptic.
- В Ubuntu 22.04 я сейчас тестирую решение для редактора Dconf , которое я нашел здесь . Просто изменив
настройка на . Нет необходимости во внешней программе. После нескольких тестов, кажется, работает очень хорошо. Значение по умолчанию можно восстановить, просто щелкнув значок .
НБ: Извините! Поскольку я не являюсь носителем английского языка, названия версий Ubuntu невозможно запомнить. Они могут быть очень поэтичными для людей, хорошо владеющих английским языком, но для меня они очень странные. 20.04, 22.04 просто отлично.
Ссылка: https://itsfoss.com/disable-touchpad-when-mouse-used/
Установить:
$ sudo add-apt-repository ppa:atareao/atareao $ sudo подходящее обновление $ sudo apt установить индикатор сенсорной панели
Автоматический старт:
- Нажмите клавишу Win/Super и введите
Startup
, - нажмите
Startup App...
- нажмите
Add
и введите/usr/bin/touchpad-indicator
для команды, - и что-нибудь подходящее (свободный текст) в двух других полях.
- Нажмите «Сохранить».
Для удаления общая последовательность:
- метко удалить/очистить
- ... а потом
- apt-добавить-репозиторий --удалить
Я нашел настройки для мышей в программе Dell Latitude Setup, где я смог выбрать «Отключить коврик для мыши» при подключении мыши PS2 (или слов в этом роде).
Там же можно было настроить яркость экрана.
Ответ написан для Ubuntu 22.04 LTS (Jammy Jellyfish) , у которого есть драйвер (модуль) libinput вместо старого драйвера synaptics , который был в более старых версиях Ubuntu.
Загрузите и запустите скрипт, который автоматически отключает тачпад на USB - мыши.
Скрипт будет работать, если у вас есть только один тачпад !
У вас может быть столько мышей, сколько вы хотите.
Если вам нужна тихая версия скрипта, удалите все команды echo и notify-send (строки файла скрипта).
К вашему сведению , я не специалист по bash-скриптам и писал скрипт для себя, думаю скрипт можно оптимизировать, но мне этого достаточно.
К вашему сведению 2. Если у вас есть KDE , вы можете найти предложения по установке драйвера (модуля) synaptics вместо libinput.(драйвер по умолчанию). В моем случае это совсем не помогает, потому что конфигурация сенсорной панели KDE имеет некоторые ошибки, когда я использую драйвер synaptics.
Если у вас нестандартный тачпад со словом «Мышь» в названии, вам нужно изменить скрипт, добавив имя в переменную FAKE_MCOUNT скрипта, чтобы исключить тачпад из алгоритма обнаружения. Например, у меня есть ноутбук ASUS и сенсорная панель ELAN , в названии которых есть слово «Мышь» , поэтому скрипт должен знать, что это не мышь. Вы можете увидеть слово 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