1 /* Copyright 2017 John Ramsay
4 * Designed for aeronautical data entry on the OLKB Planck.
7 #include QMK_KEYBOARD_H
9 extern keymap_config_t keymap_config
;
19 enum planck_keycodes
{
29 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
32 * ,-----------------------------------------------------------------------------------.
33 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
34 * |------+------+------+------+------+-------------+------+------+------+------+------|
35 * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
36 * |------+------+------+------+------+------|------+------+------+------+------+------|
37 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
38 * |------+------+------+------+------+------+------+------+------+------+------+------|
39 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
40 * `-----------------------------------------------------------------------------------'
42 [_QWERTY
] = LAYOUT_planck_grid(
43 KC_ESC
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_BSPC
,
44 KC_TAB
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
,
45 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_ENT
,
46 BACKLIT
, KC_LCTL
, KC_LALT
, KC_LGUI
, LOWER
, KC_SPC
, KC_SPC
, RAISE
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
50 * ,-----------------------------------------------------------------------------------.
51 * | Esc | Home | Up | End | | | N | S | 7 | 8 | 9 | Bksp |
52 * |------+------+------+------+------+-------------+------+------+------+------+------|
53 * | Tab | Left | Down | Right| | | E | W | 4 | 5 | 6 | Tab |
54 * |------+------+------+------+------+------|------+------+------+------+------+------|
55 * | Shift| Z | X | C | V | | + | - | 1 | 2 | 3 |Enter |
56 * |------+------+------+------+------+------+------+------+------+------+------+------|
57 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | 0 | . |Shift |Enter |
58 * `-----------------------------------------------------------------------------------'
60 [_DATA
] = LAYOUT_planck_grid(
61 KC_ESC
, KC_HOME
, KC_UP
, KC_END
, ___x___
, ___x___
, KC_N
, KC_S
, KC_7
, KC_8
, KC_9
, KC_BSPC
,
62 KC_TAB
, KC_LEFT
, KC_DOWN
, KC_RIGHT
, ___x___
, ___x___
, KC_E
, KC_W
, KC_4
, KC_5
, KC_6
, KC_TAB
,
63 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, ___x___
, KC_PLUS
, KC_MINS
, KC_1
, KC_2
, KC_3
, KC_ENT
,
64 BACKLIT
, KC_LCTL
, KC_LALT
, KC_LGUI
, LOWER
, KC_SPC
, KC_SPC
, RAISE
, KC_0
, KC_DOT
, KC_RSFT
, KC_ENT
68 * ,-----------------------------------------------------------------------------------.
69 * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
70 * |------+------+------+------+------+-------------+------+------+------+------+------|
71 * | | ~ | ` | | | | | _ | + | { | } | \ |
72 * |------+------+------+------+------+------|------+------+------+------+------+------|
73 * | | | | | | | | - | = | [ | ] | |
74 * |------+------+------+------+------+------+------+------+------+------+------+------|
75 * | | | | | | | | Home |Pg Dn |Pg Up | End |
76 * `-----------------------------------------------------------------------------------'
78 [_LOWER
] = LAYOUT_planck_grid(
79 KC_DEL
, KC_EXLM
, KC_AT
, KC_HASH
, KC_DLR
, KC_PERC
, KC_CIRC
, KC_AMPR
, KC_ASTR
, KC_LPRN
, KC_RPRN
, KC_BSPC
,
80 _______
, KC_TILD
, KC_GRV
, ___x___
, ___x___
, ___x___
, ___x___
, KC_UNDS
, KC_PLUS
, KC_LCBR
, KC_RCBR
, KC_BSLS
,
81 _______
, ___x___
, ___x___
, ___x___
, ___x___
, ___x___
, ___x___
, KC_MINS
, KC_EQL
, KC_LBRC
, KC_RBRC
, _______
,
82 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, KC_HOME
, KC_PGDN
, KC_PGUP
, KC_END
86 * ,-----------------------------------------------------------------------------------.
87 * | Del | F1 | F2 | F3 | F4 | | N | S | 7 | 8 | 9 | Bksp |
88 * |------+------+------+------+------+-------------+------+------+------+------+------|
89 * | | F5 | F6 | F7 | F8 | | E | W | 4 | 5 | 6 | Tab |
90 * |------+------+------+------+------+------|------+------+------+------+------+------|
91 * | | F9 | F10 | F11 | F12 | | + | - | 1 | 2 | 3 | |
92 * |------+------+------+------+------+------+------+------+------+------+------+------|
93 * | | | | | | | | 0 | . |Shift |Enter |
94 * `-----------------------------------------------------------------------------------'
96 [_RAISE
] = LAYOUT_planck_grid(
97 KC_DEL
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, ___x___
, KC_N
, KC_S
, KC_7
, KC_8
, KC_9
, KC_BSPC
,
98 _______
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, ___x___
, KC_E
, KC_W
, KC_4
, KC_5
, KC_6
, KC_TAB
,
99 _______
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, ___x___
, KC_PLUS
, KC_MINS
, KC_1
, KC_2
, KC_3
, _______
,
100 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, KC_0
, KC_DOT
, KC_RSFT
, KC_ENT
103 /* Adjust (Lower + Raise)
104 * ,-----------------------------------------------------------------------------------.
105 * | Esc | Reset| Debug| | | | | | | | | Del |
106 * |------+------+------+------+------+-------------+------+------+------+------+------|
107 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| Data | | | |
108 * |------+------+------+------+------+------|------+------+------+------+------+------|
109 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
110 * |------+------+------+------+------+------+------+------+------+------+------+------|
111 * | | | | | | | | | | | |
112 * `-----------------------------------------------------------------------------------'
114 [_ADJUST
] = LAYOUT_planck_grid(
115 KC_ESC
, RESET
, DEBUG
, ___x___
, ___x___
, ___x___
, ___x___
, ___x___
, ___x___
, ___x___
, ___x___
, KC_DEL
,
116 _______
, ___x___
, ___x___
, AU_ON
, AU_OFF
, AG_NORM
, AG_SWAP
, QWERTY
, DATA
, ___x___
, ___x___
, _______
,
117 _______
, MUV_DE
, MUV_IN
, MU_ON
, MU_OFF
, MI_ON
, MI_OFF
, ___x___
, ___x___
, ___x___
, ___x___
, _______
,
118 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
122 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
125 if (record
->event
.pressed
) {
126 set_single_persistent_default_layer(_QWERTY
);
127 #ifdef BACKLIGHT_BREATHING
128 breathing_self_disable();
134 if (record
->event
.pressed
) {
135 set_single_persistent_default_layer(_DATA
);
136 #ifdef BACKLIGHT_BREATHING
143 if (record
->event
.pressed
) {
145 uint8_t default_layer
= biton32(default_layer_state
);
146 if (default_layer
== _QWERTY
) {
147 #ifdef BACKLIGHT_BREATHING
151 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
154 uint8_t default_layer
= biton32(default_layer_state
);
155 if (default_layer
== _QWERTY
) {
156 #ifdef BACKLIGHT_BREATHING
157 breathing_self_disable();
160 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
165 if (record
->event
.pressed
) {
167 uint8_t default_layer
= biton32(default_layer_state
);
168 if (default_layer
== _QWERTY
) {
169 #ifdef BACKLIGHT_BREATHING
173 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
176 uint8_t default_layer
= biton32(default_layer_state
);
177 if (default_layer
== _QWERTY
) {
178 #ifdef BACKLIGHT_BREATHING
179 breathing_self_disable();
182 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
187 if (record
->event
.pressed
) {
188 register_code(KC_RSFT
);
189 #ifdef BACKLIGHT_BREATHING
193 unregister_code(KC_RSFT
);