ISO International Keys - mcaple/tmk_keyboard GitHub Wiki

USB HID

How computer handles keys of Keyboard/Keypad Page (0x07)

Usage 0x31 and 0x32

Either one of the two are located next to Enter on ISO or JIS keyboard. US keyboard always uses only 0x31 for Backslash. It seems that 0x31(Keyboard \ and |) and 0x32(Keyboard Non-US # and ˜) won't coexist on a keyboard in general.

ISO keyboard is likely to use 0x31 while JIS keyboard does 0x32 seemingly?(To be researched.) Computers handle 0x31 and 0x32 as equivalent key basically.

0x32 is supposed to be interpreted the same as 0x31 (backslash key) on US layouts. However, when I was experimenting with scan codes, OSX didn't seem to register any keypress on 0x32, and even the documentation of Soarer's converter tells you to use 0x31 instead of 0x32...

https://geekhack.org/index.php?topic=71788.0

Linux

Xfce4/Xorg/Ubuntu

Usage US UK German French Norwegian Description
0x35 `~ ²~ Keyboard Grave Accent and Tilde
0x31 \| #~ #' '* Keyboard \ and |
0x32 \| #~ #' '* Keyboard Non-US # and ˜
0x64 <> \| <> <> <> Keyboard Non-US \ and |

Windows 10

Usage US UK German French Norwegian Description
0x35 `~ ² Keyboard Grave Accent and Tilde
0x31 \| #~ #' '* Keyboard \ and |
0x32 \| #~ #' '* Keyboard Non-US # and ˜
0x64 \| \| <> <> <> Keyboard Non-US \ and |

Japanese JIS Specific Keys

Usage Japanese Description
0x35 全角/半角 Keyboard Grave Accent and Tilde
0x31 ] } Keyboard \ and | (Not used)
0x32 ] } Keyboard Non-US # and ˜
0x89 \ | Keyboard International3 (JP_YEN)
0x87 \ _ Keyboard International1 (JP_RO)

Japanese JIS Keyboard doesn't seem to have 0x31 key and use 0x32 instead.(True on HHKB professional JP at least.)

HID Usages of Keyboard/Keypad Page (0x07)

https://usb.org/sites/default/files/hut1_22.pdf

        ,-----------------------------------------------.
        |F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24|
,---.   |-----------------------------------------------|     ,-----------. 
|Esc|   |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|     |PrS|ScL|Pau| 
`---'   `-----------------------------------------------'     `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
|  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|JPY|Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  | |Del|End|PgD| |  7|  8|  9|  +|
|-----------------------------------------------------------| `-----------' |---------------|
|CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  #|Retn|               |  4|  5|  6|KP,|
|-----------------------------------------------------------|     ,---.     |---------------|       
|Shft|  <|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /| RO|Shift |     |Up |     |  1|  2|  3|Ent|       
|-----------------------------------------------------------| ,-----------. |---------------|       
|Ctl|Gui|Alt|MHEN|     Space      |HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| |  0    |  .|KP=|       
`-----------------------------------------------------------' `-----------' `---------------'       

        ,-----------------------------------------------. 
        | 68| 69| 6A| 6B| 6C| 6D| 6E| 6F| 70| 71| 72| 73|
,---.   |-----------------------------------------------|     ,-----------. 
| 29|   | 3A| 3B| 3C| 3D| 3E| 3F| 40| 41| 42| 43| 44| 45|     | 46| 47| 48| 
`---'   `-----------------------------------------------'     `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 35| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| 2D| 2E| 89| 2A| | 49| 4A| 4B| | 53| 54| 55| 56|
|-----------------------------------------------------------| |-----------| |---------------|
|   2B| 14| 1A| 08| 15| 17| 1C| 18| 0C| 12| 13| 2F| 30|   31| | 4C| 4D| 4E| | 5F| 60| 61| 57|
|-----------------------------------------------------------| `-----------' |---------------|
|    39| 04| 16| 07| 09| 0A| 0B| 0D| 0E| 0F| 33| 34| 32|  28|               | 5C| 5D| 5E| 85|
|-----------------------------------------------------------|     ,---.     |---------------|
|  E1| 64| 1D| 1B| 06| 19| 05| 11| 10| 36| 37| 38| 87|    E5|     | 52|     | 59| 5A| 5B| 58|                          
|-----------------------------------------------------------| ,-----------. |---------------|                          
| E0| E3| E2|  8B|              2C|  8A|  88| E6| E7| 65| E4| | 50| 51| 4F| |     62| 63| 67|                          
`-----------------------------------------------------------' `-----------' `---------------'

Keyboard Layout

US Layout

UK Layout

German Layout

https://en.wikipedia.org/wiki/German_keyboard_layout

French Layout

https://en.wikipedia.org/wiki/AZERTY

Norwegian Layout

Japanese Layout

https://en.wikipedia.org/wiki/Language_input_keys#Keys_for_Japanese_Keyboards

ADB

ADB internatioanl key handling is complex.

https://github.com/tmk/tmk_keyboard/wiki/Apple-Desktop-Bus#apple-extended-keyboard-ii-iso-specific-keys

https://github.com/tmk/tmk_keyboard/issues/35

IBM PC XT

Original IBM XT keyboard has no ISO key but some clones do.

XT key XT code USB HID key USB HID code Desc
# ~ (| §) 0x29 ` ~ (| §) 0x35 near Enter on IBM XT
near 1 on Norwegian
\ | (` *) 0x2B US \ | (` *) 0x31 near Left Shift on IBM XT
near Backspace on Norwegian keyboard
(< >) 0x56 Non-US \ | (< >) 0x64 Not exist on IBM XT
near Left Shift on Norwegian keyboards

Charactors inside parenthesises indicates Norwegian keys.

https://github.com/tmk/tmk_keyboard/issues/702

Microsoft Scan Code Translate Table

XT(Code Set 1) <-> HID

https://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf

MacOS Problem

If you use third-party USB keyboard you may have problem on ISO keys.

TBD

⚠️ **GitHub.com Fallback** ⚠️