shadow: hook X11 input