This implementation has several problems.
1) It only really deals with Latin1 characters. This is the same as the
Windows implementatino.
2) It doesn't handle modifier keys at all. This is also a problem with
the Win implementation.
This is an interim solution until a unified strategy can be made for
both Windows/Linux.