Template:Keystroke/doc
The {{keystroke}} template is designed to illustrate keys and keystrokes on a computer keyboard, and is a slight modification of the template Key press in Wikipedia (en). It is especially useful when creating help pages or documentation.
{{keystroke}} works similar to {{kbd}}, but have some additional options:
- Multiple key name input, giving one template call for up to ten keys in a single combination.
- Unicode symbols for keys that always or at least sometimes lack textual identification, for different OSs.
- Wikilinking to the articles on the keys in Wikipedia (en).
- Japanese and Korean language input keys.
Contents
Parameters
There is 1 required parameter, and 9 optional ones, all unnamed. The syntax for {{keystroke}} is:
{{keystroke|key1 |key2 |key3 |key4 |key5 |…|key10 }}
Required parameter
1 (unnamed)
- Key name
Entering at least one parameter is required for the template to work.
If this parameter is left out, the template will break and display an error message.
- Example
key1 }} | → | key1 |
- Usage
{{keystroke|1}}
Optional parameters
2–10 (unnamed)
- Additional key names
To create a keystroke combination, use the first parameter with the parameters 2 through 10. The displayed keys will be separated by plus signs.
The template can take up to 10 key name parameters to display keystroke combinations. If you enter 11 or more key names, it will display an error message.
- Example
key1 |key2 }} | → | key1+key2 |
- Usage
{{keystroke|1|2|3|4|5|…|10}}
Letters and other case-dependant characters
For clarity, you should always use the same case on your virtual key, as the equivalent character on your keyboard. That usually means using uppercase letters, even when describing input of lowercase letters.
- Example
To describe how to type the lowercase letter a:
A}} | → | A |
Hence, to describe how to enter an uppercase letter, you should combine the letter with the appropriate modifier key (usually ⇧ Shift).
- Example
Describing how to type the uppercase letter A:
shift|A}} | → | ⇧ Shift+A |
Wiki markup characters
Some wiki markup characters, like the pipe symbol (|), the semicolon (;) and the equals sign (=), need to be entered using templates, HTML entities, or the character aliases that have been created for this template (see the table under Available values below). It's recommended to use the aliases in order to make the wikicode easier to read.
However, if the characters are marked as wikilinks, they can be entered as such.
- Example
[[;]]}} | → | ; |
Unicode symbols and wikilinking
Some keys have an option of being displayed with just text, with a symbol & text, with wikilinked text, or with a symbol & wikilinked text.
Unicode symbols
For keys that can be optionally fitted with a symbol, the symbol is inserted by appending "-uc" to the end of the value string.
Keys that more often than not have a symbol instead of text, e.g. the Windows key (Win), will always show with both the symbol and text. And keys such as arrow keys, punctuation characters, etc. only show the symbol. There are no characters for the Windows key (due to copyrights) and the Menu key. Instead, this template shows approximate characters for them.
- Examples
space}} | → | Space bar |
space-uc}} | → | ␣ Space bar |
win}} | → | ⊞ Win |
- Unicode symbols in the template
Modifier keys | Alphanumeric keys | Lock keys | |||||
---|---|---|---|---|---|---|---|
Key | Unicode symbol |
Key | Unicode symbol |
Key | Unicode symbol | ||
Alt | ⎇ |
Backspace | ← |
Caps Lock | ⇪
| ||
Command (Cmd) | ⌘ |
Enter | ↵ |
Number Lock | ⇭
| ||
Compose | ⎄ |
Enter (Mac) | ⌤ |
Scroll Lock | ⇳
| ||
Control (Ctrl) | ⎈ |
Spacebar | ␣ |
||||
Meta | ◆ |
Tabulator (Tab) | ↹
| ||||
Option (Opt) | ⌥ |
||||||
Shift | ⇧
| ||||||
Win | ⊞
| ||||||
Cursor keys | System command keys | Miscellaneous | |||||
Key | Unicode symbol |
Key | Unicode symbol |
Key | Unicode symbol | ||
Up | ↑ |
Escape (Esc) | ⎋ |
Korean Won | ₩
| ||
Down | ↓ |
Menu | ≣ |
||||
Left | ← |
Print Screen | ⎙
| ||||
Right | → |
Wikilinks
Some keys can be wikilinked to make them link to the character's/key's English Wikipedia article. That is acheived by enclosing the value string in double brackets, i.e. by wikilinking them.
- Example
[[space]]}} | → | Space bar |
- Both symbol and wikilink
You can of course combine the two features described above.
- Examples
[[space-uc]]}} | → | ␣ Space bar |
[[win]]}} | → | ⊞ Win |
Available values
Alphanumeric keys
Group | Key | Value | Notes | |||
---|---|---|---|---|---|---|
Text | Link | Symbol + text | Symbol + link | |||
Letters | A–Z | A–Z |
||||
a–z | a–z |
Avoid lowercase, if possible | ||||
Other letters | (as above) |
|||||
Digits | 0–9 | 0–9 |
||||
Other digits | (as above) |
|||||
Punctuation | Colon | colon |
[[colon]] |
|||
Semicolon | semicolon |
[[semicolon]] |
||||
Spacebar | space |
[[space]] |
space-uc |
[[space-uc]] |
Cursor keys
Group | Key | Value | Notes | ||||
---|---|---|---|---|---|---|---|
Text | Link | Symbol + text | Symbol + link | ||||
Deletion | Backspace | backspace |
[[backspace]] |
||||
Delete | del |
[[del]] |
Short name | ||||
delete |
[[delete]] |
Long name | |||||
Insert | insert |
[[insert]] |
|||||
Locking | Caps Lock | caps |
[[caps]] |
caps-uc |
[[caps-uc]] |
||
Num Lock | num |
[[num]] |
num-uc |
[[num-uc]] |
|||
Scroll Lock | scroll |
[[scroll]] |
scroll-uc |
[[scroll-uc]] |
|||
Navigation | Arrows | Down | down |
[[down]] |
No text | ||
Left | left |
[[left]] |
No text | ||||
Right | right |
[[right]] |
No text | ||||
Up | up |
[[up]] |
No text | ||||
End | end |
[[end]] |
|||||
Home | home |
[[home]] |
|||||
Page Down | pgdn |
[[pgdn]] |
|||||
Page Up | pgup |
[[pgup]] |
|||||
Tabulator | tab |
[[tab]] |
Short name | ||||
tabulator |
[[tabulator]] |
Long name |
Modifier keys and letters
- Modifier keys
Key | Value | Notes | |||
---|---|---|---|---|---|
Text | Link | Text + symbol | Link + symbol | ||
Alt | alt |
[[alt]] |
alt-uc |
[[alt-uc]] |
|
Alt Gr | altgr |
[[altgr]] |
|||
Command (Cmd) |
command |
[[command]] |
Long name | ||
cmd |
[[cmd]] |
Short name | |||
Compose | compose |
[[compose]] |
compose-uc |
[[compose-uc]] |
|
Control (Ctrl) |
control |
[[control]] |
control-uc |
[[control-uc]] |
Long name |
ctrl |
[[ctrl]] |
ctrl-uc |
[[ctrl-uc]] |
Short name | |
Enter | enter |
[[enter]] |
|||
entermac |
[[entermac]] |
Some Mac keyboards | |||
Fn | fn |
[[fn]] |
|||
Meta | meta |
[[meta]] |
meta-uc |
[[meta-uc]] |
|
Option (Opt) |
option |
[[option]] |
Long name | ||
opt |
[[opt]] |
Short name | |||
Shift | shift |
[[shift]] |
|||
Windows (Win) |
windows |
[[windows]]}} | Long name | ||
win |
[[win]]}} | Short name |
- Modifier letters (dead keys)
Modifier letters, or dead keys, are the keys on your keyboard, that are used to combine, for example, diacritic marks (umlaut, accents, circumflex, etc.) with matching letters. When such a key is pressed, nothing seems to happen, hence the term "dead key". Diacritics are used in many languages, and most localized keyboard layouts have a set of the commonmost ones for the locale and the nearby regions, together with special, precomposed letters.
Producing a diacritic letter is done by first pressing the letter modifier with the diacritic you want, and then the letter onto which the diacritic should be inserted.
- Examples
^+E | → | ê |
^+⇧ Shift+E | → | Ê |
If you want to type only the diacritic, you press its key and then press the spacebar.
- Example
^+␣ Space bar | → | ^ |
Characters, letters or diacritic marks that aren't featured on your keyboard have to be entered using HTML entities or, if you have a numeric keypad, Alt codes.
- Examples
© (decimal HTML character entity) |
→ | © | |
Alt+0169 (unicode value) | → | © | |
Alt+Num+00A9 (hexadecimal unicode value) | → | © |
NB! Alt codes can usually only be entered via the numeric keypad, i.e. not by using the row of digits above the letter keys.
System command keys
Key | Value | Notes | |||
---|---|---|---|---|---|
Text | Link | Text + symbol | Link + symbol | ||
Break | break |
[[break]] |
Also called Pause (see below) | ||
Escape (Esc) |
escape |
[[escape]] |
escape-uc |
[[escape-uc]] |
Long name |
esc |
[[esc]] |
esc-uc |
[[esc-uc]] |
Short name | |
Menu | menu |
[[menu]] |
|||
Pause | pause |
[[pause]] |
Also called Break (see above) | ||
Print screen (Prt Sc) |
printscreen |
[[printscreen]] |
printscreen-uc |
[[printscreen-uc]] |
Long name |
prtsc |
[[prtsc]] |
prtsc-uc |
[[prtsc-uc]] |
Short name | |
System Request (SysRq) |
systemrequest |
[[systemrequest]] |
Long name | ||
sysrq |
[[sysrq]] |
Short name |
Language input keys
- Japanese
Key | Value | Notes | |||
---|---|---|---|---|---|
Text | Link | Text + symbol | Link + symbol | ||
Conversion (henkan) |
henkan |
Same output | |||
conversion |
|||||
Non-Conversion (muhenkan) |
muhenkan |
Same output | |||
nonconversion |
|||||
Half-width (hankaku) |
hankaku |
Same output | |||
half |
|||||
Full-width (zenkaku) |
zenkaku |
Same output | |||
full |
|||||
Kanji | kanji |
||||
Half-width/Full-width (hankaku/zenkaku) |
haze |
Same output | |||
halffull |
|||||
Half-width/Full-width/Kanji (hankaku/zenkaku/kanji) |
hazeka |
||||
Katakana | kata |
||||
Hiragana | hira |
||||
Rōmaji | roma |
||||
Katakana/hiragana | kahi |
||||
Katakana/hiragana/rōmaji | kahiro |
||||
Alphanumeric (eisū) |
eisu |
Same output | |||
alphanumeric |
- Korean
Key | Value | Notes | |||
---|---|---|---|---|---|
Text | Link | Text + symbol | Link + symbol | ||
Hangul | hangul |
||||
Yeong | yeong |
||||
Hangul/yeong | ha/ye |
With forward slash | |||
haye |
Without forward slash | ||||
Hanja | hanja |
Korean text | |||
hanjach |
Chinese text | ||||
Won | wonsign |
Only the symbol, no text | |||
wonen |
English text | ||||
wonko |
Korean text |
Markup character substitutes for this template
Character | Code | |||
---|---|---|---|---|
Name | Char | MozillaWiki template |
HTML entity |
Template alias |
Asterisk | * |
* | asterisk | |
Colon | : |
: | colon | |
Equals sign | = |
{{=}} |
= | equals |
Number sign | # |
# | hash | |
Pipe symbol | | |
}} | | | pipe |
Semicolon | ; |
{{;}} |
; | semicolon |
Examples
Correct use
Single keys
Case | What you type | What you see | Notes |
---|---|---|---|
Letter a | A}} | A | Use uppercase for your virtual keys |
Letter A | shift|A}} | ⇧ Shift+A | If case is important, uppercase is denoted by including the appropriate modifier key |
Letter ä | Ä}} | Ä | Direct input (e.g. on a Swedish keyboard) |
Ä}} | Ä | Using the umlaut letter modifier | |
Ä}} | Ä | Using the HTML entity | |
Symbol ↑ | up}} | ↑ | |
Symbol ₩ + korean text | wonko}} | ₩ 원 | |
Key name, long | option}} | ⌥ Option | |
Key name, short | opt}} | ⌥ Opt |
Keystroke combinations
Case | What you type | What you see | Notes |
---|---|---|---|
Two keys | alt|P}} | Alt+P | |
Three keys | ctrl|alt|del}} | Ctrl+Alt+Del |
- Line wrapping
When you feed several key names to this template, it adds a "+" with no spaces around. This means it won't line wrap. If you need the combinations to line wrap, e.g. in tables, build them one by one with spaces around the "+", or manipulate the chain template key, so they can line wrap. To insert blank characters, you have to use HTML entities; e.g. the standard space character is  
.
Case | What you type | What you see | Notes |
---|---|---|---|
One by one | ctrl}} + {{keystroke|alt}} + {{keystroke|del}} |
Ctrl + Alt + Del | |
Change chain | ctrl|alt|del|chain= + }} | Ctrl + Alt + Del | For advanced users |
- Alt codes
To illustrate Windows Alt codes, you might want to use separate templates with no intervening punctuation or space. Do that by combining the Alt with the first character (often 0) in the first template, and then creating separate templates for the last digits.
Case | What you type | What you see | Notes |
---|---|---|---|
First part | alt|0}} | Alt+0 | Provides the plus sign |
Parts 2-4 | 1}} | 1 | |
7}} | 7 | ||
7}} | 7 | ||
Resulting Alt code | alt|0}}{{keystroke|1}} {{keystroke|7}} {{keystroke|7}} |
Alt+0177 |
Japanese combined language input keys
Some of the Japanese language input keys combine several functions. In this template, they are fitted next to each other, making these keys wider than usual.
Case | What you type | What you see | Notes |
---|---|---|---|
Hankaku/zenkaku | haze}} | 半角 • 全角 | |
Hankaku/zenkaku/kanji | hazeka}} | 半角 • 全角 • 漢字 | |
Katakana/hiragana | kahi}} | カタカナ • ひらがな | |
Katakana/hiragana/rōmaji | kahiro}} | カタカナ • ひらがな • ローマ字 |
Using wikilinks
Case | What you type | What you see | Notes |
---|---|---|---|
Long name | {{keystroke|[[control]]}} |
Control | The choice of name length doesn't affect the link, it points to the same target |
Short name | {{keystroke|[[ctrl]]}} |
Ctrl | |
Just text | {{keystroke|[[scroll]]}} |
Scroll Lock | For keys with an option to show the symbol or not, see Available values above |
With symbol | {{keystroke|[[scroll-uc]]}} |
⇳ Scroll Lock |
Incorrect use
Wikilinking non-linked keys
Case | What you type | What you see | Notes |
---|---|---|---|
Any non-linked key | {{keystroke|[[A]]}} |
A | Keys that aren't fitted with links in {{keystroke/core}} will link to a page with that name inside MozillaWiki, if it exists |
External links | {{keystroke|[http://en.wikipedia.org/wiki/A A]}} |
A | External links will show the symbol used by MediaWiki for such links; not recommended, due to cluttering |
Input errors
- Template-breaking errors
Case | What you type | What you see | Notes |
---|---|---|---|
No parameter | {{keystroke}} |
Error in {{keystroke}}: No parameter specified. You have to enter at least one key name. | The 1st parameter is required; without it, the template will break |
Empty 1st parameter | {{keystroke|}} |
Error in {{keystroke}}: No parameter specified. You have to enter at least one key name. | |
{{keystroke||2|3|4}} |
Error in {{keystroke}}: No parameter specified. You have to enter at least one key name. | ||
10 key names | {{keystroke|1|2|3|4|5|6|7|8|9|10}} |
1+2+3+4+5+6+7+8+9+10 | As noted above, ten entries works fine, but … |
≥ 11 key names | {{keystroke|1|2|3|4|5|6|7|8|9|10|11}} |
Error in {{keystroke}}: Too many keys. The template can't handle combinations of more than 10 keys. | … eleven or more entries will cause an error |
- Fallbacks
Case | What you type | What you see | Notes |
---|---|---|---|
Empty 2nd–11th parameter | {{keystroke|1|2||4|5}} |
1+2+4+5 | You can leave a parameter empty if it is … a) surrounded by other parameters, or b) an empty last parameter The template will fall back to displaying the correctly entered parameter values |
{{keystroke|1|2|3|4|}} |
1+2+3+4 | ||
{{keystroke|1|2|3|4||}} |
1+2+3+4 | ||
{{keystroke|1|2|3|4|5|6|7|8|9|10|}} |
1+2+3+4+5+6+7+8+9+10 | ||
{{keystroke|1|2|3|4|5|6|7|8|9|10||}} |
1+2+3+4+5+6+7+8+9+10 |
Technical details
This template calls {{keystroke/core}}, which holds the code that otherwise would be repeated several times in {{keystroke}}, thus simplifying the code.
See also
- {{kbd}} – Produces a different visual effect, without unicode symbols