Because `casper.trigger_keydown` has to rely on calls to `IPython.keyboard...` and basically has to reimplement the logic of `IPython.keyboard.trigger_keydown` I actually think it makes sense to put `IPython.keyboard.trigger_keydown` back into place. If the `casper.trigger_keydown` version didn't need to make calls back into al the stuff in `keyboard` I would feel differently, but in this case I think this refactoring makes it less clear. Are you OK with this @minrk ?