summaryrefslogtreecommitdiffstats
path: root/keyboards/puck/keymaps/default/keymap.c
blob: 6ba70a88bb59b741b436497ffb1c2e6db2f0abf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include QMK_KEYBOARD_H

#define _BL 0
#define _HL 1
#define _LL 2

enum keycodes {
  LOW,
  HIGH
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  /*
  * Base Layer (Numbers)
  */
  [_BL] = LAYOUT(
    KC_KP_7,    KC_KP_8,    KC_KP_9,
    KC_KP_4,    KC_KP_5,    KC_KP_6,
    KC_KP_1,    KC_KP_2,    KC_KP_3,
    LOW,        KC_KP_0,    HIGH
  ),
  /*
  * High Layer (Work)
  */
  [_HL] = LAYOUT(
    KC_NUMLOCK,      KC_PAST,    KC_NO,
    KC_PMNS,         KC_PENT,    KC_PPLS,
    KC_NO,           KC_PSLS,    KC_NO,
    KC_NO,           KC_PDOT,    KC_NO
  ),
  /*
  * Low Layer (Media)
  */
  [_LL] = LAYOUT(
    KC_NO,    KC_VOLU,    KC_NO,
    KC_MPRV,  KC_MPLY,    KC_MNXT,
    KC_NO,    KC_VOLD,    KC_NO,
    KC_NO,    KC_NO,      KC_NO
  ),
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch(keycode) {
    case HIGH:
      if (record->event.pressed) {
        layer_on(_HL);
      }else{
        layer_off(_HL);
        layer_off(_LL);
      }
      return false;
      break;
    case LOW:
      if (record->event.pressed) {
        layer_on(_LL);
      }else{
        layer_off(_LL);
        layer_off(_HL);
      }
      return false;
      break;
  }
  return true;
}