[WIP] Keyboard support

This is WIP and targets #263, #314
No, it's meant to be ordered like that so that it's easy to see the relation of `ev.code` being between `KEY_ESC` and `KEY_MICMUTE`