3 universal keymapping framework
4 using logical 128-key keyboard layout independent from physical keyboad matrix
6 unimap is actually an actionmap whose size is row:8xcol:16.
8 /* Keymapping with 16bit action codes */
9 extern const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS];
11 /* Universal 128-key keyboard layout(8x16)
12 ,-----------------------------------------------.
13 |F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24|
14 ,---. |-----------------------------------------------| ,-----------. ,-----------.
15 |Esc| |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|
16 `---' `-----------------------------------------------' `-----------' `-----------'
17 ,-----------------------------------------------------------. ,-----------. ,---------------.
18 | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
19 |-----------------------------------------------------------| |-----------| |---------------|
20 |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +|
21 |-----------------------------------------------------------| `-----------' |---------------|
22 |CapsL | A| S| D| F| G| H| J| K| L| ;| '| #|Retn| | 4| 5| 6|KP,|
23 |-----------------------------------------------------------| ,---. |---------------|
24 |Shft| <| Z| X| C| V| B| N| M| ,| ,| /| RO|Shift | |Up | | 1| 2| 3|KP=|
25 |-----------------------------------------------------------| ,-----------. |---------------|
26 |Ctl|Gui|Alt|MHEN| Space |HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0 | .|Ent|
27 `-----------------------------------------------------------' `-----------' `---------------'
29 Gui: Windows key, Mac ⌘ key or Meta key
30 VDn Vup Mut: Volume control
31 < #: ISO keys(in UK legend)
33 KP,: Brazilian Keypad Comma
35 RO: Japanese ろ(Ro) or Brazilian /(Slash)
36 MHEN: Japanese 無変換(Non Conversion) or Korean Hanja
37 HENK: Japanese 変換(Conversion) or Korean Hangul/English
38 KANA: Japanese かな(Hiragana/Katakana)
39 https://en.wikipedia.org/wiki/Keyboard_layout#Japanese
40 https://en.wikipedia.org/wiki/Keyboard_layout#Hangul_.28for_Korean.29
44 when refering to keymapping physical matrix position needed to be translated into logical one on unimap
45 the translation is defined in unimap array
47 row and col of unimap positon is encoded as follows
48 position = (row << 4) | col
50 // table translates matrix to universal keymap
51 extern const uint8_t unimap_trans[MATRIX_ROWS][MATRIX_COLS];