An IBusKeymap defines the mapping between keyboard scancodes and keyboard symbols such as numbers, alphabets, and punctuation marks.
Some input methods assume certain keyboard layout (such as Chewing and Wubi requires an US-QWERTY layout), and expect key symbols to be
arranged in that order. These input methods should new an IBusKeymap instance and define the keyboard layout. Then
lookup_keysym can convert scancodes back to the key symbols.