понедельник, 9 марта 2009 г.

Bluetooth Fn-F5 switching

Есть ещё одна традиционная проблема: не работоспособность Fn-F5 для отключения Bluetooth. Решение просто как всё гениальное - необходимо записывать "enable" или "disable" в /proc/acpi/ibm/bluetooth Для получения статуса необходимо считать первую строчку. Правда, есть проблема - для изменения статуса необходимо быть root. sudo или setuid не помогают. Но тут мне на помощь пришёл удобный демон acpid. Мне понадобилось только добавить в /etc/acpi/events файл bluetooth.conf

event=ibm/hotkey HKEY 00000080 00001005
action=/etc/acpi/actions/bluetooth.sh
Говоря этим, что для нажатия кнопки Fn-F5 мне нужно выполнять скрипт /etc/acpi/actions/bluetooth.sh
#!/bin/bash
BLUETOOTH=/proc/acpi/ibm/bluetooth

if [ -r $BLUETOOTH ]; then
grep -q disabled $BLUETOOTH
state=$?
fi

if [ -w $BLUETOOTH ]; then
if [ $state == 0 ]; then
echo enable > $BLUETOOTH;
else
echo disable > $BLUETOOTH
fi
fi

ТК acpid выполняется из-под root -всё работает как надо.