aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--adb/keymap.c163
-rw-r--r--adb/matrix.c6
-rw-r--r--hhkb/keymap.c56
-rw-r--r--macway/keymap.c56
-rw-r--r--mousekey.c26
-rw-r--r--usb_keycodes.h236
6 files changed, 289 insertions, 254 deletions
diff --git a/adb/keymap.c b/adb/keymap.c
index 8a9640482..05ab4c452 100644
--- a/adb/keymap.c
+++ b/adb/keymap.c
@@ -12,103 +12,108 @@
12#include "keymap_skel.h" 12#include "keymap_skel.h"
13 13
14 14
15#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
16
15// Convert physical keyboard layout to matrix array. 17// Convert physical keyboard layout to matrix array.
16// This is a macro to define keymap easily in keyboard layout form. 18// This is a macro to define keymap easily in keyboard layout form.
17 19/* Apple Extended Keyboard */
18// TODO: ADB to USB default keymap
19// TODO: keymap macro template for m0116/m0115
20/* Apple Keyboard m0116
21 K7F, \
22 K35, K12, K13, K14, K15, K17, K16, K1A, K1C, K19, K1D, K1B, K18, K33, K47, K51, K4B, K43, \
23 K30, K0C, K0D, K0E, K0F, K10, K11, K20, K22, K1F, K23, K21, K1E, K59, K5B, K5C, K4E, \
24 K36, K00, K01, K02, K03, K05, K04, K26, K28, K25, K29, K27, K24, K56, K57, K58, K45, \
25 K38, K06, K07, K08, K09, K0B, K2D, K2E, K2B, K2F, K2C, K7B, K53, K54, K55, \
26 K39, K3A, K37, K32, K31, K2A, K3B, K3C, K3D, K3E, K52, K41, K4C \
27*/
28
29/* no tenkey
30 K7F, \
31 K35, K12, K13, K14, K15, K17, K16, K1A, K1C, K19, K1D, K1B, K18, K33, \
32 K30, K0C, K0D, K0E, K0F, K10, K11, K20, K22, K1F, K23, K21, K1E, \
33 K36, K00, K01, K02, K03, K05, K04, K26, K28, K25, K29, K27, K24, \
34 K38, K06, K07, K08, K09, K0B, K2D, K2E, K2B, K2F, K2C, K7B, \
35 K39, K3A, K37, K32, K31, K2A, K3B, K3C, K3D, K3E \
36*/
37#define KEYMAP( \ 20#define KEYMAP( \
38 K7F, \ 21 K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
39 K35, K12, K13, K14, K15, K17, K16, K1A, K1C, K19, K1D, K1B, K18, K33, \ 22 K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
40 K30, K0C, K0D, K0E, K0F, K10, K11, K20, K22, K1F, K23, K21, K1E, \ 23 K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
41 K36, K00, K01, K02, K03, K05, K04, K26, K28, K25, K29, K27, K24, \ 24 K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
42 K38, K06, K07, K08, K09, K0B, K2D, K2E, K2B, K2F, K2C, K7B, \ 25 K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
43 K39, K3A, K37, K32, K31, K2A, K3B, K3C, K3D, K3E \ 26 K36,K3A,K37, K31, K3B,K3D,K3C, K52, K41,K4C \
44) { \ 27) { \
45 { K00, K01, K02, K03, K04, K05, K06, K07 }, \ 28 { KB_##K00, KB_##K01, KB_##K02, KB_##K03, KB_##K04, KB_##K05, KB_##K06, KB_##K07 }, \
46 { K08, K09, 000, K0B, K0C, K0D, K0E, K0F }, \ 29 { KB_##K08, KB_##K09, KB_NO, KB_##K0B, KB_##K0C, KB_##K0D, KB_##K0E, KB_##K0F }, \
47 { K10, K11, K12, K13, K14, K15, K16, K17 }, \ 30 { KB_##K10, KB_##K11, KB_##K12, KB_##K13, KB_##K14, KB_##K15, KB_##K16, KB_##K17 }, \
48 { K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ 31 { KB_##K18, KB_##K19, KB_##K1A, KB_##K1B, KB_##K1C, KB_##K1D, KB_##K1E, KB_##K1F }, \
49 { K20, K21, K22, K23, K24, K25, K26, K27 }, \ 32 { KB_##K20, KB_##K21, KB_##K22, KB_##K23, KB_##K24, KB_##K25, KB_##K26, KB_##K27 }, \
50 { K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ 33 { KB_##K28, KB_##K29, KB_##K2A, KB_##K2B, KB_##K2C, KB_##K2D, KB_##K2E, KB_##K2F }, \
51 { K30, K31, K32, K33, 000, K35, K36, K37 }, \ 34 { KB_##K30, KB_##K31, KB_##K32, KB_##K33, KB_NO, KB_##K35, KB_##K36, KB_##K37 }, \
52 { K38, K39, K3A, K3B, K3C, K3D, K3E, 000 }, \ 35 { KB_##K38, KB_##K39, KB_##K3A, KB_##K3B, KB_##K3C, KB_##K3D, KB_##K3E, KB_NO }, \
53 { 000, 000, 000, 000, 000, 000, 000, 000 }, \ 36 { KB_NO, KB_##K41, KB_NO, KB_##K43, KB_NO, KB_##K45, KB_NO, KB_##K47 }, \
54 { 000, 000, 000, 000, 000, 000, 000, 000 }, \ 37 { KB_NO, KB_NO, KB_NO, KB_##K4B, KB_##K4C, KB_NO, KB_##K4E, KB_NO }, \
55 { 000, 000, 000, 000, 000, 000, 000, 000 }, \ 38 { KB_NO, KB_##K51, KB_##K52, KB_##K53, KB_##K54, KB_##K55, KB_##K56, KB_##K57 }, \
56 { 000, 000, 000, 000, 000, 000, 000, 000 }, \ 39 { KB_##K58, KB_##K59, KB_NO, KB_##K5B, KB_##K5C, KB_NO, KB_NO, KB_NO }, \
57 { 000, 000, 000, 000, 000, 000, 000, 000 }, \ 40 { KB_##K60, KB_##K61, KB_##K62, KB_##K63, KB_##K64, KB_##K65, KB_NO, KB_##K67 }, \
58 { 000, 000, 000, 000, 000, 000, 000, 000 }, \ 41 { KB_NO, KB_##K69, KB_NO, KB_##K6B, KB_NO, KB_##K6D, KB_NO, KB_##K6F }, \
59 { 000, 000, 000, 000, 000, 000, 000, 000 }, \ 42 { KB_NO, KB_##K71, KB_##K72, KB_##K73, KB_##K74, KB_##K75, KB_##K76, KB_##K77 }, \
60 { 000, 000, 000, K7B, 000, 000, 000, K7F }, \ 43 { KB_##K78, KB_##K79, KB_##K7A, KB_##K7B, KB_NO, KB_NO, KB_NO, KB_##K7F } \
61} 44}
62 45/* plain keymap
63#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)])) 46 {
47 { KB_A, KB_S, KB_D, KB_F, KB_H, KB_G, KB_Z, KB_X }, // 00-07
48 { KB_C, KB_V, KB_NO, KB_B, KB_Q, KB_W, KB_E, KB_R }, // 08-0F
49 { KB_Y, KB_T, KB_1, KB_2, KB_3, KB_4, KB_6, KB_5 }, // 10-17
50 { KB_EQL, KB_9, KB_7, KB_MINS,KB_8, KB_0, KB_RBRC,KB_O }, // 18-1F
51 { KB_U, KB_LBRC,KB_I, KB_P, KB_ENT, KB_L, KB_J, KB_QUOT}, // 20-27
52 { KB_K, KB_SCLN,KB_BSLS,KB_COMM,KB_SLSH,KB_N, KB_M, KB_DOT }, // 28-2F
53 { KB_TAB, KB_SPC, KB_GRV, KB_BSPC,KB_NO, KB_ESC, KB_LCTL,KB_LGUI}, // 30-37
54 { KB_LSFT,KB_CAPS,KB_LALT,KB_LEFT,KB_RGHT,KB_DOWN,KB_UP, KB_NO }, // 38-3F
55 { KB_NO, KB_PDOT,KB_NO, KB_PAST,KB_NO, KB_PPLS,KB_NO, KB_NLCK}, // 40-47
56 { KB_NO, KB_NO, KB_NO, KB_PSLS,KB_PENT,KB_NO, KB_PMNS,KB_NO }, // 48-4F
57 { KB_NO, KB_PEQL,KB_P0, KB_P1, KB_P2, KB_P3, KB_P4, KB_P5 }, // 50-57
58 { KB_P6, KB_P7, KB_NO, KB_P8, KB_P9, KB_NO, KB_NO, KB_NO }, // 58-5F
59 { KB_F5, KB_F6, KB_F7, KB_F3, KB_F8, KB_F9, KB_NO, KB_F11 }, // 60-67
60 { KB_NO, KB_PSCR,KB_NO, KB_SLCK,KB_NO, KB_F10, KB_NO, KB_F12 }, // 68-6F
61 { KB_NO, KB_BRK, KB_INS, KB_HOME,KB_PGUP,KB_DEL, KB_F4, KB_END }, // 70-77
62 { KB_F2, KB_PGDN,KB_F1, KB_RSFT,KB_NO, KB_NO, KB_NO, KB_PWR }, // 78-7F
63 },
64*/
64 65
65 66
66// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed. 67// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
67static const uint8_t PROGMEM fn_layer[] = { 68static const uint8_t PROGMEM fn_layer[] = {
68 0, // FN_0 69 0, // Fn0
69 0, // FN_1 70 0, // Fn1
70 0, // FN_2 71 0, // Fn2
71 0, // FN_3 72 0, // Fn3
72 0, // FN_4 73 0, // Fn4
73 0, // FN_5 74 0, // Fn5
74 0, // FN_6 75 0, // Fn6
75 0 // FN_7 76 0 // Fn7
76}; 77};
77 78
78// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer. 79// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
79// See layer.c for details. 80// See layer.c for details.
80static const uint8_t PROGMEM fn_keycode[] = { 81static const uint8_t PROGMEM fn_keycode[] = {
81 KB_NO, // FN_0 82 KB_NO, // Fn0
82 KB_NO, // FN_1 83 KB_NO, // Fn1
83 KB_NO, // FN_2 84 KB_NO, // Fn2
84 KB_NO, // FN_3 85 KB_NO, // Fn3
85 KB_NO, // FN_4 86 KB_NO, // Fn4
86 KB_NO, // FN_5 87 KB_NO, // Fn5
87 KB_NO, // FN_6 88 KB_NO, // Fn6
88 KB_NO // FN_7 89 KB_NO // Fn7
89}; 90};
90 91
91static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 92static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
92 /* Layer 0: Default Layer 93 /* Default Layer: plain keymap
93 * ,---------------------------------------------------------. 94 * ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,---.
94 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| 95 * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|
95 * |---------------------------------------------------------| 96 * `---' `---------------' `---------------' `---------------' `-----------' `---'
96 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | 97 * ,-----------------------------------------------------------. ,-----------. ,---------------.
97 * |-----------------------------------------------------' | 98 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| =| /| *|
98 * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Return| 99 * |-----------------------------------------------------------| |-----------| |---------------|
99 * |---------------------------------------------------------| 100 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| -|
100 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | 101 * |-----------------------------------------------------------| `-----------' |---------------|
101 * |---------------------------------------------------------| 102 * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| +|
102 * |Shi|Alt|Gui l `| | \|Lef|Rig|Dow|Up | 103 * |-----------------------------------------------------------| ,---. |---------------|
103 * `---------------------------------------------------------' 104 * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
105 * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
106 * |Ctrl |Gui |Alt | Space | | | | |Lef|Dow|Rig| | 0| .| |
107 * `-----------------------------------------------------------' `-----------' `---------------'
104 */ 108 */
105 KEYMAP(KB_PWR, \ 109 KEYMAP(
106 KB_ESC, KB_1, KB_2, KB_3, KB_4, KB_5, KB_6, KB_7, KB_8, KB_9, KB_0, KB_MINS,KB_EQL, KB_BSPC, \ 110 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, PWR,
107 KB_TAB, KB_Q, KB_W, KB_E, KB_R, KB_T, KB_Y, KB_U, KB_I, KB_O, KB_P, KB_LBRC,KB_RBRC, \ 111 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,EQL, PSLS,PAST,
108 KB_LCTL,KB_A, KB_S, KB_D, KB_F, KB_G, KB_H, KB_J, KB_K, KB_L, KB_SCLN,KB_QUOT,KB_ENT, \ 112 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, PMNS,
109 KB_LSFT,KB_Z, KB_X, KB_C, KB_V, KB_B, KB_N, KB_M, KB_COMM,KB_DOT, KB_SLSH,KB_RSFT, \ 113 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
110 KB_LSFT,KB_LALT,KB_LGUI,KB_GRV, KB_SPC, KB_BSLS,KB_LEFT,KB_RGHT,KB_DOWN,KB_UP), 114 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
111 115 LCTL,LGUI,LALT, SPC, LEFT,DOWN,RGHT, P0, PDOT,PENT
116 ),
112}; 117};
113 118
114 119
diff --git a/adb/matrix.c b/adb/matrix.c
index d0643371e..ca8858d0b 100644
--- a/adb/matrix.c
+++ b/adb/matrix.c
@@ -76,9 +76,6 @@ uint8_t matrix_scan(void)
76 codes = adb_host_kbd_recv(); 76 codes = adb_host_kbd_recv();
77 key0 = codes>>8; 77 key0 = codes>>8;
78 key1 = codes&0xFF; 78 key1 = codes&0xFF;
79 if (debug_matrix) {
80 //print("adb_host_kbd_recv: "); phex16(codes); print("\n");
81 }
82 79
83 if (codes == 0) { // no keys 80 if (codes == 0) { // no keys
84 return 0; 81 return 0;
@@ -91,6 +88,9 @@ uint8_t matrix_scan(void)
91 _register_key(key1); 88 _register_key(key1);
92 } 89 }
93 90
91 if (debug_matrix && matrix_is_modified()) {
92 print("adb_host_kbd_recv: "); phex16(codes); print("\n");
93 }
94 return 1; 94 return 1;
95} 95}
96 96
diff --git a/hhkb/keymap.c b/hhkb/keymap.c
index e18bb8628..176201756 100644
--- a/hhkb/keymap.c
+++ b/hhkb/keymap.c
@@ -37,27 +37,27 @@
37 37
38// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed. 38// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
39static const uint8_t PROGMEM fn_layer[] = { 39static const uint8_t PROGMEM fn_layer[] = {
40 0, // FN_0 40 0, // Fn0
41 1, // FN_1 41 1, // Fn1
42 2, // FN_2 42 2, // Fn2
43 3, // FN_3 43 3, // Fn3
44 4, // FN_4 44 4, // Fn4
45 0, // FN_5 45 0, // Fn5
46 0, // FN_6 46 0, // Fn6
47 1 // FN_7 47 1 // Fn7
48}; 48};
49 49
50// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer. 50// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
51// See layer.c for details. 51// See layer.c for details.
52static const uint8_t PROGMEM fn_keycode[] = { 52static const uint8_t PROGMEM fn_keycode[] = {
53 KB_NO, // FN_0 53 KB_NO, // Fn0
54 KB_NO, // FN_1 54 KB_NO, // Fn1
55 KB_SLSH, // FN_2 55 KB_SLSH, // Fn2
56 KB_SCLN, // FN_3 56 KB_SCLN, // Fn3
57 KB_SPC, // FN_4 57 KB_SPC, // Fn4
58 KB_NO, // FN_5 58 KB_NO, // Fn5
59 KB_NO, // FN_6 59 KB_NO, // Fn6
60 KB_NO // FN_7 60 KB_NO // Fn7
61}; 61};
62 62
63static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 63static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -76,9 +76,9 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
76 */ 76 */
77 KEYMAP(KB_ESC, KB_1, KB_2, KB_3, KB_4, KB_5, KB_6, KB_7, KB_8, KB_9, KB_0, KB_MINS,KB_EQL, KB_BSLS,KB_GRV, \ 77 KEYMAP(KB_ESC, KB_1, KB_2, KB_3, KB_4, KB_5, KB_6, KB_7, KB_8, KB_9, KB_0, KB_MINS,KB_EQL, KB_BSLS,KB_GRV, \
78 KB_TAB, KB_Q, KB_W, KB_E, KB_R, KB_T, KB_Y, KB_U, KB_I, KB_O, KB_P, KB_LBRC,KB_RBRC,KB_BSPC, \ 78 KB_TAB, KB_Q, KB_W, KB_E, KB_R, KB_T, KB_Y, KB_U, KB_I, KB_O, KB_P, KB_LBRC,KB_RBRC,KB_BSPC, \
79 KB_LCTL,KB_A, KB_S, KB_D, KB_F, KB_G, KB_H, KB_J, KB_K, KB_L, FN_3, KB_QUOT,KB_ENT, \ 79 KB_LCTL,KB_A, KB_S, KB_D, KB_F, KB_G, KB_H, KB_J, KB_K, KB_L, KB_FN3, KB_QUOT,KB_ENT, \
80 KB_LSFT,KB_Z, KB_X, KB_C, KB_V, KB_B, KB_N, KB_M, KB_COMM,KB_DOT, FN_2, KB_RSFT,FN_1, \ 80 KB_LSFT,KB_Z, KB_X, KB_C, KB_V, KB_B, KB_N, KB_M, KB_COMM,KB_DOT, KB_FN2, KB_RSFT,KB_FN1, \
81 KB_LGUI,KB_LALT,FN_4, KB_RALT,KB_RGUI), 81 KB_LGUI,KB_LALT,KB_FN4, KB_RALT,KB_RGUI),
82 82
83 /* Layer 1: HHKB mode (HHKB Fn) 83 /* Layer 1: HHKB mode (HHKB Fn)
84 * ,-----------------------------------------------------------. 84 * ,-----------------------------------------------------------.
@@ -95,9 +95,9 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
95 */ 95 */
96 KEYMAP(KB_ESC, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_INS, KB_DEL, \ 96 KEYMAP(KB_ESC, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_INS, KB_DEL, \
97 KB_CAPS,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_PSCR,KB_SLCK,KB_BRK, KB_UP, KB_NO, KB_BSPC, \ 97 KB_CAPS,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_PSCR,KB_SLCK,KB_BRK, KB_UP, KB_NO, KB_BSPC, \
98 KB_LCTL,KB_VOLD,KB_VOLU,KB_MUTE,KB_NO, KB_NO, KP_ASTR,KP_SLSH,KB_HOME,KB_PGUP,KB_LEFT,KB_RGHT,KB_ENT, \ 98 KB_LCTL,KB_VOLD,KB_VOLU,KB_MUTE,KB_NO, KB_NO, KB_PAST,KB_PSLS,KB_HOME,KB_PGUP,KB_LEFT,KB_RGHT,KB_ENT, \
99 KB_LSFT,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KP_PLUS,KP_MINS,KB_END, KB_PGDN,KB_DOWN,KB_RSFT,FN_1, \ 99 KB_LSFT,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_PPLS,KB_PMNS,KB_END, KB_PGDN,KB_DOWN,KB_RSFT,KB_FN1, \
100 KB_LGUI,KB_LALT,KB_SPC, KB_RALT,FN_7), 100 KB_LGUI,KB_LALT,KB_SPC, KB_RALT,KB_FN7),
101 101
102 /* Layer 2: Vi mode (Slash) 102 /* Layer 2: Vi mode (Slash)
103 * ,-----------------------------------------------------------. 103 * ,-----------------------------------------------------------.
@@ -115,7 +115,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
115 KEYMAP(KB_ESC, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_INS, KB_DEL, \ 115 KEYMAP(KB_ESC, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_INS, KB_DEL, \
116 KB_TAB, KB_HOME,KB_PGDN,KB_UP, KB_PGUP,KB_END, KB_HOME,KB_PGDN,KB_PGUP,KB_END, KB_NO, KB_NO, KB_NO, KB_BSPC, \ 116 KB_TAB, KB_HOME,KB_PGDN,KB_UP, KB_PGUP,KB_END, KB_HOME,KB_PGDN,KB_PGUP,KB_END, KB_NO, KB_NO, KB_NO, KB_BSPC, \
117 KB_LCTL,KB_NO, KB_LEFT,KB_DOWN,KB_RGHT,KB_NO, KB_LEFT,KB_DOWN,KB_UP, KB_RGHT,KB_NO, KB_NO, KB_ENT, \ 117 KB_LCTL,KB_NO, KB_LEFT,KB_DOWN,KB_RGHT,KB_NO, KB_LEFT,KB_DOWN,KB_UP, KB_RGHT,KB_NO, KB_NO, KB_ENT, \
118 KB_LSFT,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_HOME,KB_PGDN,KB_PGUP,KB_END, FN_2, KB_RSFT,KB_NO, \ 118 KB_LSFT,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_HOME,KB_PGDN,KB_PGUP,KB_END, KB_FN2, KB_RSFT,KB_NO, \
119 KB_LGUI,KB_LALT,KB_SPC, KB_RALT,KB_RGUI), 119 KB_LGUI,KB_LALT,KB_SPC, KB_RALT,KB_RGUI),
120 120
121 /* Layer 3: Mouse mode (Semicolon) 121 /* Layer 3: Mouse mode (Semicolon)
@@ -133,10 +133,10 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
133 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel 133 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
134 */ 134 */
135 KEYMAP(KB_ESC, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_INS, KB_DEL, \ 135 KEYMAP(KB_ESC, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_INS, KB_DEL, \
136 KB_TAB, MS_WH_L,MS_WH_U,MS_UP, MS_WH_D,MS_WH_R,MS_WH_L,MS_WH_D,MS_WH_U,MS_WH_R,KB_NO, KB_NO, KB_NO, KB_BSPC, \ 136 KB_TAB, KB_WH_L,KB_WH_U,KB_MS_U,KB_WH_D,KB_WH_R,KB_WH_L,KB_WH_D,KB_WH_U,KB_WH_R,KB_NO, KB_NO, KB_NO, KB_BSPC, \
137 KB_LCTL,KB_NO, MS_LEFT,MS_DOWN,MS_RGHT,KB_NO, MS_LEFT,MS_DOWN,MS_UP, MS_RGHT,FN_3, KB_NO, KB_ENT, \ 137 KB_LCTL,KB_NO, KB_MS_L,KB_MS_D,KB_MS_R,KB_NO, KB_MS_L,KB_MS_D,KB_MS_U,KB_MS_R,KB_FN3, KB_NO, KB_ENT, \
138 KB_LSFT,MS_BTN4,MS_BTN5,MS_BTN1,MS_BTN2,MS_BTN3,MS_BTN2,MS_BTN1,MS_BTN4,MS_BTN5,KB_NO, KB_RSFT,KB_NO, \ 138 KB_LSFT,KB_BTN4,KB_BTN5,KB_BTN1,KB_BTN2,KB_BTN3,KB_BTN2,KB_BTN1,KB_BTN4,KB_BTN5,KB_NO, KB_RSFT,KB_NO, \
139 KB_LGUI,KB_LALT,MS_BTN1,KB_RALT,KB_RGUI), 139 KB_LGUI,KB_LALT,KB_BTN1,KB_RALT,KB_RGUI),
140 140
141 /* Layer 4: Matias half keyboard style (Space) 141 /* Layer 4: Matias half keyboard style (Space)
142 * ,-----------------------------------------------------------. 142 * ,-----------------------------------------------------------.
@@ -155,7 +155,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
155 KB_BSPC,KB_P, KB_O, KB_I, KB_U, KB_Y, KB_T, KB_R, KB_E, KB_W, KB_Q, KB_NO, KB_NO, KB_TAB, \ 155 KB_BSPC,KB_P, KB_O, KB_I, KB_U, KB_Y, KB_T, KB_R, KB_E, KB_W, KB_Q, KB_NO, KB_NO, KB_TAB, \
156 KB_LCTL,KB_SCLN,KB_L, KB_K, KB_J, KB_H, KB_G, KB_F, KB_D, KB_S, KB_A, KB_RCTL,KB_RCTL, \ 156 KB_LCTL,KB_SCLN,KB_L, KB_K, KB_J, KB_H, KB_G, KB_F, KB_D, KB_S, KB_A, KB_RCTL,KB_RCTL, \
157 KB_LSFT,KB_SLSH,KB_DOT, KB_COMM,KB_M, KB_N, KB_B, KB_V, KB_C, KB_X, KB_Z, KB_RSFT,KB_NO, \ 157 KB_LSFT,KB_SLSH,KB_DOT, KB_COMM,KB_M, KB_N, KB_B, KB_V, KB_C, KB_X, KB_Z, KB_RSFT,KB_NO, \
158 KB_LGUI,KB_LALT,FN_4, KB_RALT,KB_RGUI) 158 KB_LGUI,KB_LALT,KB_FN4, KB_RALT,KB_RGUI)
159}; 159};
160 160
161 161
diff --git a/macway/keymap.c b/macway/keymap.c
index 118036e94..b6b6d3c3f 100644
--- a/macway/keymap.c
+++ b/macway/keymap.c
@@ -37,27 +37,27 @@
37 37
38// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed. 38// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
39static const uint8_t PROGMEM fn_layer[] = { 39static const uint8_t PROGMEM fn_layer[] = {
40 0, // FN_0 40 0, // Fn0
41 1, // FN_1 41 1, // Fn1
42 2, // FN_2 42 2, // Fn2
43 3, // FN_3 43 3, // Fn3
44 4, // FN_4 44 4, // Fn4
45 0, // FN_5 45 0, // Fn5
46 2, // FN_6 46 2, // Fn6
47 3 // FN_7 47 3 // Fn7
48}; 48};
49 49
50// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer. 50// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
51// See layer.c for details. 51// See layer.c for details.
52static const uint8_t PROGMEM fn_keycode[] = { 52static const uint8_t PROGMEM fn_keycode[] = {
53 KB_NO, // FN_0 53 KB_NO, // Fn0
54 KB_NO, // FN_1 54 KB_NO, // Fn1
55 KB_SLSH, // FN_2 55 KB_SLSH, // Fn2
56 KB_SCLN, // FN_3 56 KB_SCLN, // Fn3
57 KB_SPC, // FN_4 57 KB_SPC, // Fn4
58 KB_NO, // FN_5 58 KB_NO, // Fn5
59 KB_NO, // FN_6 59 KB_NO, // Fn6
60 KB_NO // FN_7 60 KB_NO // Fn7
61}; 61};
62 62
63static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 63static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -76,9 +76,9 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
76 */ 76 */
77 KEYMAP(KB_ESC, KB_1, KB_2, KB_3, KB_4, KB_5, KB_6, KB_7, KB_8, KB_9, KB_0, KB_MINS,KB_EQL, KB_BSPC, \ 77 KEYMAP(KB_ESC, KB_1, KB_2, KB_3, KB_4, KB_5, KB_6, KB_7, KB_8, KB_9, KB_0, KB_MINS,KB_EQL, KB_BSPC, \
78 KB_TAB, KB_Q, KB_W, KB_E, KB_R, KB_T, KB_Y, KB_U, KB_I, KB_O, KB_P, KB_LBRC,KB_RBRC, \ 78 KB_TAB, KB_Q, KB_W, KB_E, KB_R, KB_T, KB_Y, KB_U, KB_I, KB_O, KB_P, KB_LBRC,KB_RBRC, \
79 KB_LCTL,KB_A, KB_S, KB_D, KB_F, KB_G, KB_H, KB_J, KB_K, KB_L, FN_3, KB_QUOT,KB_ENT, \ 79 KB_LCTL,KB_A, KB_S, KB_D, KB_F, KB_G, KB_H, KB_J, KB_K, KB_L, KB_FN3, KB_QUOT,KB_ENT, \
80 KB_LSFT,KB_Z, KB_X, KB_C, KB_V, KB_B, KB_N, KB_M, KB_COMM,KB_DOT, FN_2, KB_RSFT,FN_1, \ 80 KB_LSFT,KB_Z, KB_X, KB_C, KB_V, KB_B, KB_N, KB_M, KB_COMM,KB_DOT, KB_FN2, KB_RSFT,KB_FN1, \
81 FN_7, KB_LGUI,KB_LALT,FN_4, KB_RALT,KB_RGUI,FN_6, FN_6, KB_RCTL), 81 KB_FN7, KB_LGUI,KB_LALT,KB_FN4, KB_RALT,KB_RGUI,KB_FN6, KB_FN6, KB_RCTL),
82 82
83 83
84 /* Layer 1: HHKB mode (HHKB Fn) 84 /* Layer 1: HHKB mode (HHKB Fn)
@@ -96,8 +96,8 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
96 */ 96 */
97 KEYMAP(KB_ESC, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_DEL, \ 97 KEYMAP(KB_ESC, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_DEL, \
98 KB_CAPS,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_PSCR,KB_SLCK,KB_BRK, KB_UP, KB_NO, \ 98 KB_CAPS,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_PSCR,KB_SLCK,KB_BRK, KB_UP, KB_NO, \
99 KB_LCTL,KB_VOLD,KB_VOLU,KB_MUTE,KB_NO, KB_NO, KP_ASTR,KP_SLSH,KB_HOME,KB_PGUP,KB_LEFT,KB_RGHT,KB_ENT, \ 99 KB_LCTL,KB_VOLD,KB_VOLU,KB_MUTE,KB_NO, KB_NO, KB_PAST,KB_PSLS,KB_HOME,KB_PGUP,KB_LEFT,KB_RGHT,KB_ENT, \
100 KB_LSFT,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KP_PLUS,KP_MINS,KB_END, KB_PGDN,KB_DOWN,KB_RSFT,FN_1, \ 100 KB_LSFT,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_PPLS,KB_PMNS,KB_END, KB_PGDN,KB_DOWN,KB_RSFT,KB_FN1, \
101 KB_NO, KB_LGUI,KB_LALT,KB_SPC, KB_RALT,KB_NO, KB_NO, KB_NO, KB_RCTL), 101 KB_NO, KB_LGUI,KB_LALT,KB_SPC, KB_RALT,KB_NO, KB_NO, KB_NO, KB_RCTL),
102 102
103 103
@@ -117,8 +117,8 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
117 KEYMAP(KB_GRV, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_GRV, \ 117 KEYMAP(KB_GRV, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_GRV, \
118 KB_BSLS,KB_HOME,KB_PGDN,KB_UP, KB_PGUP,KB_END, KB_HOME,KB_PGDN,KB_PGUP,KB_END, KB_NO, KB_NO, KB_NO, \ 118 KB_BSLS,KB_HOME,KB_PGDN,KB_UP, KB_PGUP,KB_END, KB_HOME,KB_PGDN,KB_PGUP,KB_END, KB_NO, KB_NO, KB_NO, \
119 KB_LCTL,KB_NO, KB_LEFT,KB_DOWN,KB_RGHT,KB_NO, KB_LEFT,KB_DOWN,KB_UP, KB_RGHT,KB_NO, KB_NO, KB_BSLS, \ 119 KB_LCTL,KB_NO, KB_LEFT,KB_DOWN,KB_RGHT,KB_NO, KB_LEFT,KB_DOWN,KB_UP, KB_RGHT,KB_NO, KB_NO, KB_BSLS, \
120 KB_LSFT,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, FN_2, KB_RSFT,KB_NO, \ 120 KB_LSFT,KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_FN2, KB_RSFT,KB_NO, \
121 KB_NO, KB_LGUI,KB_LALT,KB_SPC, KB_RALT,KB_RGUI,FN_6, FN_6, KB_RCTL), 121 KB_NO, KB_LGUI,KB_LALT,KB_SPC, KB_RALT,KB_RGUI,KB_FN6, KB_FN6, KB_RCTL),
122 122
123 123
124 /* Layer 3: Mouse mode (Semicolon) 124 /* Layer 3: Mouse mode (Semicolon)
@@ -136,10 +136,10 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
136 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel 136 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
137 */ 137 */
138 KEYMAP(KB_GRV, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_GRV, \ 138 KEYMAP(KB_GRV, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_GRV, \
139 KB_BSLS,MS_WH_L,MS_WH_D,MS_UP, MS_WH_U,MS_WH_R,MS_WH_L,MS_WH_D,MS_WH_U,MS_WH_R,KB_NO, KB_NO, KB_NO, \ 139 KB_BSLS,KB_WH_L,KB_WH_D,KB_MS_U,KB_WH_U,KB_WH_R,KB_WH_L,KB_WH_D,KB_WH_U,KB_WH_R,KB_NO, KB_NO, KB_NO, \
140 KB_LCTL,KB_NO, MS_LEFT,MS_DOWN,MS_RGHT,KB_NO, MS_LEFT,MS_DOWN,MS_UP, MS_RGHT,FN_3, KB_NO, KB_BSLS, \ 140 KB_LCTL,KB_NO, KB_MS_L,KB_MS_D,KB_MS_R,KB_NO, KB_MS_L,KB_MS_D,KB_MS_U,KB_MS_R,KB_FN3, KB_NO, KB_BSLS, \
141 KB_LSFT,KB_NO, KB_NO, MS_BTN1,MS_BTN2,MS_BTN3,MS_BTN2,MS_BTN1,KB_NO, KB_NO, KB_NO, KB_RSFT,KB_NO, \ 141 KB_LSFT,KB_NO, KB_NO, KB_BTN1,KB_BTN2,KB_BTN3,KB_BTN2,KB_BTN1,KB_NO, KB_NO, KB_NO, KB_RSFT,KB_NO, \
142 FN_7, KB_LGUI,KB_LALT,MS_BTN1,KB_RALT,KB_NO, KB_NO, KB_NO, KB_NO), 142 KB_FN7, KB_LGUI,KB_LALT,KB_BTN1,KB_RALT,KB_NO, KB_NO, KB_NO, KB_NO),
143 143
144 144
145 /* Layer 4: Matias half keyboard style (Space) 145 /* Layer 4: Matias half keyboard style (Space)
@@ -159,7 +159,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
159 KB_BSPC,KB_P, KB_O, KB_I, KB_U, KB_Y, KB_T, KB_R, KB_E, KB_W, KB_Q, KB_TAB, KB_TAB, \ 159 KB_BSPC,KB_P, KB_O, KB_I, KB_U, KB_Y, KB_T, KB_R, KB_E, KB_W, KB_Q, KB_TAB, KB_TAB, \
160 KB_LCTL,KB_SCLN,KB_L, KB_K, KB_J, KB_H, KB_G, KB_F, KB_D, KB_S, KB_A, KB_RCTL,KB_RCTL, \ 160 KB_LCTL,KB_SCLN,KB_L, KB_K, KB_J, KB_H, KB_G, KB_F, KB_D, KB_S, KB_A, KB_RCTL,KB_RCTL, \
161 KB_LSFT,KB_SLSH,KB_DOT, KB_COMM,KB_M, KB_N, KB_B, KB_V, KB_C, KB_X, KB_Z, KB_RSFT,KB_NO, \ 161 KB_LSFT,KB_SLSH,KB_DOT, KB_COMM,KB_M, KB_N, KB_B, KB_V, KB_C, KB_X, KB_Z, KB_RSFT,KB_NO, \
162 KB_NO, KB_LGUI,KB_LALT,FN_4, KB_RALT,KB_RGUI,KB_NO, KB_NO, KB_RCTL), 162 KB_NO, KB_LGUI,KB_LALT,KB_FN4, KB_RALT,KB_RGUI,KB_NO, KB_NO, KB_RCTL),
163}; 163};
164 164
165 165
diff --git a/mousekey.c b/mousekey.c
index be454e13e..f2f0de506 100644
--- a/mousekey.c
+++ b/mousekey.c
@@ -30,19 +30,19 @@ static inline uint8_t move_unit(void)
30 30
31void mousekey_decode(uint8_t code) 31void mousekey_decode(uint8_t code)
32{ 32{
33 if (code == MS_UP) mousekey_y -= move_unit(); 33 if (code == KB_MS_UP) mousekey_y -= move_unit();
34 else if (code == MS_DOWN) mousekey_y += move_unit(); 34 else if (code == KB_MS_DOWN) mousekey_y += move_unit();
35 else if (code == MS_LEFT) mousekey_x -= move_unit(); 35 else if (code == KB_MS_LEFT) mousekey_x -= move_unit();
36 else if (code == MS_RGHT) mousekey_x += move_unit(); 36 else if (code == KB_MS_RIGHT) mousekey_x += move_unit();
37 else if (code == MS_BTN1) mousekey_btn |= MOUSE_BTN1; 37 else if (code == KB_MS_BTN1) mousekey_btn |= MOUSE_BTN1;
38 else if (code == MS_BTN2) mousekey_btn |= MOUSE_BTN2; 38 else if (code == KB_MS_BTN2) mousekey_btn |= MOUSE_BTN2;
39 else if (code == MS_BTN3) mousekey_btn |= MOUSE_BTN3; 39 else if (code == KB_MS_BTN3) mousekey_btn |= MOUSE_BTN3;
40 else if (code == MS_BTN4) mousekey_btn |= MOUSE_BTN4; 40 else if (code == KB_MS_BTN4) mousekey_btn |= MOUSE_BTN4;
41 else if (code == MS_BTN5) mousekey_btn |= MOUSE_BTN5; 41 else if (code == KB_MS_BTN5) mousekey_btn |= MOUSE_BTN5;
42 else if (code == MS_WH_U) mousekey_v += 1; 42 else if (code == KB_MS_WH_UP) mousekey_v += 1;
43 else if (code == MS_WH_D) mousekey_v -= 1; 43 else if (code == KB_MS_WH_DOWN) mousekey_v -= 1;
44 else if (code == MS_WH_L) mousekey_h -= 1; 44 else if (code == KB_MS_WH_LEFT) mousekey_h -= 1;
45 else if (code == MS_WH_R) mousekey_h += 1; 45 else if (code == KB_MS_WH_RIGHT) mousekey_h += 1;
46} 46}
47 47
48bool mousekey_changed(void) 48bool mousekey_changed(void)
diff --git a/usb_keycodes.h b/usb_keycodes.h
index 9c5759843..59c97785a 100644
--- a/usb_keycodes.h
+++ b/usb_keycodes.h
@@ -32,24 +32,26 @@
32 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 32 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
33 * MA 02110-1301 USA 33 * MA 02110-1301 USA
34 */ 34 */
35
36#ifndef USB_KEYCODES_H 35#ifndef USB_KEYCODES_H
37#define USB_KEYCODES_H 36#define USB_KEYCODES_H
38 37
39#define IS_ERROR(code) (KB_ROLL_OVER <= (code) && (code) <= KB_UNDEFINED) 38
40#define IS_KEY(code) (KB_A <= (code) && (code) <= KP_HEXADECIMAL) 39#define IS_ERROR(code) (KB_ROLL_OVER <= (code) && (code) <= KB_UNDEFINED)
41#define IS_MOD(code) (KB_LCTRL <= (code) && (code) <= KB_RGUI) 40#define IS_KEY(code) (KB_A <= (code) && (code) <= KB_KP_HEXADECIMAL)
42#define IS_FN(code) (FN_0 <= (code) && (code) <= FN_7) 41#define IS_MOD(code) (KB_LCTRL <= (code) && (code) <= KB_RGUI)
43#define IS_MOUSEKEY(code) (MS_UP <= (code) && (code) <= MS_WH_RIGHT) 42#define IS_FN(code) (KB_FN0 <= (code) && (code) <= KB_FN7)
44#define IS_MOUSEKEY_MOVE(code) (MS_UP <= (code) && (code) <= MS_RIGHT) 43#define IS_MOUSEKEY(code) (KB_MS_UP <= (code) && (code) <= KB_MS_WH_RIGHT)
45#define IS_MOUSEKEY_BUTTON(code) (MS_BTN1 <= (code) && (code) <= MS_BTN5) 44#define IS_MOUSEKEY_MOVE(code) (KB_MS_UP <= (code) && (code) <= KB_MS_RIGHT)
46#define IS_MOUSEKEY_WHEEL(code) (MS_WH_UP <= (code) && (code) <= MS_WH_RIGHT) 45#define IS_MOUSEKEY_BUTTON(code) (KB_MS_BTN1 <= (code) && (code) <= KB_MS_BTN5)
46#define IS_MOUSEKEY_WHEEL(code) (KB_MS_WH_UP <= (code) && (code) <= KB_MS_WH_RIGHT)
47 47
48#define MOD_BIT(code) (1<<((code) & 0x07)) 48#define MOD_BIT(code) (1<<((code) & 0x07))
49#define FN_BIT(code) (1<<((code) - FN_0)) 49#define FN_BIT(code) (1<<((code) - KB_FN0))
50 50
51 51
52// short names 52//
53// Short names
54//
53#define KB_LCTL KB_LCTRL 55#define KB_LCTL KB_LCTRL
54#define KB_RCTL KB_RCTRL 56#define KB_RCTL KB_RCTRL
55#define KB_LSFT KB_LSHIFT 57#define KB_LSFT KB_LSHIFT
@@ -65,6 +67,7 @@
65#define KB_PSCR KB_PSCREEN 67#define KB_PSCR KB_PSCREEN
66#define KB_SLCK KB_SCKLOCK 68#define KB_SLCK KB_SCKLOCK
67#define KB_BRK KB_BREAK 69#define KB_BRK KB_BREAK
70#define KB_NLCK KB_NUMLOCK
68#define KB_SPC KB_SPACE 71#define KB_SPC KB_SPACE
69#define KB_MINS KB_MINUS 72#define KB_MINS KB_MINUS
70#define KB_EQL KB_EQUAL 73#define KB_EQL KB_EQUAL
@@ -79,14 +82,38 @@
79#define KB_PWR KB_POWER 82#define KB_PWR KB_POWER
80#define KB_VOLU KB_VOLUP 83#define KB_VOLU KB_VOLUP
81#define KB_VOLD KB_VOLDOWN 84#define KB_VOLD KB_VOLDOWN
82#define KP_SLSH KP_SLASH 85// Keypad
83#define KP_ASTR KP_ASTERISK 86#define KB_P1 KB_KP_1
84#define KP_MINS KP_MINUS 87#define KB_P2 KB_KP_2
85#define MS_RGHT MS_RIGHT 88#define KB_P3 KB_KP_3
86#define MS_WH_U MS_WH_UP 89#define KB_P4 KB_KP_4
87#define MS_WH_D MS_WH_DOWN 90#define KB_P5 KB_KP_5
88#define MS_WH_L MS_WH_LEFT 91#define KB_P6 KB_KP_6
89#define MS_WH_R MS_WH_RIGHT 92#define KB_P7 KB_KP_7
93#define KB_P8 KB_KP_8
94#define KB_P9 KB_KP_9
95#define KB_P0 KB_KP_0
96#define KB_PDOT KB_KP_DOT
97#define KB_PSLS KB_KP_SLASH
98#define KB_PAST KB_KP_ASTERISK
99#define KB_PMNS KB_KP_MINUS
100#define KB_PPLS KB_KP_PLUS
101#define KB_PEQL KB_KP_EQUAL
102#define KB_PENT KB_KP_ENTER
103// Mousekey
104#define KB_MS_U KB_MS_UP
105#define KB_MS_D KB_MS_DOWN
106#define KB_MS_L KB_MS_LEFT
107#define KB_MS_R KB_MS_RIGHT
108#define KB_BTN1 KB_MS_BTN1
109#define KB_BTN2 KB_MS_BTN2
110#define KB_BTN3 KB_MS_BTN3
111#define KB_BTN4 KB_MS_BTN4
112#define KB_BTN5 KB_MS_BTN5
113#define KB_WH_U KB_MS_WH_UP
114#define KB_WH_D KB_MS_WH_DOWN
115#define KB_WH_L KB_MS_WH_LEFT
116#define KB_WH_R KB_MS_WH_RIGHT
90 117
91 118
92enum keycodes { 119enum keycodes {
@@ -174,26 +201,26 @@ enum keycodes {
174 KB_DOWN, 201 KB_DOWN,
175 KB_UP, 202 KB_UP,
176 KB_NUMLOCK, 203 KB_NUMLOCK,
177 KP_SLASH, 204 KB_KP_SLASH,
178 KP_ASTERISK, 205 KB_KP_ASTERISK,
179 KP_MINUS, 206 KB_KP_MINUS,
180 KP_PLUS, 207 KB_KP_PLUS,
181 KP_ENTER, 208 KB_KP_ENTER,
182 KP_1, 209 KB_KP_1,
183 KP_2, 210 KB_KP_2,
184 KP_3, 211 KB_KP_3,
185 KP_4, 212 KB_KP_4,
186 KP_5, 213 KB_KP_5,
187 KP_6, 214 KB_KP_6,
188 KP_7, 215 KB_KP_7,
189 KP_8, /* 0x60 */ 216 KB_KP_8, /* 0x60 */
190 KP_9, 217 KB_KP_9,
191 KP_0, 218 KB_KP_0,
192 KP_DOT, 219 KB_KP_DOT,
193 KB_NONUS_BSLASH, /* Non-US \ and | */ 220 KB_NONUS_BSLASH, /* Non-US \ and | */
194 KB_APPLICATION, 221 KB_APPLICATION,
195 KB_POWER, 222 KB_POWER,
196 KP_EQUAL, 223 KB_KP_EQUAL,
197 KB_F13, 224 KB_F13,
198 KB_F14, 225 KB_F14,
199 KB_F15, 226 KB_F15,
@@ -223,8 +250,8 @@ enum keycodes {
223 KB_LOCKING_CAPS, /* locking Caps Lock */ 250 KB_LOCKING_CAPS, /* locking Caps Lock */
224 KB_LOCKING_NUM, /* locking Num Lock */ 251 KB_LOCKING_NUM, /* locking Num Lock */
225 KB_LOCKING_SCROLL, /* locking Scroll Lock */ 252 KB_LOCKING_SCROLL, /* locking Scroll Lock */
226 KP_COMMA, 253 KB_KP_COMMA,
227 KP_EQUAL_AS400, /* equal sign on AS/400 */ 254 KB_KP_EQUAL_AS400, /* equal sign on AS/400 */
228 KB_INT1, 255 KB_INT1,
229 KB_INT2, 256 KB_INT2,
230 KB_INT3, 257 KB_INT3,
@@ -256,52 +283,52 @@ enum keycodes {
256 KB_CRSEL, 283 KB_CRSEL,
257 KB_EXSEL, 284 KB_EXSEL,
258 285
259 KP_00 = 0xB0, 286 KB_KP_00 = 0xB0,
260 KP_000, 287 KB_KP_000,
261 KB_THOUSANDS_SEPARATOR, 288 KB_THOUSANDS_SEPARATOR,
262 KB_DECIMAL_SEPARATOR, 289 KB_DECIMAL_SEPARATOR,
263 CURRENCY_UNIT, 290 KB_CURRENCY_UNIT,
264 CURRENCY_SUB_UNIT, 291 KB_CURRENCY_SUB_UNIT,
265 KP_LPAREN, 292 KB_KP_LPAREN,
266 KP_RPAREN, 293 KB_KP_RPAREN,
267 KP_LCBRACKET, /* { */ 294 KB_KP_LCBRACKET, /* { */
268 KP_RCBRACKET, /* } */ 295 KB_KP_RCBRACKET, /* } */
269 KP_TAB, 296 KB_KP_TAB,
270 KP_BSPACE, 297 KB_KP_BSPACE,
271 KP_A, 298 KB_KP_A,
272 KP_B, 299 KB_KP_B,
273 KP_C, 300 KB_KP_C,
274 KP_D, 301 KB_KP_D,
275 KP_E, 302 KB_KP_E,
276 KP_F, 303 KB_KP_F,
277 KP_XOR, 304 KB_KP_XOR,
278 KP_HAT, 305 KB_KP_HAT,
279 KP_PERC, 306 KB_KP_PERC,
280 KP_LT, 307 KB_KP_LT,
281 KP_GT, 308 KB_KP_GT,
282 KP_AND, 309 KB_KP_AND,
283 KP_LAZYAND, 310 KB_KP_LAZYAND,
284 KP_OR, 311 KB_KP_OR,
285 KP_LAZYOR, 312 KB_KP_LAZYOR,
286 KP_COLON, 313 KB_KP_COLON,
287 KP_HASH, 314 KB_KP_HASH,
288 KP_SPACE, 315 KB_KP_SPACE,
289 KP_ATMARK, 316 KB_KP_ATMARK,
290 KP_EXCLAMATION, 317 KB_KP_EXCLAMATION,
291 KP_MEM_STORE, 318 KB_KP_MEM_STORE,
292 KP_MEM_RECALL, 319 KB_KP_MEM_RECALL,
293 KP_MEM_CLEAR, 320 KB_KP_MEM_CLEAR,
294 KP_MEM_ADD, 321 KB_KP_MEM_ADD,
295 KP_MEM_SUB, 322 KB_KP_MEM_SUB,
296 KP_MEM_MUL, 323 KB_KP_MEM_MUL,
297 KP_MEM_DIV, 324 KB_KP_MEM_DIV,
298 KP_PLUS_MINUS, 325 KB_KP_PLUS_MINUS,
299 KP_CLEAR, 326 KB_KP_CLEAR,
300 KP_CLEAR_ENTRY, 327 KB_KP_CLEAR_ENTRY,
301 KP_BINARY, 328 KB_KP_BINARY,
302 KP_OCTAL, 329 KB_KP_OCTAL,
303 KP_DECIMAL, 330 KB_KP_DECIMAL,
304 KP_HEXADECIMAL, 331 KB_KP_HEXADECIMAL,
305 332
306 /* modifiers */ 333 /* modifiers */
307 KB_LCTRL = 0xE0, /* 0x01 */ 334 KB_LCTRL = 0xE0, /* 0x01 */
@@ -314,27 +341,30 @@ enum keycodes {
314 KB_RGUI, /* 0x80 */ 341 KB_RGUI, /* 0x80 */
315 342
316 /* extensions for internal use */ 343 /* extensions for internal use */
317 FN_0 = 0xE8, 344 KB_FN0 = 0xE8,
318 FN_1, 345 KB_FN1,
319 FN_2, 346 KB_FN2,
320 FN_3, 347 KB_FN3,
321 FN_4, 348 KB_FN4,
322 FN_5, 349 KB_FN5,
323 FN_6, 350 KB_FN6,
324 FN_7, 351 KB_FN7,
325 MS_UP = 0xF0, 352 // Mousekey move
326 MS_DOWN, 353 KB_MS_UP = 0xF0,
327 MS_LEFT, 354 KB_MS_DOWN,
328 MS_RIGHT, 355 KB_MS_LEFT,
329 MS_BTN1 = 0xF4, 356 KB_MS_RIGHT,
330 MS_BTN2, 357 // Mousekey buttons
331 MS_BTN3, 358 KB_MS_BTN1 = 0xF4,
332 MS_BTN4, 359 KB_MS_BTN2,
333 MS_BTN5, 360 KB_MS_BTN3,
334 MS_WH_UP, 361 KB_MS_BTN4,
335 MS_WH_DOWN, 362 KB_MS_BTN5,
336 MS_WH_LEFT, 363 // Mousekey wheel
337 MS_WH_RIGHT, 364 KB_MS_WH_UP,
365 KB_MS_WH_DOWN,
366 KB_MS_WH_LEFT,
367 KB_MS_WH_RIGHT,
338}; 368};
339 369
340#endif /* USB_KEYCODES_H */ 370#endif /* USB_KEYCODES_H */