German Keyboard Scancodes: MacBookPro

The MacBook Pro keyboard operates basically in three different modes, which may lead to different scancodes: normal mode, function mode and the numeric keypad mode.

The numeric keypad mode (Num) gets enabled by pressing fn+F6 and disabled by pressing F6. In the numerical keypad mode not all keys emit a scancode!

The function mode is in action as long as the fn key is pressed. In the function mode not all keys emit a scan code. Furthermore all keys, which emit a scancode in the numeric keypad mode will emit the same scancode in the function mode as in the numeric keypad mode (overlay all other keys and key combinations).

The normal mode is in action, when neither the numeric keypad nor the function mode is activated.

If a key and mode combination is not explicitly listed, the key emits the same scancode as in the normal keyboard mode. If a table cell is empty, it means, that for this key and mode combination no scancode gets emitted.

The following tables are ordered by:

In VirtualBox 3.2.10 for IntelMac the keyboard emulation is buggy and emits according to the USB HID Usage Tables specification for keyboard/keypad wrong scancodes for the ^ and < keys. They are actually swapped, i.e. the circumflex key produces scancode 100 and the < key scancode 53. 3.2.12 fixed this problem but it has still some problems wrt. keyboard handling.

Sorted by physical layout

Default Layout for German keyboards (MacBookPro 3.1)
Key [Mode] Code Lower Shift Caps Ctrl Option CapsOption Alt Notes (ASCII/UTF-8-Code)
Esc 41 Esc Esc Esc Esc Esc Esc Esc Escape (27) aka ^[
F1 58 F1 F1 F1 F1 F1 F1
F1 fn Display Brightness decrease
F2 59 F2 F2 F2 F2 F2 F2 F2
F2 fn Display Brightness increase
F3 60 F3 F3 F3 F3 F3 F3 F3
F3 fn Mute/UnMute
F4 61 F4 F4 F4 F4 F4 F4 F4
F4 fn Volume decrease
F5 62 F5 F5 F5 F5 F5 F5 F5
F5 fn Volume increase
F6 63 F6 F6 F6 F6 F6 F6 F6
F6 fn
F6 Num
83 Num ⇩ Num ⇩ Num ⇩ Num ⇩ Num ⇩ Num ⇩ Num ⇩ Numeric Keypad mode: On/Off
F7 64 F7 F7 F7 F7 F7 F7 F7
F7 fn Dual-display mode: On/Off
F8 65 F8 F8 F8 F8 F8 F8 F8
F8 fn Keyboard LEDs: On/Off
F9 66 F9 F9 F9 F9 F9 F9 F9
F9 fn Keyboard LED Brightness decrease
F10 67 F10 F10 F10 F10 F10 F10 F10
F10 fn Keyboard LED Brightness increase
F11 68 F11 F11 F11 F11 F11 F11 F11
F12 69 F12 F12 F12 F12 F12 F12 F12
Eject DVD
 
^ 53* ^ ° ^ RS Circumflex (94) degree sign (176) record separator (30) aka ^^ aka double low-9 quote (\u201E) left double quote (\u201C)
^ Num
1 30 1 ! 1 1 ¡ ¡ ¬ One (49) exclamation mark (33) inverted exclamation mark (161) not sign (172)
1 Num
2 31 2 " 2 2 Two (59) double quotes (34) left double quote (\u201C) right double quote (\u201D)
2 Num
3 32 3 § 3 3 # Three (51) section sign (167) paragraph sign (183) # (35)
3 Num
4 33 4 $ 4 4 ¢ ¢ £ Four (52) dollar sign (36) cent sign (162) pound sign (163)
4 Num
5 34 5 % 5 5 [ [ Five (53) percent sign (37) opening bracket (91) ligature fi (\uFB01)
5 Num
6 35 6 & 6 6 ] ] ^ Six (54) ampersand (38) closing bracket (93) Circumflex (94)
6 Num 83 Esc Esc Esc Esc Esc Esc Esc Escape (27)
7 36 7 / 7 7 | | \ Seven (55) slash (47) vertical bar (124) backslash (82)
7 Num 95 7 7 7 7 7 7 7 Seven (55)
8 37 8 ( 8 8 { { ˜ Eight (56) left parenthesis (40) opening brace (123) small tilde (\u02DC)
8 Num 96 8 8 8 8 8 8 8 Eight (56)
9 38 9 ) 9 9 } } · Nine (57) right parenthesis (41) closing brace (125) middle dot (183)
9 Num 97 9 9 9 9 9 9 9 Nine (57)
0 39 0 = 0 0 ¯ Zero (48) equal sign (61) not equal sign (\u2260) overline (175)
0 Num 84 / / / / / / / Slash (47)
ß 45 ß ? ß ß ¿ ¿ ˙ sharp s (223) question mark (63) inverted question mark (191) dot above (\u02D9)
ß Num 46 = = = = = = = equal sign (61)
´ 46 ´ ` ´ ´ ' ' ˚ acute accent (180) grave accent (96) single quote (39) ring above (\u02DA)
´ Num
42 BS delete backwards (8)
 fn 76 Del Del Del Del Del Del Del delete forwards (127)
 
43 TAB Tab (9)
Q 20 q Q Q DC1 « « » q (112) Q (81) device control 1 (17) double left-pointing angle quote (171) double right-pointing angle quote (187)
Q Num
W 26 w W W ETB w (119) W (87) end of transmission block (23) n-ary sumation (\u2211) double low-9 quote (\u201E)
W Num
E 8 e E E ENQ e (101) E (69) enquiry (5) euro sign (\u20AC) permille sign (\u2030)
E Num
R 21 r R R DC2 ® ® ¸ r (114) R (82) device control 2 (18) registered trade mark sign (174) cedilla (184)
R Num
T 23 t T T DC4 ˝ t (116) T (84) device control 4 (20) dagger (\u2020) double acute accent (\u02DD)
T Num
Z 28 z Z Z SUB Ω Ω ˇ z (122) Z (90) substitue (26) greek Omega (\u03A9) caron (\u02C7)
Z Num
U 24 u U U NAK ¨ ¨ Á u (117) U (85) negative acknowledge (21) umlaut (168) A with acute (193)
U Num 92 4 4 4 4 4 4 4 Four (52)
I 12 i I I TAB Û i (105) I (73) horizontal tab (9) aka fraction slash (\u2044) U with circumflex (219)
I Num 93 5 5 5 5 5 5 5 Five (53)
O 18 o O O SI ø Ø Ø o (111) O (79) shift in (15) o with slash (248) O with slash (216)
O Num 94 6 6 6 6 6 6 6 Six (54)
P 19 p P P DLE π p (112) P (80) data link escape (16) greek pi (\u03C0) n-ary product (\u220F)
P Num 85 * * * * * * * Asterisk (42)
Ü 47 ü Ü Ü GS ° ü (252) Ü (220) group separator (29) aka ^] aka bullet (\u2022) degree sign (176)
Ü Num
+ 48 + * + + ± ± plus sign (43) asterisk (42) plus-minus (177) apple sign (c3 af c2 a3 c2 bf)
+ Num
40 CR Return aka carriage return (13)
 Num 88 ETX Enter aka end of text (3)
 
57 Keyboard Modifier: ShiftLock On/Off aka CapsLock aka
A 4 a A A SOH å Å Å a (97) A (65) start of heading (1) aka home a with ring above (229) A with ring above (197)
A Num
S 22 s S S DC3 Í s (115) S (83) device control 3 (19) single low-9 quote (\u201A) I with acute (205)
S Num
D 7 d D D EOT d (100) D (68) end of transmission (4) aka end partial differential (\u2202) trade mark sign (\u2122)
D Num
F 9 f F F ACK ƒ ƒ Ï f (102) F (70) acknowledge (6) function (\u0192) I with umlaut (207)
F Num
G 10 g G G BEL © © Ì g (103) G (71) bell (7) copyright sign (169) I with grave (204)
G Num
H 11 h H H BS ª ª Ó h (104) H (72) backspace (8) aka feminine ordinal indicator (170) O with acute (211)
H Num
J 13 j J J LF º º ı j (106) J (74) linefeed (10) masculine ordinal indicator (186) dotless i (\u0131)
J Num 89 1 1 1 1 1 1 1 One (49)
K 14 k K K VT Δ Δ ˆ k (107) K (75) vertical tab (11) aka page▲ forward difference (\u2206) (see greek Delta (\u0394)) circumflex accent (\u0C26)
K Num 90 2 2 2 2 2 2 2 Two (50)
L 15 l L L FF @ @ l (108) L (76) form feed (12) aka page▼ commercial at (64) ligature fl (\uFB02)
L Num 91 3 3 3 3 3 3 3 Three (51)
Ö 51 ö Ö Ö FS œ Œ Œ ö (246) Ö (214) file separator (28) aka ^\ aka aka cursor left ligature oe (\u0153) ligature OE (\u0152)
Ö Num 86 - - - - - - - minus sign (45)
Ä 52 ä Ä Ä Esc æ Æ Æ ä (228) Ä (196) escape (27) ligature ae (230) ligature AE (198)
Ä Num
# 50 # ' # # # (35) single quote (39) escape (27) left single quote (\u2018) right single quote (\u2019)
# Num
 
225 Keyboard Modifier: shift left
< 100* < > < < less-than (60) greater-than (62) less-than or equal to (\u2264) greater-than or equal to (\u2265)
< Num
Y 29 y Y Y EM ¥ ¥ y (121) Y (89) end of media (25) yen sign (165) double dagger (\u2021)
Y Num
X 27 x X X CAN Ù x (120) X (88) cancel (24) almost equal to (\u2248) U with grave (217)
X Num
C 6 c C C ETX ç Ç Ç c (99) C (67) end of text (3) c with cedilla (231) C with cedilla (199)
C Num
V 25 v V V SYN v (118) V (86) synchronous idle (22) square root (\u221A) lozenge (\u25CA)
V Num
B 5 b B B STX b (98) B (66) start of text (2) integral (\u222B) single left-pointing angle quote (\u2039)
B Num
N 17 n N N SO ~ ~ n (110) N (78) shift out (14) tilde (126) single right-pointing angle quote (\u203A)
N Num
M 16 m M M CR µ µ ˘ m (109) M (77) carriage return (13) micro sign (181) breve (\u02D8)
M Num 98 0 0 0 0 0 0 0 Zero (48)
, 54 , ; , , ˛ m (109) comma (44) semicolon (59) infinity (\u221E) ogonek (\u02DB)
, Num
. 55 . : . . ÷ dot (46) colon (58) horizontal ellipsis (\u2026) division sign (247)
. Num 99 , , , , . . . comma (44) dot (46)
- 56 - _ - - minus sign (45) underline (95) en dash (\u2013) em dash (\u2014)
- Num 87 + + + + + + + plus sign (43)
229 Keyboard Modifier: shift right
 
fn Keyboard Modifier: function
ctrl 224 Keyboard Modifier: control left
226 alt Keyboard Modifier: option/alt left
227 Keyboard Modifier: meta left aka command left
  44               space (32) non-breaking space (160)
  Num
231 Keyboard Modifier: meta right aka command right
88 ETX Enter aka end of text (3)
 Num
◄home 80 FS left arrow aka aka ^\ file separator (28)
◄home fn 74 home home home SOH home home home home aka aka Pos1 start of heading (1)
page▲ 82 RS up arrow aka record separator (30) aka ^^
page▲ fn 75 page▲ page▲ page▲ VT page▲ page▲ page▲ page up aka Bild ↑ vertical tab (11)
page▼ 81 US down arrow aka unit separator (31) aka ^_
page▼ fn 78 page▼ page▼ page▼ FF page▼ page▼ page▼ page down aka Bild ↓ form feed (12)
end► 79 GS right arrow aka aka ^] group separator (29)
end► fn 77 end end end EOT end end end end aka aka Ende end of transmission (4)

Sorted by Scancode

Javascript needs to be enabled to generate this table

Unavailable Scancodes

Unproducable scancodes
Codedefault mappingNotes
0NUL aka ^@
1ErrorRollOver
2POSTFail
3ErrorUndefined
49\ or |Bug? IMHO fn+ß should produce 49 and not 46
70Print Screen
71Scroll Lock
72Pause
73Insert
101Application0x309
102Powerbf(13)
103Keypad
104F13
105F14
106F15
107F16
108F17
109F18
110F19
111F20
112F21
113F22
114F23
115F24
116Executelf(7)
117Helplf(16)
118Menulf(3)
119Selectlf(5)
120Stopbuckybits+systembit up buckybits+systembit
121Againlf(2)
122Undolf(4)
123Cutlf(10)
124Copylf(6)
125Pastelf(8)
126Findlf(9)
127Muterf(4) numl padequal
128Volume Up
129Volume Down
130Locking Caps Lock
131Locking Num Lock
132Locking Scroll Lock
133Keypad Comma
134Keypad Equal Sign for AS/400
135International1
136International2
137International3
138International4
139International5
140International6
141International7
142International8
143International9
144LANG1
145LANG2
146LANG3
147LANG4
148LANG5
149LANG6
150LANG7
151LANG8
152LANG9
153AlternateErase
154SysReq/Attention
155Cancel
156Clear
157Prior
158Return'\r'
159Separator
160Out
161Oper
162Clear/Again
163CrSel/Props
164ExSel
165-223Reserved
228Right Controlshiftkeys+rightctrl up shiftkeys+rightctrl
230Right Altshiftkeys+altgraph up shiftkeys+altgraph
232-255Reserved

Resources

Copyright (C) 2010 Jens Elkner (jel+mac@cs.uni-magdeburg.de)