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