Включение/выключение touch устройств в Ubuntu 14.04

[:ru]Для выключения тачпада, порой мешающего набору текста, на моём стареньком Dell Latitude была классная комбинация функциональной кнопки с какой-то из верхнего ряда клавиатуры, прекрасно работало и в целом было полезно. Создатели Dell Inspiron 13 7000 почему-то об этом забыли, очень жаль. К тому же, добавился экран, в который иногда тыкают пальцами указывая что-нибудь, при этом нажимая всё подряд. В общем, захотелось мне эти излишества время от времени выключать.

Погуглив тему, я узнал что не все йогурты одинаково полезны способы работают с моим тачпадом, но точно работает вот этот:

$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech M705 id=10 [slave pointer (2)]
⎜ ↳ ImPS/2 Elantech Touchpad id=15 [slave pointer (2)]
⎜ ↳ DLL06FD:01 04F3:300F UNKNOWN id=13 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen 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)]
↳ Integrated_Webcam_HD id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ Dell WMI hotkeys id=16 [slave keyboard (3)]

$ xinput disable 12
$ xinput disable 13

Методом тыка, я нашёл необходимые мне устройства и отключил их.

Самое время поставить находку в более удобное для использования место, а также заставить его выключаться и включаться. Создаю файл /usr/bin/touch-toggle с содержимым:

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.touch-toggle

if [ ! -e $TOGGLE ]; then
touch $TOGGLE
xinput disable 12
xinput disable 13
notify-send -i /usr/share/icons/HighContrast/256x256/status/touchpad-disabled.png "Touch toggle" "Disabled Touchpad and Touchscreen"
else
rm $TOGGLE
xinput enable 12
xinput enable 13
notify-send -i /usr/share/icons/HighContrast/24x24/devices/input-touchpad.png "Touch toggle" "Enabled Touchpad and Touchscreen"
fi

Установив на него права исполняемого файла, можно убедиться что всё работает.

$ sudo chmod a+x /usr/bin/touch-toggle
$ touch-toggle

disabled-touch-devices

В настройках клавиатуры System settings / Keyboard settings / Shortcuts добавлю новую комбинацию с названием «Touch Toggle» и командой touch-toggle.

disabled-touch-devices-2

С возможностью включить и выключить тач устройства, работать на лаптопе стало намного приятнее.[:en]There was ability to turn off touchpad, that disturbs me sometimes when i am typing on Dell Lattitude notebook. It was simple combination of Fn key with one of numeric. Authors of Dell Inspiron 13 7000 forgot to implement it. Additionnaly, now we have touch screen that client always tries to touch while point me something on screen. Anyways, i want to disable that features sometimes, and i want to make it in Ubuntu.

Googling this sublect gave me few commands. Not all of them works on my notebook, here is what is works:

$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech M705 id=10 [slave pointer (2)]
⎜ ↳ ImPS/2 Elantech Touchpad id=15 [slave pointer (2)]
⎜ ↳ DLL06FD:01 04F3:300F UNKNOWN id=13 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen 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)]
↳ Integrated_Webcam_HD id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ Dell WMI hotkeys id=16 [slave keyboard (3)]

$ xinput disable 12
$ xinput disable 13

Thsis is how i found necessary devide and turned it off.

It’s time now to put it to a better place, make usable and allow toggle between on/off. Let’s create script /usr/bin/touch-toggle with contents:

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.touch-toggle

if [ ! -e $TOGGLE ]; then
touch $TOGGLE
xinput disable 12
xinput disable 13
notify-send -i /usr/share/icons/HighContrast/256x256/status/touchpad-disabled.png "Touch toggle" "Disabled Touchpad and Touchscreen"
else
rm $TOGGLE
xinput enable 12
xinput enable 13
notify-send -i /usr/share/icons/HighContrast/24x24/devices/input-touchpad.png "Touch toggle" "Enabled Touchpad and Touchscreen"
fi

Set execute permission and try it.

$ sudo chmod a+x /usr/bin/touch-toggle
$ touch-toggle

disabled-touch-devices

In System settings / Keyboard settings / Shortcuts i am adding new shortcut with name «Touch Toggle» and a command touch-toggle.

disabled-touch-devices-2

It’s much better now.[:]

Leave a Reply