]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/christmas_tree/keymaps/default/keymap.c
a failed attempt at hot-plugging
[qmk_firmware.git] / keyboards / christmas_tree / keymaps / default / keymap.c
1 /* Copyright 2015-2017 Jack Humbert
2  *
3  * This program is free software: you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation, either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15  */
16
17 #include "christmas_tree.h"
18
19 extern keymap_config_t keymap_config;
20
21 enum layers {
22   _BASE,
23   _FUNC
24 };
25
26 enum custom_keycodes {
27   FUNC = SAFE_RANGE,
28   BACKLIT
29 };
30
31 #define _______ KC_TRNS
32
33 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34
35 /* Base
36  *         ,------.
37  *         |   1  |
38  *     ,------+------.
39  *     |   2  |   3  |
40  * ,------+------+------.
41  * |   4  | FUNC |   6  |
42  * `--------------------'
43  */
44 [_BASE] = KEYMAP(KC_1, KC_2, KC_3, KC_4, MO(_FUNC), KC_6),
45
46 /* Func
47  *         ,------.
48  *         |BCKLIT|
49  *     ,------+------.
50  *     |   8  |   9  |
51  * ,------+------+------.
52  * |   0  | FUNC | RESET|
53  * `--------------------'
54  */
55 [_FUNC] = KEYMAP(BACKLIT, KC_8, KC_9, KC_0, _______, RESET)
56
57
58 };
59
60 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
61   switch (keycode) {
62     case BACKLIT:
63       if (record->event.pressed) {
64         register_code(KC_RSFT);
65         #ifdef BACKLIGHT_ENABLE
66                   register_code(KC_LSFT);
67           backlight_step();
68         #endif
69       } else {
70         unregister_code(KC_RSFT);
71                 unregister_code(KC_LSFT);
72       }
73       return false;
74       break;
75   }
76   return true;
77 }