Add hardware keyboard support.

Fixes #19