|
Сидел я сегодня и думаю, а чегобы мне не попользоваться блутузом на телефоне не совсем по назначению... Один фиг работает постоянно (лениво включать/выключать), пусть думаю, будет польза.
Вобщем сел я наваял сервисок, который время от времени пингает мобилу, и выполняет всякие действия при наличии/отсутствии пинга. Например выставить away в аське или запустить хранитель...
Скажу сразу - писалось на скорую руку, и написанного функционала мне вполне хватает и меня устраивает, хотя критика и прочее конечно принимается.
Так как у меня везде генту и вообще я заядлый гентушник, то все в терминах генту.
Для начала что нам понадобится.
1. Собственно bluetooth свисток.
2. Что-ть типа телефона с включенным блутузом.
Это я думаю понятно :)
3. Как настроить блутуз - читаем тут
Собственно из всего этого надо чтобы работало l2ping из пакета net-wireless/bluez-utils
Логика работы: Запускается бесконечный цикл, в котором l2ping пинает девайс с маком $mac с интервалом между попытками пинга в $interval.
mac можно узнать, запустив hcitool scan
mac и interval задаются в /etc/btradar/btradar.conf Также в этом файле задается пользователь, под именем которого запускается этот цикл. Я эту переменную передаю еще и в dcop
При обнаружении устройства (и при отсутствии файла $flagfile) создается файл $flagfile и запускается скрипт /etc/btradar/device_found.sh. Соответственно, при отсутствии пинга и наличии файла $flagfile запускается скрипт /etc/btradar/device_not_found.sh и удаляется $flagfile. Все очень просто.
В зависимостях init скрипта /etc/init.d/btradar есть init скрипт /etc/init.d/bluetooth, тоесть при остановке /etc/init.d/bluetooth остановится и наш скрипт. А если все сделано правильно, то остановка /etc/init.d/bluetooth происходит при вытаскивании свистка из usb.
Все очень просто. Этим мне линух и нравится, что можно добиться неплохого результата, приложив небольшие усилия.
Насчет device_(not_)?found.sh
тем, кто пользует КДЕ - повезло. Есть у нее(только у нее?) замечательный сервис dcop, предназначеный для управления софтом из консоли. Например `dcop amarok playlist getTotalTrackCount` вернет количество треков в текущем плейлисте.
Узнать комманды несложно. Сначала запускаем dcop без параметров - вывалится список доступного. Выбираем чтонибудь нужное, добавляем к dcop (dcop amarok), смотрим следующий список и так далее. Я думаю - разберетесь.
Сервис находится в репозитории Linux-community Scripts Collection, здесь написано что да как :)
Вот вроде бы и все...
Жду комменттариев :)
upd: правила для отключения монитора и лочки станции
upd: правила для mute звука
Вобщем сел я наваял сервисок, который время от времени пингает мобилу, и выполняет всякие действия при наличии/отсутствии пинга. Например выставить away в аське или запустить хранитель...
Скажу сразу - писалось на скорую руку, и написанного функционала мне вполне хватает и меня устраивает, хотя критика и прочее конечно принимается.
Так как у меня везде генту и вообще я заядлый гентушник, то все в терминах генту.
Для начала что нам понадобится.
1. Собственно bluetooth свисток.
2. Что-ть типа телефона с включенным блутузом.
Это я думаю понятно :)
3. Как настроить блутуз - читаем тут
Собственно из всего этого надо чтобы работало l2ping из пакета net-wireless/bluez-utils
Логика работы: Запускается бесконечный цикл, в котором l2ping пинает девайс с маком $mac с интервалом между попытками пинга в $interval.
mac можно узнать, запустив hcitool scan
mac и interval задаются в /etc/btradar/btradar.conf Также в этом файле задается пользователь, под именем которого запускается этот цикл. Я эту переменную передаю еще и в dcop
При обнаружении устройства (и при отсутствии файла $flagfile) создается файл $flagfile и запускается скрипт /etc/btradar/device_found.sh. Соответственно, при отсутствии пинга и наличии файла $flagfile запускается скрипт /etc/btradar/device_not_found.sh и удаляется $flagfile. Все очень просто.
В зависимостях init скрипта /etc/init.d/btradar есть init скрипт /etc/init.d/bluetooth, тоесть при остановке /etc/init.d/bluetooth остановится и наш скрипт. А если все сделано правильно, то остановка /etc/init.d/bluetooth происходит при вытаскивании свистка из usb.
Все очень просто. Этим мне линух и нравится, что можно добиться неплохого результата, приложив небольшие усилия.
Насчет device_(not_)?found.sh
тем, кто пользует КДЕ - повезло. Есть у нее(только у нее?) замечательный сервис dcop, предназначеный для управления софтом из консоли. Например `dcop amarok playlist getTotalTrackCount` вернет количество треков в текущем плейлисте.
Узнать комманды несложно. Сначала запускаем dcop без параметров - вывалится список доступного. Выбираем чтонибудь нужное, добавляем к dcop (dcop amarok), смотрим следующий список и так далее. Я думаю - разберетесь.
Сервис находится в репозитории Linux-community Scripts Collection, здесь написано что да как :)
Вот вроде бы и все...
Жду комменттариев :)
upd: правила для отключения монитора и лочки станции
upd: правила для mute звука

