I discovered that my old Logitech S510 Media Remote, a remote control can become useful with some minor changes (see [1]).
Still a lot of buttons don't work (about half of the buttons).
From debug, and the code that the Keyboard Editor add-on shows for key-presses I see that a number of keys show the same code/key-id.
E.g. key id="61952"
Key | Key id | Debug |
Open window | key id="61952" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x8b, sym: 0x0000, unicode: 0x0000, modifier: 0x0
- DEBUG: GetActionCode: Trying Hardy keycode for 0xf200DEBUG: Previous line repeats 3 times.
- DEBUG: HandleKey: 0 (0xf200, obc-61697) pressed, action is
- DEBUG: Thread Timer 140354597619456 terminating
- DEBUG: Keyboard: scancode: 0x8b, sym: 0x0000, unicode: 0x0000, modifier: 0x0
|
Select window | key id="61952" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x9a, sym: 0x0000, unicode: 0x0000, modifier: 0x0
- DEBUG: GetActionCode: Trying Hardy keycode for 0xf200DEBUG: Previous line repeats 3 times.
- DEBUG: HandleKey: 0 (0xf200, obc-61697) pressed, action is
- DEBUG: Thread Timer 139939967469312 terminating
- DEBUG: Keyboard: scancode: 0x9a, sym: 0x0000, unicode: 0x0000, modifier: 0x0
|
Close window | key id="61952" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0xce, sym: 0x0000, unicode: 0x0000, modifier: 0x0
- DEBUG: GetActionCode: Trying Hardy keycode for 0xf200DEBUG: Previous line repeats 3 times.
- DEBUG: HandleKey: 0 (0xf200, obc-61697) pressed, action is
- DEBUG: Thread Timer 139939967469312 terminating
- DEBUG: Keyboard: scancode: 0xce, sym: 0x0000, unicode: 0x0000, modifier: 0x0
|
Preset 1 | key id="61933" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x94, sym: 0x00b7, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: launch_app2_pc_icon (0xf0c1) pressed, action is ActivateWindow(Programs)
- DEBUG: Thread Timer 139939967469312 terminating
- DEBUG: Keyboard: scancode: 0x94, sym: 0x00b7, unicode: 0x0000, modifier: 0x0
|
Preset 2 | key id="61952" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x95, sym: 0x0000, unicode: 0x0000, modifier: 0x0
- DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
- DEBUG: Previous line repeats 3 times.
- DEBUG: HandleKey: 0 (0xf200, obc-61697) pressed, action is
- DEBUG: Thread Timer 139939967469312 terminating
- DEBUG: Keyboard: scancode: 0x95, sym: 0x0000, unicode: 0x0000, modifier: 0x0
|
Preset 3 | key id="61952" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0xca, sym: 0x0000, unicode: 0x0000, modifier: 0x0
- DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
- DEBUG: Previous line repeats 3 times.
- DEBUG: HandleKey: 0 (0xf200, obc-61697) pressed, action is
- DEBUG: Thread Timer 139939967469312 terminating
- DEBUG: Keyboard: scancode: 0xca, sym: 0x0000, unicode: 0x0000, modifier: 0x0
|
Back | key id="61616" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x9e, sym: 0x00a6, unicode: 0x0000, modifier: 0x0
- DEBUG: Thread Timer 139939975862016 terminating
- DEBUG: Keyboard: scancode: 0x9e, sym: 0x00a6, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: browser_back (0xf0b0) pressed, action is Back
|
OK | key id="16838669" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 250ms repeat: 33ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x1c, sym: 0x000d, unicode: 0x000d, modifier: 0x0
- DEBUG: Thread Timer 139939975862016 terminating
- DEBUG: Keyboard: scancode: 0x1c, sym: 0x000d, unicode: 0x000d, modifier: 0x0
- DEBUG: HandleKey: return (0xf00d) pressed, action is Select
|
Up | <none> | - DEBUG: CLibInputPointer:: ProcessAxis - scroll: up, event.button.x: 0, event.button.y: 25
- DEBUG: ProcessMouse: trying mouse action up
|
Down | <none> | - DEBUG: CLibInputPointer:: ProcessAxis - scroll: down, event.button.x: 0, event.button.y: 25
- DEBUG: ProcessMouse: trying mouse action down
|
Right | key id="61570" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 250ms repeat: 33ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x6a, sym: 0x0113, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: right (0xf083) pressed, action is Right
- DEBUG: Thread Timer 139941841762048 terminating
- DEBUG: Keyboard: scancode: 0x6a, sym: 0x0113, unicode: 0x0000, modifier: 0x0
|
Left | key id="61571" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 250ms repeat: 33ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x69, sym: 0x0114, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: left (0xf082) pressed, action is Left
- DEBUG: Thread Timer 139941841762048 terminating
- DEBUG: Keyboard: scancode: 0x69, sym: 0x0114, unicode: 0x0000, modifier: 0x0
|
Volum Up | key id="61625" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x73, sym: 0x00af, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: volume_up (0xf0b9) pressed, action is VolumeUp
- DEBUG: ------ Window Init (DialogVolumeBar.xml) ------
- DEBUG: Thread Timer 139940562200320 terminating
- DEBUG: Keyboard: scancode: 0x73, sym: 0x00af, unicode: 0x0000, modifier: 0x0
- DEBUG: ------ Window Deinit (DialogVolumeBar.xml) ------
|
Volum Down | key id="61624" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x72, sym: 0x00ae, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: volume_down (0xf0b8) pressed, action is VolumeDown
- DEBUG: ------ Window Init (DialogVolumeBar.xml) ------
- DEBUG: Thread Timer 139939975862016 terminating
- DEBUG: Keyboard: scancode: 0x72, sym: 0x00ae, unicode: 0x0000, modifier: 0x0
- DEBUG: ------ Window Deinit (DialogVolumeBar.xml) ------
|
Mute | key id="61623" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x71, sym: 0x00ad, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: volume_mute (0xf0b7) pressed, action is Mute
- DEBUG: Thread Timer 139941845661440 terminating
- DEBUG: Keyboard: scancode: 0x71, sym: 0x00ad, unicode: 0x0000, modifier: 0x0
- DEBUG: ------ Window Deinit (DialogVolumeBar.xml) ------
|
Zoom + | key id="16839168" | - DEBUG: Previous line repeats 1 times.
- DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
- DEBUG: Previous line repeats 3 times.
- DEBUG: HandleKey: long-0 (0x100f200, obc-16838913) pressed, action is
- DEBUG: Keyboard: scancode: 0x00, sym: 0x0000, unicode: 0x0000, modifier: 0x0
|
Zoom - | key id="16839168" | - DEBUG: Previous line repeats 1 times.
- DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
- DEBUG: Previous line repeats 3 times.
- DEBUG: HandleKey: long-0 (0x100f200, obc-16838913) pressed, action is
- DEBUG: Keyboard: scancode: 0x00, sym: 0x0000, unicode: 0x0000, modifier: 0x0
|
Rotate | key id="16839168" | - DEBUG: Previous line repeats 1 times.
- DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
- DEBUG: Previous line repeats 3 times.
- DEBUG: HandleKey: long-0 (0x100f200, obc-16838913) pressed, action is
- DEBUG: Keyboard: scancode: 0x00, sym: 0x0000, unicode: 0x0000, modifier: 0x0
|
Media | key id="61635" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0xe2, sym: 0x00b9, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: launch_media_center (0xf0c3) pressed, action is
- DEBUG: Thread Timer 139941841762048 terminating
- DEBUG: Keyboard: scancode: 0xe2, sym: 0x00b9, unicode: 0x0000, modifier: 0x0
|
Skip to the start or previous file/track/chapter | key id="61627" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0xa5, sym: 0x00b1, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: prev_track (0xf0bb) pressed, action is SkipPrevious
- DEBUG: Thread Timer 139941841762048 terminating
- DEBUG: Keyboard: scancode: 0xa5, sym: 0x00b1, unicode: 0x0000, modifier: 0x0
|
Play/Pause | key id="16838845" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0xa4, sym: 0x0155, unicode: 0x0000, modifier: 0x0
- DEBUG: Thread Timer 139939975862016 terminating
- DEBUG: Keyboard: scancode: 0xa4, sym: 0x0155, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: play_pause (0xf0bd) pressed, action is PlayPause
|
Skip to the end or next file/track/chapter | key id="61626" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0xa3, sym: 0x00b0, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: next_track (0xf0ba) pressed, action is SkipNext
- DEBUG: Thread Timer 139939975862016 terminating
- DEBUG: Keyboard: scancode: 0xa3, sym: 0x00b0, unicode: 0x0000, modifier: 0x0
|
Fast forward | key id="61626" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0xa3, sym: 0x00b0, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: next_track (0xf0ba) pressed, action is SkipNext
- DEBUG: Thread Timer 139941841762048 terminating
- DEBUG: Keyboard: scancode: 0xa3, sym: 0x00b0, unicode: 0x0000, modifier: 0x0
|
Stop | key id="61628" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0xa6, sym: 0x00b2, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: stop (0xf0bc) pressed, action is Stop
- DEBUG: Thread Timer 139941841762048 terminating
- DEBUG: Keyboard: scancode: 0xa6, sym: 0x00b2, unicode: 0x0000, modifier: 0x0
|
Rewind | key id="61627" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0xa5, sym: 0x00b1, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: prev_track (0xf0bb) pressed, action is SkipPrevious
- DEBUG: Thread Timer 139940001040128 terminating
- DEBUG: Keyboard: scancode: 0xa5, sym: 0x00b1, unicode: 0x0000, modifier: 0x0
|
Sleep | key id="61633" | - DEBUG: CLibInputKeyboard:: ProcessKey - using delay: 400ms repeat: 80ms
- DEBUG: Thread Timer start, auto delete: false
- DEBUG: Keyboard: scancode: 0x8e, sym: 0x0143, unicode: 0x0000, modifier: 0x0
- DEBUG: HandleKey: sleep (0xf0df) pressed, action is ActivateWindow(ShutdownMenu)
- DEBUG: Activating window ID: 10111
- DEBUG: ------ Window Init (DialogButtonMenu.xml) ------
- DEBUG: Thread Timer 139941841762048 terminating
- DEBUG: Keyboard: scancode: 0x8e, sym: 0x0143, unicode: 0x0000, modifier: 0x0
|