I played around with this as per some of the suggestions in Curaga's link.
After setting up ~/.Xmodmap to match the capabilities of the remote device as per "evtest", things seemed OK:
$ xmodmap -pke
...
keycode 163 = XF86AudioNext
keycode 164 =
keycode 165 = XF86AudioPrev
keycode 166 = XF86AudioStop
...
keycode 200 = XF86AudioPlay
keycode 201 = XF86AudioPause
..nothing much happened when I pressed the buttons on the remote device:
$ sudo evtest /dev/input/event11
...
Event: time 1274287841.778370, type 1 (Key), code 163 (NextSong), value 1
Event: time 1274287841.778375, -------------- Report Sync ------------
Event: time 1274287841.833310, type 1 (Key), code 163 (NextSong), value 0
Event: time 1274287841.833314, -------------- Report Sync ------------
..but:
$ xev | sed -n 's/^.*keycode *\([0-9]\+\).*$/keycode \1 = /p' | uniq
...
keycode 144 =
.i.e. as per event11, keycode 163 is pressed, but xev sees keycode 144 as being pressed??
After modifying ~/.Xmodmap to suit, I get:
$ xev
...
KeyPress event, serial 27, synthetic NO, window 0x1600001,
root 0xac, subw 0x0, time 3401979, (-8,96), root:(1090,99),
state 0x0, keycode 144 (keysym 0x1008ff17, XF86AudioNext), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
..and things happen in rhythmbox - even if they're not what would be expected.
Very odd that xev sees something different to what is input