]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/gh60/keymaps/default/keymap.c
Merge commit '60b30c036397cb5627fa374bb930794b225daa29' as 'lib/lufa'
[qmk_firmware.git] / keyboards / gh60 / keymaps / default / keymap.c
1 #include "gh60.h"
2 #include "action_layer.h"
3
4 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5     /* 0: qwerty */
6     KEYMAP(
7               KC_ESC,KC_1,KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINS,KC_EQL,KC_GRV,\
8         KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_LBRC,KC_RBRC,KC_BSPC,\
9         KC_CAPS,KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT,KC_NO,KC_ENT,\
10         KC_LSFT,F(1),KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,F(0),KC_RSFT,\
11         KC_LCTL,KC_LGUI,KC_LALT,       KC_SPC,             KC_BSLS,KC_RALT,KC_RGUI,KC_APP,KC_RCTL),
12     /* 1: fn */
13         KEYMAP(
14         KC_ESC,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_F12,KC_TRNS,\
15         KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
16         KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
17         KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
18         KC_TRNS,KC_TRNS,KC_TRNS,       KC_TRNS,            KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS),
19     /* 2: arrows */
20         KEYMAP(
21         KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
22         KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
23         KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\
24         KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,\
25         KC_TRNS,KC_TRNS,KC_TRNS,       KC_TRNS,            KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT),
26 };
27
28 const uint16_t PROGMEM fn_actions[] = {
29     [0] = ACTION_LAYER_MOMENTARY(1),  // to Fn overlay
30     [1] = ACTION_LAYER_TOGGLE(2),     // toggle arrow overlay
31 };
32
33 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
34 {
35   // MACRODOWN only works in this function
36       switch(id) {
37         case 0:
38           if (record->event.pressed) {
39             register_code(KC_RSFT);
40           } else {
41             unregister_code(KC_RSFT);
42           }
43         break;
44       }
45     return MACRO_NONE;
46 };
47
48 void matrix_scan_user(void) {
49
50 //Layer LED indicators
51     uint32_t layer = layer_state;
52
53     if (layer & (1<<1)) {
54         gh60_wasd_leds_on();
55         gh60_fn_led_on();
56     } else {
57         gh60_wasd_leds_off();
58         gh60_fn_led_off();
59     }
60
61     if (layer & (1<<2)) {
62         gh60_poker_leds_on();
63         gh60_esc_led_on();
64     } else {
65         gh60_poker_leds_off();
66         gh60_esc_led_off();
67     }
68
69 };