Linux: Wyłączanie touchpada przez ACPI

W standardowej konfiguracji Mandriva Linux 2010 nie działa wyłączanie touchpada dla laptopa Asus M51 - podejrzewam, że nie działa też na podobnych laptopach. W wymienionym systemie wystarczy dodać jako root następujące pliki:

/etc/acpi/actions/touchpad:

#!/bin/sh export DISPLAY=":0" if [ `synclient -l | fgrep TouchpadOff | sed 's/.*= //'` -eq 1 ] then synclient TouchpadOff=0 else synclient TouchpadOff=1 fi

/etc/acpi/events/touchpad:

event=hotkey ATKD 0000006b.* action=/etc/acpi/actions/touchpad

Wpis ''hotkey ATKD 0000006b.*'' musi odzwierciedlać faktyczną nazwę zdarzenia. W laptopach innych firm może być ona inna - aby ją poznać wystarczy uruchomić program ''acpi_listen'' i nacisnąć stosowny klawisz, a następnie zmienić odpowiednio wpis. ''.*'' oznacza, że dalej występują dowolne znaki. Tą metodą można oprogramować sobie także pozostałe zdarzenia ACPI.

Możemy do tego dodać powiadomienia - jako użytkownik KDE4 proponuję zrobić to poprzez ''kdialog''.

/etc/acpi/actions/touchpad:

#!/bin/sh export DISPLAY=":0" if [ `synclient -l | fgrep TouchpadOff | sed 's/.*= //'` -eq 1 ] then synclient TouchpadOff=0 sudo -u `users | sed 's/ .*//'` kdialog --passivepopup 'Touchpad włączony' 2 else synclient TouchpadOff=1 sudo -u `users | sed 's/ .*//'` kdialog --passivepopup 'Touchpad wyłączony' 2 fi

Po co ''sudo -u `users | sed 's/ .*//'`''? Ponieważ kdialog uruchomiony w trybie użytkownika wyświetli ładne powiadomienie w tacce systemowej. Dzięki ''sudo'', ''kdialog'' zostanie wykonany jako pierwszy użytkownik zwrócony przez instrukcję ''users''. Cyfra na końcu oznacza czas wyświetlania w sekundach.