入力デバイスイベントでシェルスクリプトを実行する方法

入力デバイスイベントでシェルスクリプトを実行する方法

キーボードとして表示されるUSBリモートプレゼンターがあります。

を使用すると、evtestデバイスから着信入力イベントを表示できます。

シェルスクリプトでこれらのイベントをどのようにキャプチャできますか?

私はいくつかの解決策が使用されているのを見ましたが、可能な場合にのみ使用される解決策をC好みます。bash

私はいくつか試しましたが、xbindkeysキーボードイベントもキャプチャされるので、望ましくありません。

私もいくつかの内容を読んでudev rulesいますが、これらのルールはプラグアンドプラグイベントにのみ役に立つようです。

ベストアンサー1

@paulequilibrio 投稿ありがとうございます。 mi IRリモートは、Ubuntu 18.04でlircなしでRhythmboxで動作するようにスクリプトを変更して、自動実行の驚異を追加しました。

device='/dev/input/by-id/usb-Formosa21_Beanbag_Emulation_Device_000052F1-event-if00'

#key_playpause='*type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1*'
key_stop='*type 1 (EV_KEY), code 128 (KEY_STOP), value 1*'
key_next='*type 1 (EV_KEY), code 407 (KEY_NEXT), value 1*'
key_previous='*type 1 (EV_KEY), code 412 (KEY_PREVIOUS), value 1*'

sudo evtest "$device" | while read line; do
    case $line in
#       ($key_playpause)    notify-send "Play/Pause" && rhythmbox-client --playpause ;;
        ($key_stop)     notify-send "Stop" && rhythmbox-client --stop ;;
        ($key_next)     notify-send "Next" && rhythmbox-client --next ;;
        ($key_previous)     notify-send "Previous" && rhythmbox-client --previous ;;
    esac
done

おすすめ記事