]>
git.gir.st - tmk_keyboard.git/blob - keymap.c
2 * keymap for modified macway keyboarq
4 #include <avr/pgmspace.h>
11 * Layer0(Default Layer)
12 * ,----------------------------------------------------------.
13 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp|
14 * |----------------------------------------------------------|
15 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |
16 * |----------------------------------------------------' |
17 * |Contr| A| S| D| F| G| H| J| K| L| ;| '|Return |
18 * |----------------------------------------------------------|
19 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn2|
20 * |----------------------------------------------------------|
21 * |Fn3|Gui |Alt |Space |Fn1 |Lef|Dow|Up |Rig|
22 * `----------------------------------------------------------'
25 * ,----------------------------------------------------------.
26 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete|
27 * |----------------------------------------------------------|
28 * | \ | | | | | | | | | | | | | |
29 * |----------------------------------------------------' |
30 * |Contr| | | | | |Lef|Dow|Up |Rig| | | \ |
31 * |----------------------------------------------------------|
32 * |Shift | | | | | |Hom|PgD|PgU|End| |Shift | |
33 * |----------------------------------------------------------|
34 * | |Gui |Alt | |Fn1 |Lef|Dow|Up |Rig|
35 * `----------------------------------------------------------'
38 * ,----------------------------------------------------------.
39 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete|
40 * |----------------------------------------------------------|
41 * | \ | | | | | | | | | | |Up | | |
42 * |----------------------------------------------------' |
43 * |Contr|VoD|VoU|Mut|F20| | *| /|Hom|PgU|Lef|Rig| \ |
44 * |----------------------------------------------------------|
45 * |Shift | | | | | | +| -|End|PgD|Dow|Shift |Fn2|
46 * |----------------------------------------------------------|
47 * | |Gui |Alt | | |Lef|Dow|Up |Rig|
48 * `----------------------------------------------------------'
51 * ,----------------------------------------------------------.
52 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete|
53 * |----------------------------------------------------------|
54 * | \ | | | | | | | | | | | | | |
55 * |----------------------------------------------------' |
56 * |Contr|Mb1|Mb2|Mb3| | |McL|McD|McU|McR| | | \ |
57 * |----------------------------------------------------------|
58 * |Shift | | | | | |MwL|MwD|MwU|MwR| |Shift | |
59 * |----------------------------------------------------------|
60 * | |Gui |Alt |Mb1 |Mb2 |MsL|MsD|MsU|MsR|
61 * `----------------------------------------------------------'
62 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
64 static const uint8_t PROGMEM Keymap
[][MATRIX_ROWS
][MATRIX_COLS
] = {
67 { KB_LALT
, KB_NO
, KB_BSPACE
, KB_NO
, KB_LEFT
, KB_NO
, KB_ENTER
, KB_SPACE
},
68 { KB_1
, KB_ESCAPE
, KB_TAB
, KB_Q
, KB_A
, KB_LCTRL
, KB_Z
, KB_RIGHT
},
69 { KB_2
, FN_1
, KB_LGUI
, KB_W
, KB_S
, KB_NO
, KB_X
, KB_UP
},
70 { KB_3
, KB_NO
, KB_RSHIFT
, KB_E
, KB_D
, FN_2
, KB_C
, KB_DOWN
},
71 { KB_4
, KB_5
, KB_T
, KB_R
, KB_F
, KB_G
, KB_V
, KB_B
},
72 { KB_7
, KB_6
, KB_Y
, KB_U
, KB_J
, KB_H
, KB_M
, KB_N
},
73 { KB_8
, KB_EQUAL
, KB_RBRACKET
,KB_I
, KB_K
, KB_NO
, KB_COMMA
, KB_LSHIFT
},
74 { KB_9
, KB_NO
, KB_NO
, KB_O
, KB_L
, FN_3
, KB_DOT
, KB_NO
},
75 { KB_0
, KB_MINUS
, KB_LBRACKET
,KB_P
, KB_SCOLON
, KB_QUOTE
, KB_NO
, KB_SLASH
}
79 { KB_LALT
, KB_NO
, KB_DELETE
, KB_NO
, KB_NO
, KB_NO
, KB_BSLASH
,KB_NO
},
80 { KB_F1
, KB_GRAVE
, KB_BSLASH
, KB_NO
, KB_NO
, KB_LCTRL
, KB_NO
, KB_NO
},
81 { KB_F2
, KB_NO
, KB_LGUI
, KB_NO
, KB_NO
, KB_NO
, KB_NO
, KB_NO
},
82 { KB_F3
, KB_NO
, KB_RSHIFT
, KB_NO
, KB_NO
, KB_NO
, KB_NO
, KB_NO
},
83 { KB_F4
, KB_F5
, KB_NO
, KB_NO
, KB_NO
, KB_NO
, KB_NO
, KB_NO
},
84 { KB_F7
, KB_F6
, KB_NO
, KB_NO
, KB_DOWN
, KB_LEFT
, KB_PGDOWN
,KB_HOME
},
85 { KB_F8
, KB_F12
, KB_NO
, KB_NO
, KB_UP
, KB_NO
, KB_PGUP
, KB_LSHIFT
},
86 { KB_F9
, KB_NO
, KB_NO
, KB_NO
, KB_RIGHT
, KB_NO
, KB_END
, KB_NO
},
87 { KB_F10
, KB_F11
, KB_NO
, KB_NO
, KB_NO
, KB_NO
, KB_NO
, KB_NO
}
91 { KB_LALT
, KB_NO
, KB_DELETE
, KB_NO
, KB_NO
, KB_NO
, KB_BSLASH
,KB_NO
},
92 { KB_F1
, KB_GRAVE
, KB_BSLASH
, KB_NO
, KB_VOLDOWN
,KB_LCTRL
, KB_NO
, KB_NO
},
93 { KB_F2
, KB_NO
, KB_LGUI
, KB_NO
, KB_VOLUP
, KB_NO
, KB_NO
, KB_NO
},
94 { KB_F3
, KB_NO
, KB_RSHIFT
, KB_NO
, KB_MUTE
, KB_NO
, KB_NO
, KB_NO
},
95 { KB_F4
, KB_F5
, KB_NO
, KB_NO
, KB_F20
, KB_NO
, KB_NO
, KB_NO
},
96 { KB_F7
, KB_F6
, KB_NO
, KB_NO
, KP_SLASH
, KP_ASTERISK
,KP_MINUS
, KP_PLUS
},
97 { KB_F8
, KB_F12
, KB_NO
, KB_NO
, KB_HOME
, KB_NO
, KB_END
, KB_LSHIFT
},
98 { KB_F9
, KB_NO
, KB_NO
, KB_NO
, KB_PGUP
, KB_NO
, KB_PGDOWN
,KB_NO
},
99 { KB_F10
, KB_F11
, KB_UP
, KB_NO
, KB_LEFT
, KB_RIGHT
, KB_NO
, KB_DOWN
}
101 // 3: FN_3(LEFT Bottom)
103 { KB_LALT
, KB_NO
, KB_DELETE
, KB_NO
, MS_LEFT
, KB_NO
, KB_BSLASH
, MS_BTN1
},
104 { KB_F1
, KB_GRAVE
, KB_BSLASH
, KB_NO
, MS_BTN1
, KB_LCTRL
, KB_NO
, MS_RIGHT
},
105 { KB_F2
, MS_BTN2
, KB_LGUI
, KB_NO
, MS_BTN2
, KB_NO
, KB_NO
, MS_UP
},
106 { KB_F3
, KB_NO
, KB_RSHIFT
, KB_NO
, MS_BTN3
, KB_NO
, KB_NO
, MS_DOWN
},
107 { KB_F4
, KB_F5
, KB_NO
, KB_NO
, KB_NO
, KB_NO
, KB_NO
, KB_NO
},
108 { KB_F7
, KB_F6
, KB_NO
, KB_NO
, MS_DOWN
, MS_LEFT
, MS_WH_UP
, MS_WH_LEFT
},
109 { KB_F8
, KB_F12
, MS_BTN5
, KB_NO
, MS_UP
, KB_NO
, MS_WH_DOWN
, KB_LSHIFT
},
110 { KB_F9
, KB_NO
, KB_NO
, KB_NO
, MS_RIGHT
, KB_NO
, MS_WH_RIGHT
,KB_NO
},
111 { KB_F10
, KB_F11
, MS_BTN4
, KB_NO
, KB_NO
, KB_NO
, KB_NO
, KB_NO
}
116 uint8_t get_keycode(int layer
, int row
, int col
)
118 if (row
>= MATRIX_ROWS
)
120 if (col
>= MATRIX_COLS
)
122 return pgm_read_byte(&Keymap
[layer
][row
][col
]);
125 int get_layer(void) {
127 for (int row
= 0; row
< MATRIX_ROWS
; row
++) {
128 for (int col
= 0; col
< MATRIX_ROWS
; col
++) {
129 if (matrix
[row
] & 1<<col
) continue;
130 if (get_keycode(0, row
, col
) == FN_1
) layer
= 1;
131 if (get_keycode(0, row
, col
) == FN_2
) layer
= 2;
132 if (get_keycode(0, row
, col
) == FN_3
) layer
= 3;
135 current_layer
= layer
;
136 return current_layer
;