1. A method of operating a host computing device, the method comprising: communicatively coupling with a keyboard; receiving a descriptor from the keyboard, wherein the descriptor includes data representative of a language, a layout, and key mappings that describe one or more alternate functionalities of the keys, the descriptor enabling the keyboard to self-identify to the host computing device; in response to receiving the descriptor, automatically publishing in a memory on the host computing device a string accessible to the host computing device indicating the language, layout and key mappings of the keyboard and automatically determining the one or more alternate functionalities of the keys; determining whether the one or more alternate functionalities is supported by the host computing device; and in response to receiving input from the keyboard in accordance with the data from the descriptor, performing the one or more alternate functionalities upon receiving a keystroke indicating the one or more alternate functionalities, if the one or more alternate functionalities is supported by the host computing device.