I am using xbindkeys to bind Alt+left and Alt+right to chvt in order to cycle through virtual terminals, as described here. I modified the arithmetic to be modular with respect to the number of virtual terminals available (six). I launch an xbindkeys daemon for each instance of a window manager (e.g., before starting dwm on tty1 and likewise for openbox on tty2); i.e., each tty has its own xbindkeys instance.
Apparently, xbindkeys can only detect nascent key press events, and not residually held keys. Thus, if I press Alt+right from tty1 to switch to tty2 and then want to continue on to tty3, I must release both keys and re-press both to advance. With non-X ttys, I can either hold both keys or keep Alt depressed while tapping the arrow key. Can this functionality (i.e., key-press memory) be replicated with xbindkeys? Since I apparently need multiple instances (one per WM, as stated), and the program (xbindkeys) appears to detect nascent key press events rather than held keys, it may not be possible. Any workarounds would be appreciated.