Turns out that I didn't need to make a directive to capture keydown, Angular 1.1.x can do that now, so I do, and I make an attempt to convert the keycode to a char just for testing. I haven't quite found how that should work yet, "normal" letter keys seem to have keyCodes corresponding to the Unicode code point (same as ASCII), and that's all I am going to care about. The spec says "key" and "char" properties should exist but they don't seem to be implemented by browsers.