Keyboard layout
A keyboard layout is any specific physical, visual, or functional arrangement of the keys, legends, or key-meaning associations (respectively) of a computer keyboard, mobile phone, or other computer-controlled typographic keyboard.
This article is about the physical and visual arrangement of the keys of a computer keyboard and their function as defined by software. For the underlying physical structure and electronic mechanisms of computer keyboards, see Keyboard technology. For keyboards used in music, see Musical keyboard.
Physical layout is the actual positioning of keys on a keyboard. Visual layout is the arrangement of the legends (labels, markings, engravings) that appear on those keys. Functional layout is the arrangement of the key-meaning association or keyboard mapping, determined in software, of all the keys of a keyboard; it is this (rather than the legends) that determines the actual response to a key press.
Modern computer keyboards are designed to send a scancode to the operating system (OS) when a key is pressed or released: this code reports only the key's row and column, not the specific character engraved on that key. The OS converts the scancode into a specific binary character code using a "scancode to character" conversion table, called the keyboard mapping table. This means that a physical keyboard may be dynamically mapped to any layout without switching hardware components—merely by changing the software that interprets the keystrokes. Often,[a] a user can change keyboard mapping in system settings. In addition, software may be available to modify or extend keyboard functionality[b]. Thus the symbol shown on the physical key-top need not be the same as appears on the screen or goes into a document being typed. Modern USB keyboards are plug-and-play; they communicate their (default) visual layout to the OS when connected (though the user is still able to reset this at will).
Layout changing software[edit]
The character code produced by any key press is determined by the keyboard driver software. A key press generates a scancode which is interpreted as an alphanumeric character or control function. Depending on operating systems, various application programs are available to create, add and switch among keyboard layouts. Many programs are available, some of which are language specific.
The arrangement of symbols of specific language can be customized. An existing keyboard layout can be edited, and a new layout can be created using this type of software.
For example, Ukelele [sic] for Mac,[119] AutoHotkey or The Microsoft Keyboard Layout Creator[120] for Windows, and open-source Avro Keyboard provide the ability to customize the keyboard layout as desired.