e5f9940 Merge commit '1bc3dd200b023cecf063a0cb3ba347f77f6d759d' into core_update da03c50 Add note for L/R side bit being ignored e80f3c1 Add in basic documentation for Macro system 35e8a76 core: Swap position of PEQL and PENT in unimap 00751f1 Merge pull request #406 from 39aldo39/patch-1 e50d7de V-USB remote wakeup 4340997 core: Fix typo in definition AC_g 958144d core: Debug print for system and consumer keys e7e1030 core: Fix sleep_led 0866323 core: Change matrix_init and matrix_print 0dbf73d core: Add matrix_clear() and default impl. 3202ca3 core: Add suspend mode options 4cda3aa core: Fix suspend/wake for converters #386 4e15247 core: LUFA_DEBUG_SUART for serial debug b9cf8e7 core: Fix mechanical locking supoort #390 12aa0fd Merge branch 'nemith-master' fccb3fa core: Fix OPT_DEFS for mbed build 2e2d2c8 Merge branch 'master' of github.com:leizzer/tmk_keyboard f1d3634 Change .gitignore for ChibiOS 3aab802 core: Fix build config in protocol.mk 5e43da0 core: Add short names in unimap 7a56998 core: Fix dfu wait in rules.mk 6d9c500 Merge branch 'mediakey-fix' 08382ac core: Fix 'make dfu' message 78cb04e Fix OS X Recognizing keyboard as Mouse/Tablet a114714 core: 'make dfu' waits for bootloader to start d0a8f13 core: Fix unimap UNIMAP_NO case e17abef core: Change lufa NKRO report size 16 to 32 bytes 375b20f core: Fix common.mk for build options 394fdff core: Fix unimap layout comment 912326c core: Add unimap support 00f4011 core: Fix doc/keymap.md for new keymap framework ddbd7b4 core: Add default implemenation of keymap read 671cacc core: action codes are action_t struct now b4fdb27 core: Change chibios repo directory names 7daed10 core: Fix keycode.txt 90399d7 core: Fix USB remote wakeup on ATmega32U2 #361 3677e84 usb_usb: Add multiple keyboard support 54d5b26 core: Fix Logical Maximum in report descriptor bd0d372 core: Fix LUFA report descriptor 95327b5 Merge pull request #355 from papodaca/XT 62bf548 core: change API of adb.c to accept device address 3097c9e Fix function name in host.h 836e209 Merge branch 'core_split_160522' 3918ea2 Merge commit '20b787fc1284176834cbe7ca2134e4b36bec5828' 7f87b11 core: Add comment of register 3 of ADB ef6478a core: Add adb_host_talk() 5c665b4 update macro names in bluefruit 4f2c5bf Merge commit '71381457fa1311dfa0b58ba882a96db740640871' 53a9c08 Merge pull request #321 from njbair/master f08a656 core: Fix media/consumer keys d526de8 Clean up wording in keymap example 0bb3dbb Clarify layer precedence d915c75 clarify layer documentation 72070d4 ps2_usb: Fix for VUSB configuration 170e2dc Mostly working. Is unstable, will emit bad codes after a while. c8e45b5 core: Actionmap support aabaa24 Codes appear to be detected correctly, the break codes are broken. git-subtree-dir: tmk_core git-subtree-split: e5f994033cbc8700745ac0c6d12772820492eed0
51 lines
2.6 KiB
Text
51 lines
2.6 KiB
Text
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];
|