Now that I can translate keyboard EV_KEY events, why not see if I can do something with my Kensington Presenter remote.


[Linked Image from i.imgur.com]


It will generate KEY_F5 on the top button (along with the laser), KEY_PAGEUP and KEY_PAGEDOWN on the left and right arrows and KEY_B on the down button.

Running evtest shows me what keys get generated:

Code
Testing ... (interrupt to exit)
Event: time 1616993982.490214, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70005
Event: time 1616993982.490214, type 1 (EV_KEY), code 48 (KEY_B), value 1
Event: time 1616993982.490214, -------------- SYN_REPORT ------------
bEvent: time 1616993982.578213, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70005
Event: time 1616993982.578213, type 1 (EV_KEY), code 48 (KEY_B), value 0
Event: time 1616993982.578213, -------------- SYN_REPORT ------------
Event: time 1616993986.546284, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7004b
Event: time 1616993986.546284, type 1 (EV_KEY), code 104 (KEY_PAGEUP), value 1
Event: time 1616993986.546284, -------------- SYN_REPORT ------------
^[[5~Event: time 1616993986.626288, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7004b
Event: time 1616993986.626288, type 1 (EV_KEY), code 104 (KEY_PAGEUP), value 0
Event: time 1616993986.626288, -------------- SYN_REPORT ------------
Event: time 1616993988.298314, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7004e
Event: time 1616993988.298314, type 1 (EV_KEY), code 109 (KEY_PAGEDOWN), value 1
Event: time 1616993988.298314, -------------- SYN_REPORT ------------
^[[6~Event: time 1616993988.386320, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7004e
Event: time 1616993988.386320, type 1 (EV_KEY), code 109 (KEY_PAGEDOWN), value 0
Event: time 1616993988.386320, -------------- SYN_REPORT ------------
Event: time 1616994002.586570, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7003e
Event: time 1616994002.586570, type 1 (EV_KEY), code 63 (KEY_F5), value 1


so if I translate KEY_PAGEUP to KEY_SPACE and KEY_B to KEY_F11 I can pause the video I'm watching in firefox and toggle fullscreen. I could translate F5 to something but I don't want to activate the laser pointer.
Code
int translatetable[] = { 
KEY_PAGEUP, KEY_SPACE,
KEY_B, KEY_F11,
KEY_PAGEDOWN, KEY_SPACE
}

Code
sudo ./test6keypos /dev/input/by-id/usb-Kensington_Wireless_Presenter_with_Laser_Pointer-event-kbd 

parameters 2
parameter 0 = ./test6keypost
parameter 1 = /dev/input/by-id/usb-Kensington_Wireless_Presenter_with_Laser_Pointer-event-kbd
Reading From : Kensington Wireless Presenter with Laser Pointer 
Getting exclusive access: SUCCESS
104 => 57
48 => 87
109 => 57
Press ESC to exit
readval=24  ev type=1  key in=48  => button out=87 value=1
readval=24  ev type=1  key in=48  => button out=87 value=0
readval=24  ev type=1  key in=48  => button out=87 value=1
readval=24  ev type=1  key in=48  => button out=87 value=0
readval=24  ev type=1  key in=48  => button out=87 value=1
readval=24  ev type=1  key in=48  => button out=87 value=0
readval=24  ev type=1  key in=104  => button out=57 value=1
readval=24  ev type=1  key in=104  => button out=57 value=0

I've got a USB foot pedal for transcription around here somewhere, I think I could make that work too by translating keys to something useful.