52 lines
2.6 KiB
Plaintext
52 lines
2.6 KiB
Plaintext
Unimap
|
|
======
|
|
universal keymapping framework
|
|
using logical 128-key keyboard layout independent from physical keyboad matrix
|
|
|
|
unimap is actually an actionmap whose size is row:8xcol:16.
|
|
|
|
/* Keymapping with 16bit action codes */
|
|
extern const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS];
|
|
|
|
/* Universal 128-key keyboard layout(8x16)
|
|
,-----------------------------------------------.
|
|
|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| |VDn|VUp|Mut|
|
|
`---' `-----------------------------------------------' `-----------' `-----------'
|
|
,-----------------------------------------------------------. ,-----------. ,---------------.
|
|
| `| 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|KP=|
|
|
|-----------------------------------------------------------| ,-----------. |---------------|
|
|
|Ctl|Gui|Alt|MHEN| Space |HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0 | .|Ent|
|
|
`-----------------------------------------------------------' `-----------' `---------------'
|
|
App: Windows Menu key
|
|
Gui: Windows key, Mac ⌘ key or Meta key
|
|
VDn Vup Mut: Volume control
|
|
< #: ISO keys(in UK legend)
|
|
KP=: Keypad = for Mac
|
|
KP,: Brazilian Keypad Comma
|
|
JPY: Japanese Yen(¥)
|
|
RO: Japanese ろ(Ro) or Brazilian /(Slash)
|
|
MHEN: Japanese 無変換(Non Conversion) or Korean Hanja
|
|
HENK: Japanese 変換(Conversion) or Korean Hangul/English
|
|
KANA: Japanese かな(Hiragana/Katakana)
|
|
https://en.wikipedia.org/wiki/Keyboard_layout#Japanese
|
|
https://en.wikipedia.org/wiki/Keyboard_layout#Hangul_.28for_Korean.29
|
|
*/
|
|
|
|
|
|
when refering to keymapping physical matrix position needed to be translated into logical one on unimap
|
|
the translation is defined in unimap array
|
|
|
|
row and col of unimap positon is encoded as follows
|
|
position = (row << 4) | col
|
|
|
|
// table translates matrix to universal keymap
|
|
extern const uint8_t unimap_trans[MATRIX_ROWS][MATRIX_COLS];
|