keyboard_key_press not implemented in Linux?

Reporter: 9Morello  |  Status: open  |  Last Modified: May 15, 2017, 02:07:06 PM

Hello. Is keyboard_key_press working on Linux? It highlights it in the editor, but fails when compiling:

SHELLmain.cpp:(.text+0x7836): undefined reference to `enigma_user::keyboard_key_release(int)'
/home/ug/.enigma/.eobjs/Linux/Linux/Run/SHELLmain.o: In function `enigma::OBJ_obj_seamless::myevent_roomstart()':
SHELLmain.cpp:(.text+0xe7a5): undefined reference to `enigma_user::keyboard_key_press(int)'
collect2: error: ld returned 1 exit status
Makefile:117: recipe for target 'compile_game' failed
make[1]: *** [compile_game] Error 1
make[1]: Leaving directory '/home/ug/enigma-dev/ENIGMAsystem/SHELL'
Makefile:12: recipe for target 'Game' failed
make: *** [Game] Error 2

The wiki page says it may be unimplemented in some platforms.

It most likely is not. Poking around the source for xdotool, it seems the operative function for this is XTestFakeKeyEvent. You can probably implement that function yourself, in one of the X11 sources. The only trick is reusing our existing keycode map, or just translating the given character to an X11 keycode. I can't remember how to do that off the top of my head, or I'd probably just edit the file on GitHub right now.

Don't you mean keyboard_check_pressed()? Last I checked, all the standard keyboard functions were working on Linux.


No, I actually do mean the keyboard_key_press and keyboard_key_release functions.

I do not know if this is Linux specific or not. I tested it in a Debian Jessie VM.

Please sign in to post comments, or you can view this issue on GitHub.