Okay. I've worked out what the problem was.
I'm a little bit more fussy on checking the return codes of the ioctls and it was dying because it couldn't bind the buttons. This always fails for some reason.
A workaround would be to have your launcher program bind all of the available buttons so that it can pass them onto the user app it launches. The viewer program works because it doesn't check the return codes and it also happens to use the same set of buttons that you do. Haven't had the time to work out why exactly since I'm technically supposed to be working...
I'll put a fixed version of empsoko up in a bit. Still trying to find out why empsoko isn't getting the "-l" argument to run in launcher mode though.
- Trevor