diff options
Diffstat (limited to 'keyboards/handwired/gamenum/keymaps/default/keymap.c')
-rw-r--r-- | keyboards/handwired/gamenum/keymaps/default/keymap.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/keyboards/handwired/gamenum/keymaps/default/keymap.c b/keyboards/handwired/gamenum/keymaps/default/keymap.c new file mode 100644 index 000000000..6950b741a --- /dev/null +++ b/keyboards/handwired/gamenum/keymaps/default/keymap.c | |||
@@ -0,0 +1,68 @@ | |||
1 | #include "gamenum.h" | ||
2 | #include "action_layer.h" | ||
3 | #include "eeconfig.h" | ||
4 | |||
5 | |||
6 | #define _______ KC_TRNS | ||
7 | |||
8 | #define DEF 0 | ||
9 | #define HDN 1 | ||
10 | #define OSY 2 | ||
11 | |||
12 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
13 | [DEF] = KEYMAP( | ||
14 | KC_FN0, KC_SLSH, KC_ASTR, KC_MINS, \ | ||
15 | KC_7, KC_8, KC_9, KC_PLUS, \ | ||
16 | KC_4, KC_5, KC_6, \ | ||
17 | KC_1, KC_2, KC_3, \ | ||
18 | KC_0, KC_DOT, KC_ENT \ | ||
19 | ), | ||
20 | [HDN] = KEYMAP( | ||
21 | KC_FN1, KC_1, KC_2, KC_3, \ | ||
22 | KC_Q, KC_W, KC_E, KC_R, \ | ||
23 | KC_A, KC_S, KC_D, \ | ||
24 | KC_Z, KC_X, KC_C, \ | ||
25 | KC_LSFT, KC_LALT, KC_SPC \ | ||
26 | ), | ||
27 | [OSY] = KEYMAP( | ||
28 | KC_A, KC_Q, KC_1, KC_FN2, \ | ||
29 | KC_S, KC_W, KC_2, KC_LALT, \ | ||
30 | KC_D, KC_E, KC_3, \ | ||
31 | KC_F, KC_R, KC_4, \ | ||
32 | KC_SPC, KC_T, KC_TAB \ | ||
33 | ) | ||
34 | }; | ||
35 | |||
36 | |||
37 | const uint16_t PROGMEM fn_actions[] = { | ||
38 | [0] = ACTION_LAYER_SET(HDN, ON_PRESS), | ||
39 | [1] = ACTION_LAYER_SET(OSY, ON_PRESS), | ||
40 | [2] = ACTION_LAYER_SET(DEF, ON_PRESS), | ||
41 | }; | ||
42 | |||
43 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
44 | return MACRO_NONE; | ||
45 | }; | ||
46 | |||
47 | |||
48 | bool process_record_user (uint16_t keycode, keyrecord_t *record) { | ||
49 | switch(keycode) { | ||
50 | case KC_FN0: | ||
51 | if (record->event.pressed) { | ||
52 | PORTC |= (1 << 6); // PC6 goes high | ||
53 | } | ||
54 | break; | ||
55 | case KC_FN1: | ||
56 | if (record->event.pressed) { | ||
57 | PORTC &= ~(1 << 6); // PC6 goes high | ||
58 | PORTD |= (1<<4); | ||
59 | } | ||
60 | break; | ||
61 | case KC_FN2: | ||
62 | if (record->event.pressed) { | ||
63 | PORTD &= ~(1 << 4); // PC6 goes high | ||
64 | } | ||
65 | break; | ||
66 | } | ||
67 | return true; | ||
68 | } \ No newline at end of file | ||