Working on keyboard support

As of right now, it won't compile (some headers get included more than
once). Working on that.