Template:Key press/doc

This is the key press template primarily designed to illustrate keys and keystrokes on a computer keyboard. With additional parameters, a single template can even illustrate a combination of multiple simultaneous keystrokes. A sequence of keystrokes, on the other hand, need to be demonstrated with separate templates.

Example
 * → A

As lower-case alphabetic characters a–z do not appear on most keyboards, they should not be used as parameters.

Keystroke combinations
To illustrate keystroke combinations, just use extra parameters:
 * → Alt
 * → Ctrl

When you feed several key names to this template, it adds a "+" (or whatever the contents of the optional chain parameter) with no spaces around. This means it won't line wrap. But when you show key combinations for instance in a table that might cause items to be too wide. Instead manually build the key combination with spaces around the "+" so it can line wrap:
 * + +  → Ctrl + Alt + Del
 * → Ctrl

To illustrate sequences where all keys do not need to be pressed simultaneously, the plus signs can be omitted by setting chain=. For example, in most Windows systems in North America and Western Europe, Alt codes can be used to insert the plus-minus sign (±) by holding down the Alt key while typing  with the numeric keypad:
 * → Alt1

An example of a use case where more than 5 might be used is explaining usage of a macro (keyboard shortcut) created by a third-party application:
 * → Ctrl

Wikilinks
If there is an article about the key you can wikilink the key's name like any other wiki text. Like this:
 * → Alt

If you are wikilinking the keys, please ensure that you are piping to the correct page (e.g.  instead of , which leads to a disambiguation page).

Wiki markup characters
Some wiki markup characters, like the pipe symbol “”, the semicolon “;” and the equals sign “=”, need to be entered using the,  and  templates or as an HTML entity &#124; (&#x7C;), &#59; (&#x3B;), &#61; (&#x3D;) respectively:
 * → &#124;
 * → &#59;
 * → &#61;
 * → &#59;
 * → &#61;
 * → &#61;

However, if the characters are marked as wikilinks, they can be entered as such:

Most markup characters also have alias templates:
 * → pipe
 * → semicolon
 * → equals
 * → colon
 * → asterisk
 * → hash

Key symbols
Some key names have a fitting Unicode character. This template automatically adds such "icons" to the following key names among others.
 * → Shift
 * → Tab
 * → Enter
 * → Option
 * → Opt
 * → Command
 * → Cmd
 * → Caps Lock
 * → Up
 * → Down
 * → Left
 * → Right

There are no characters for the Windows key and Menu key. So this template shows approximate characters for them, namely the and  from the Mathematical Operators Unicode block:
 * → Win
 * → Menu

In some cases, the automatic recognition of tokens and consequently the addition of symbols may not be desired; in these cases the token recognition can be suppressed by HTML encoding the text, e.g.  will give &#x45;nter (plain text) instead of Enter (token).

Video games
Video game controllers often have specialized input labels that do not map easily. The following are mappings for various game consoles and input features.

Directional input
The following should only be used when the input sequence uses something other than the primary input or mixes input between directional devices.
 * → l-down
 * → c-left
 * → r-up

Stick specific diagonals are also supported:
 * → l-nw
 * → c-se
 * → r-ne

PlayStation

 * → ex
 * → circle
 * → triangle
 * → square

TemplateData
{ "description": "Illustrates keys and keystrokes on a computer keyboard. Keys can include: Ctrl, Alt, Del, Opt, Menu, Left etc. console keys: ex, circle, triangle, square, and left right and center analog sticks: l-down, c-left, r-ne. The names are case insensitive.", "params": { "1": { "label": "First key", "description": "First key", "type": "string/line", "required": true }, "2": { "label": "Second key", "description": "Optional key press in combination as the first.", "type": "string/line", "required": false }, "3": { "label": "Third key", "inherits": "2" }, "4": { "label": "Fourth key", "inherits": "2" }, "5": { "label": "Fifth key", "inherits": "2" }, "6": { "label": "Sixth key", "inherits": "2" }, "7": { "label": "Seventh key", "inherits": "2" }, "8": { "label": "Eighth key", "inherits": "2" }, "9": { "label": "Ninth key", "inherits": "2" }, "10": { "label": "Tenth key", "inherits": "2" }, "chain": { "label": "Chaining character", "description": "Character between chained key presses", "default": "+", "inherits": "2" }, "chain first": { "description": "Character between first and second key to press", "inherits": "chain" }, "chain second": { "description": "Character between second and third key to press", "inherits": "chain" }, "chain third": { "description": "Character between third and fourth key to press", "inherits": "chain" }, "chain fourth": { "description": "Character between fourth and fifth key to press", "inherits": "chain" } } }