thd или triggerhappy global hotkey daemon

О чем тут речь? Автоматизированные USB кнопки на headless сервере за 200 рублей, а то и дешевле.Вводная часть: Дома есть «домашний» сервер. Этакая коробочка Lenovo q190 размером чуть более чем DVD box. Ещё есть МФУ samsung SCX-4220. Работает это все на ubuntu 14.04 LTS, прекрасно печатает через CUPS, прекрасно сканирует, но вот с автоматизацией не очень.

Печаль: Дело в том, что на самсунге нет отдельной кнопки сканировать на копьютер, которую бы можно было перехватить и скриптом запустить скан.

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

USB 7.1 channel sound.

USB 7.1 channel sound

Такие звуковушки лежат почти в каждом магазине по 200 рублей пучок. О думаю, а что если китайцы + кнопки и это клавиатура? Дай-те ко мне одну?

Реализация: Купил, подключил к headless q190 и стал смотреть вывод

$ lsusbBus 001 Device 005: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller

Печально, думаю, но решил посмотреть, что ещё и в dmesg нашлось?

hid-generic 0003:0D8C:013C.0002: input, hidraw0: USB HID v1.00 Device [C-Media Electronics Inc. USB PnP Sound Device] on usb-0000:00:1a.0–1.4/input3

О, то что доктор прописал. Отлично!

Кнопки звуковой карты это таки маленькая USB клавиатура. То что мне нужно.

THD: github.com/wertarbyte/triggerhappy

В убунту 14.04 он есть «искаропки».

$ apt-get install thd

Настройка:$ cat /etc/triggerhappy/triggers.d/brj.confKEY_VOLUMEDOWN 1 /home/brj/bin/scanme.shKEY_VOLUMEUP 1 /home/brj/grab-torrent.sh

По клавише vol down — запускается сканированиемПо клавише vol up — торентилка забирает свежие файлы и начинает скачку.

Скрипт запускающий сканирование:

#!/bin/shoutscan=«scan-`date +»%Y-%m-%d-%H%M%S»`«scanimage --progress --mode Color --format=tiff --resolution 300 > /tmp/image.tiffconvert /tmp/image.tiff /home/brj/Dropbox/${outscan}.jpgrm /tmp/image.tiff

Практическая работа: первое время дополнительно повесил звуки из super mario и mpg123, что бы знать — работает или нет. Система работает исправно, поэтому убрал.

Где ещё использовать? Такая штука ограничена только воображением и количеством кнопок. Можно интернеты переключать на резервный канал, сканировать, перегружать сервера/сервисы, делать архивацию на внешний винт, вообщем на что хватит фантазии то и автоматизировать.

Успехов

© Habrahabr.ru