Отключение тачпада при подключенной мыши

В этой статье описано как сделать автоматическое отключение тачпада при подключении мыши. Для достижения этого, нужно добавить соответствующее правило udev. Однако это работает только, если подключать мышь при уже загруженной системе. Если же мышь была подключена до загрузки системы, то в системе будет одновременно работать и мышь и тачпад.

Но это поправимо. Сейчас напишем маленький скрипт, который будет проверять наличие мыши в системе и, если мышь подключена, отключать тачпад.

Подключаем мышку и смотрим информацию по всем устройствам ввода следующей командой:

cat /proc/bus/input/devices

Примерный вывод команды:

I: Bus=0011 Vendor=0002 Product=0007 Version=01b1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio4/input0
S: Sysfs=/class/input/input0
U: Uniq=
H: Handlers=mouse0 event0 
B: EV=b
B: KEY=6420 0 70000 0 0 0 0 0 0 0 0
B: ABS=11000003 

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input1
U: Uniq=
H: Handlers=kbd event1 
B: EV=120013
B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7 

I: Bus=0019 Vendor=0000 Product=0002 Version=0000
N: Name="Power Button (FF)"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/class/input/input2
U: Uniq=
H: Handlers=kbd event2 
B: EV=3
B: KEY=100000 0 0 0 

I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button (CM)"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/class/input/input3
U: Uniq=
H: Handlers=kbd event3 
B: EV=3
B: KEY=4000 0 0 0 0 

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=/video/input0
S: Sysfs=/class/input/input4
U: Uniq=
H: Handlers=kbd event4 
B: EV=3
B: KEY=3f000b 0 0 0 0 0 0 0 

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/class/input/input5
U: Uniq=
H: Handlers=event5 
B: EV=21
B: SW=1 

I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech PS/2+USB Mouse"
P: Phys=usb-0000:00:1d.0-2/input0
S: Sysfs=/class/input/input8
U: Uniq=
H: Handlers=mouse1 event6 
B: EV=17
B: KEY=ff0000 0 0 0 0 0 0 0 0
B: REL=343
B: MSC=10

Ищем там мышку. Вот она: «A4Tech PS/2+USB Mouse». Теперь можем написать такой скрипт:

#!/bin/sh

if [ -n "`cat /proc/bus/input/devices | grep 'A4Tech PS/2+USB Mouse'`" ]; then
    /usr/bin/synclient TouchpadOff=1
fi

И добавить его в автозагрузку вашего оконного менеджера.

Также в скрипт можно добавить следующую команду:

/usr/bin/syndaemon -i 2 –d

Эта команда указывает драйверу тачпада отключаться во время набора на клавиатуре. Ключ -i 2 устанавливает время простоя в 2 секунды. Это интервал, который будет проходить со времени последнего нажатия клавиши до включения тачпада обратно, а опция -d запускает программу в качестве демона (в фоновом режиме).

Итого, у нас есть правило для udev, которое отключает тачпад при подключении мыши:

ACTION=="add",  SUBSYSTEM=="input", ID_CLASS="mouse", RUN+="/usr/bin/synclient TouchpadOff=1"
ACTION=="remove", SUBSYSTEM=="input", ID_CLASS="mouse", RUN+="/usr/bin/synclient TouchpadOff=0"

И скрипт (файл touchpad.sh):

#!/bin/sh

/usr/bin/syndaemon -i 2 -d 

if [ -n "`cat /proc/bus/input/devices | grep 'A4Tech PS/2+USB Mouse'`" ]; then
    /usr/bin/synclient TouchpadOff=1
fi

Который при загрузке определяет наличие мыши и настраивает отключение тачпада при наборе на клавиатуре.


Комментарии

Оставить комментарий

Ответ на Отключение тачпада при подключенной мыши