In Linux, keyboard definitions are text files in two specific format, one for console, and one for X. Macintosh OS X uses an XML file. Standard Windows keyboard layouts are compiled using the Windows SDK. Free keyboards for Windows can be created in Tavultesoft Keyman.
The command for setting a console keyboard has the form
The X command for setting a keyboard layout has the form
setxkbmap -layout us
where any available keyboard layout file name can be substituted for us. The X keyboard files may be found in /etc/X11/xkb/symbols/, or /usr/share/X11/xkb/symbols/, depending on the distribution used. Most of the keyboard file names are two-letter language codes, or are based on those codes.