The only problem is the nature of the main player program, as it is running in real-time mode, which means that button-presses can sometimes lag a few seconds...
Maybe if we try to run intercept in real-time we can get some benefits...


You can get around this by doing the interception in the kernel. Intercepting and generating double clicks and holds is somewhat tricky but still doable.

Another problem with doing this outside of the player app is that it'll be very hard to keep track of what context the player is in. For example, if you reprogram a single click of the top button to do something different than "pause" (by translating it to a different key code), you still want it's default behaviour when you are in the menus, so that you can navigate them normally.

Borislav