]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/gh60/keymaps/default/keymap.c
Merge pull request #533 from mazinbokhari/master
[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         ESC, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, GRV,  \
8         TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSPC, \
9         CAPS,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,NO,  ENT,  \
10         LSFT,FN1, Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,FN0, RSFT, \
11         LCTL,LGUI,LALT,          SPC,                BSLS,RALT,RGUI,APP, RCTL),
12     /* 1: fn */
13         KEYMAP(
14         ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, TRNS, \
15         TRNS,TRNS,UP,  TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
16         TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
17         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
18         TRNS,TRNS,TRNS,          TRNS,               TRNS,TRNS,TRNS,TRNS,TRNS),
19     /* 2: arrows */
20         KEYMAP(
21         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
22         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
23         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
24         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,UP,   \
25         TRNS,TRNS,TRNS,          TRNS,               TRNS,TRNS,LEFT,DOWN,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 };