]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/christmas_tree/keymaps/default/keymap.c
[Keyboard] Add QMK configurator JSON for Alice PCB (#6397)
[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 QMK_KEYBOARD_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 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32
33   /* Base
34    *         ,------.
35    *         |   1  |
36    *     ,------+------.
37    *     |   2  |   3  |
38    * ,------+------+------.
39    * |   4  | FUNC |   6  |
40    * `--------------------'
41    */
42   [_BASE] = LAYOUT(
43             KC_1,
44          KC_2, KC_3,
45     KC_4, MO(_FUNC), KC_6
46   ),
47
48   /* Func
49    *         ,------.
50    *         |BCKLIT|
51    *     ,------+------.
52    *     |   8  |   9  |
53    * ,------+------+------.
54    * |   0  | FUNC | RESET|
55    * `--------------------'
56    */
57   [_FUNC] = LAYOUT(
58             BACKLIT,
59          KC_8, KC_9,
60     KC_0, _______, RESET
61   )
62
63
64 };
65
66 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
67   switch (keycode) {
68     case BACKLIT:
69       if (record->event.pressed) {
70         register_code(KC_RSFT);
71         #ifdef BACKLIGHT_ENABLE
72                   register_code(KC_LSFT);
73           backlight_step();
74         #endif
75       } else {
76         unregister_code(KC_RSFT);
77                 unregister_code(KC_LSFT);
78       }
79       return false;
80       break;
81   }
82   return true;
83 }