int check = recorded_data->category != XRecordFromServer;
static int i=0;
printf("event %d [%d]!\n", i++, check);
if (recorded_data->category != XRecordFromServer) {
This code path, under normal operation, is supposed to be called. When the process is spinning, it seems to not enter xrecord_callback() at all. The events received are not key events, as is visible from this gdb extract (I compiled the package with -g):
(gdb) fin
Run till exit from #0 0x00007f187e3ab123 in __select_nocancel ()
at ../sysdeps/unix/syscall-template.S:82
0x0000000000401fb2 in record_main_loop (display=0x140b010, idle_time=0.5)
at ../../tools/syndaemon.c:413
413 ret = select(fd+1 /* =(max descriptor in read_fds) + 1 */,
(gdb) n
417 if (FD_ISSET(fd, &read_fds)) {
(gdb)
419 cbres.key_event = 0;
(gdb)
420 cbres.non_modifier_event = 0;
(gdb)
422 XRecordProcessReplies(dpy_data);
(gdb)
424 if (!ignore_modifier_keys && cbres.key_event) {
(gdb) p cbres
$1 = {modifiers = 0x1418ae0, key_event = 0, non_modifier_event = 0,
pressed_modifiers = '\000' <repeats 15 times>}
(gdb) n
428 if (cbres.non_modifier_event &&
(gdb)
434 if (disable_event) {
(gdb) p disable_event
$2 = 0
(gdb) p pad_disabled
$3 = 0
This bug annoys me greatly.
Tried your package as well. It remains silent. No debug output at all.
I don't know which changes you tried, but I've tried putting some printf() hooks within xrecord_callback(), e.g.:
cbres = (struct xrecord_ callback_ results *)closure;
int check = recorded_ data->category != XRecordFromServer;
static int i=0;
printf("event %d [%d]!\n", i++, check);
if (recorded_ data->category != XRecordFromServer) {
This code path, under normal operation, is supposed to be called. When the process is spinning, it seems to not enter xrecord_callback() at all. The events received are not key events, as is visible from this gdb extract (I compiled the package with -g):
(gdb) fin unix/syscall- template. S:82 syndaemon. c:413 modifier_ event = 0; eplies( dpy_data) ; modifier_ keys && cbres.key_event) { non_modifier_ event &&
Run till exit from #0 0x00007f187e3ab123 in __select_nocancel ()
at ../sysdeps/
0x0000000000401fb2 in record_main_loop (display=0x140b010, idle_time=0.5)
at ../../tools/
413 ret = select(fd+1 /* =(max descriptor in read_fds) + 1 */,
(gdb) n
417 if (FD_ISSET(fd, &read_fds)) {
(gdb)
419 cbres.key_event = 0;
(gdb)
420 cbres.non_
(gdb)
422 XRecordProcessR
(gdb)
424 if (!ignore_
(gdb) p cbres
$1 = {modifiers = 0x1418ae0, key_event = 0, non_modifier_event = 0,
pressed_modifiers = '\000' <repeats 15 times>}
(gdb) n
428 if (cbres.
(gdb)
434 if (disable_event) {
(gdb) p disable_event
$2 = 0
(gdb) p pad_disabled
$3 = 0
I'll keep hunting a bit.
E.