I have a bluetooth remote that is paired with my linux box, when active, this remote is visible at /dev/input/event13
.
I have a small C program that open
this device and read directly from it, which works fine.
Now, my problem is that this remote goes to sleep after a few minutes of inactivity and /dev/input/event13
disappears. It reappears as soon as I press a key on my remote.
I put the output of udevadm
here: https://gist.github.com/9fff2f0d7edef1050060.
I use the following code (small ruby ext I wrote), to read from the device: https://gist.github.com/b403d538eb6a8627e2bd.
I thought of writing an udev
rule that would start my program when my remote is added and stop it when it is removed. I read the udev
documentation, but I couldn't figure it out how to do it. I'm open for suggestion.
After some digging and a lot of frustration I did the following:
I put into /etc/udev/rules.d/99-rmote.rules
KERNEL=="event*", SUBSYSTEM=="input", ACTION=="add|remove", ATTRS{name}=="TiVo Keyboard Remote", RUN+="/home/kuon/handleConnect.rb"
And in handleConnect.rb
I check the ACTION
environment variable and I start/stop my daemon accordingly. Quite simple in the end and it works well.