Applications seldom need to directly allocate a keyboard description; calling XkbGetKeyboard usually
suffices. In the event you need to create a keyboard description from scratch, however, use
XkbAllocKeyboard rather than directly calling malloc.
If XkbAllocKeyboard fails to allocate the keyboard description, it returns NULL. Otherwise, it returns a
pointer to an empty keyboard description structure. The device_spec field will have been initialized to
XkbUseCoreKbd. You may then either fill in the structure components or use Xkb functions to obtain values
for the structure components from a keyboard device.