]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/pearl/keymaps/rask/keymap.c
b9f1350939b81851c52c8e59912d45d953913153
[qmk_firmware.git] / keyboards / pearl / keymaps / rask / keymap.c
1 #include "pearl.h"
2
3 #define ____ KC_TRNS
4
5 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
6     // BASE LAYER
7     [0] = KEYMAP(
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,
9         MO(2),      KC_A,       KC_S,       KC_D,       KC_F,   KC_G,   KC_H,   KC_J,   KC_K,       KC_L,   KC_SCLN,                KC_ENT,
10         KC_LSFT,    KC_Z,       KC_X,       KC_C,       KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM,    KC_DOT, KC_SLSH,                MO(3),
11                     KC_LCTL,    KC_LALT,    KC_BSPC,    MO(1),          MO(1),          KC_SPC,     KC_RALT,            KC_LGUI
12     ),
13     // BASE LAYER TWO (Fn1)
14     [1] = KEYMAP(
15         KC_GRV,     KC_1,       KC_2,       KC_3,       KC_4,   KC_5,   KC_6,   KC_7,   KC_8,       KC_9,   KC_0,       KC_MINS,    KC_EQL,
16         ____,       ____,       ____,       ____,       ____,   ____,   ____,   ____,   ____,       ____,   KC_QUOT,                KC_BSLS,
17         ____,       ____,       ____,       ____,       ____,   ____,   ____,   ____,   ____,       ____,   ____,                   KC_RSFT,
18                     ____,       ____,       ____,       ____,           ____,           ____,       ____,               ____
19     ),
20     // FROW LAYER AND ARROWS (Fn2)
21     [2] = KEYMAP(
22         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,
23         ____,       ____,       ____,       ____,       ____,   ____,   ____,   ____,   ____,       KC_UP,  ____,                   ____,
24         ____,       ____,       ____,       ____,       ____,   ____,   ____,   ____,   KC_LEFT,    KC_DOWN,KC_RGHT,                MO(4),
25                     ____,       ____,       ____,       ____,           ____,           ____,       ____,               ____
26     ),
27     // MEDIA AND RGB (Fn3)
28     [3] = KEYMAP(
29         ____,       ____,       ____,       ____,       ____,   ____,   ____,   ____,   ____,       KC_MPRV,KC_MPLY,    KC_MNXT,    KC_DEL,
30         ____,       ____,       ____,       RGB_HUI,    RGB_SAI,RGB_VAI,____,   ____,   ____,       ____,   ____,                   ____,
31         ____,       RGB_MOD,    RGB_TOG,    RGB_HUD,    RGB_SAD,RGB_VAD,____,   ____,   ____,       ____,   ____,                   ____,
32                     ____,       ____,       ____,       ____,           ____,           ____,       ____,               ____
33     ),
34     // UTIL (Fn1+Fn3)
35     [4] = KEYMAP(
36         ____,       ____,       ____,       ____,       ____,   ____,   ____,   ____,   ____,       ____,   ____,       KC_PSCR,    ____,
37         ____,       ____,       ____,       ____,       ____,   ____,   ____,   ____,   ____,       KC_PGUP,____,                   ____,
38         ____,       ____,       ____,       ____,       ____,   ____,   ____,   ____,   KC_HOME,    KC_PGDN,KC_END,                 ____,
39                     RESET,      ____,       ____,       ____,           ____,           ____,       ____,               ____
40     ),
41 };
42
43 /**
44  * Status LED layer indicators courtesy of jetpacktuxedo's firmware
45  */
46 uint32_t layer_state_set_kb(uint32_t state)
47 {
48     // if we are on layer 1
49     if (state & (1<<1)){
50         // light num lock led
51         PORTD |= (1 << PD0);
52     } else{
53         PORTD &= ~(1 << PD0);
54     }
55
56     // if we are on layer 2
57     if (state & (1<<2)){
58         // light caps lock led
59         PORTD |= (1 << PD1);
60     } else{
61         PORTD &= ~(1 << PD1);
62     }
63
64     // if we are on layer 3
65     if (state & (1<<3)){
66         // light scroll lock led
67         PORTD |= (1 << PD6);
68     } else{
69         PORTD &= ~(1 << PD6);
70     }
71
72     /*
73     // if we are on layer 4
74     if (state & (1<<4)){
75         // light all leds
76         PORTD |= (1 << PD0);
77         PORTD |= (1 << PD1);
78         PORTD |= (1 << PD6);
79     } else{
80         PORTD &= ~(1 << PD0);
81         PORTD &= ~(1 << PD1);
82         PORTD &= ~(1 << PD6);
83     }
84     */
85
86     return state;
87 }