Keyboard support

This is WIP and targets #263, #314
@TheNeikos ?

I guess not...