]> git.donarmstrong.com Git - qmk_firmware.git/blob - layouts/community/ortho_4x12/drashna/keymap.c
Update to drashna userspace and keymaps (#3172)
[qmk_firmware.git] / layouts / community / ortho_4x12 / drashna / 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 #include "drashna.h"
19
20
21 enum planck_keycodes {
22   BACKLIT = NEW_SAFE_RANGE,
23 };
24
25 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26
27 /* Qwerty
28  * ,-----------------------------------------------------------------------------------.
29  * | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
30  * |------+------+------+------+------+-------------+------+------+------+------+------|
31  * | Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  "   |
32  * |------+------+------+------+------+------|------+------+------+------+------+------|
33  * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Enter |
34  * |------+------+------+------+------+------+------+------+------+------+------+------|
35  * | Brite| Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  |Right |
36  * `-----------------------------------------------------------------------------------'
37  */
38 [_QWERTY] = LAYOUT_ortho_4x12_wrapper(
39   KC_TAB,  _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
40   KC_ESC,  _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
41   KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT,
42   BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
43 ),
44
45 /* Colemak
46  * ,-----------------------------------------------------------------------------------.
47  * | Tab  |   Q  |   W  |   F  |   P  |   G  |   J  |   L  |   U  |   Y  |   ;  | Bksp |
48  * |------+------+------+------+------+-------------+------+------+------+------+------|
49  * | Esc  |   A  |   R  |   S  |   T  |   D  |   H  |   N  |   E  |   I  |   O  |  "   |
50  * |------+------+------+------+------+------|------+------+------+------+------+------|
51  * | Shift|   Z  |   X  |   C  |   V  |   B  |   K  |   M  |   ,  |   .  |   /  |Enter |
52  * |------+------+------+------+------+------+------+------+------+------+------+------|
53  * | Brite| Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  |Right |
54  * `-----------------------------------------------------------------------------------'
55  */
56 [_COLEMAK] = LAYOUT_ortho_4x12_wrapper(
57   KC_TAB,  _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSPC,
58   KC_ESC,  _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
59   KC_LSFT, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, KC_ENT,
60   BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
61 ),
62
63 /* Dvorak
64  * ,-----------------------------------------------------------------------------------.
65  * | Tab  |   "  |   ,  |   .  |   P  |   Y  |   F  |   G  |   C  |   R  |   L  | Bksp |
66  * |------+------+------+------+------+-------------+------+------+------+------+------|
67  * | Esc  |   A  |   O  |   E  |   U  |   I  |   D  |   H  |   T  |   N  |   S  |  /   |
68  * |------+------+------+------+------+------|------+------+------+------+------+------|
69  * | Shift|   ;  |   Q  |   J  |   K  |   X  |   B  |   M  |   W  |   V  |   Z  |Enter |
70  * |------+------+------+------+------+------+------+------+------+------+------+------|
71  * | Brite| Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  |Right |
72  * `-----------------------------------------------------------------------------------'
73  */
74 [_DVORAK] = LAYOUT_ortho_4x12_wrapper(
75   KC_TAB,  _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSPC,
76   KC_ESC,  _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_SLSH,
77   KC_LSFT, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________, KC_ENT,
78   BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
79 ),
80
81
82 [_WORKMAN] = LAYOUT_ortho_4x12_wrapper(
83   KC_TAB,  _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSPC,
84   KC_ESC,  _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
85   KC_LSFT, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________, KC_ENT,
86   BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
87 ),
88
89 /* Lower
90  * ,-----------------------------------------------------------------------------------.
91  * |   ~  |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  | Bksp |
92  * |------+------+------+------+------+-------------+------+------+------+------+------|
93  * | Del  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   _  |   +  |   {  |   }  |  |   |
94  * |------+------+------+------+------+------|------+------+------+------+------+------|
95  * |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO ~ |ISO | | Home | End  |      |
96  * |------+------+------+------+------+------+------+------+------+------+------+------|
97  * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play |
98  * `-----------------------------------------------------------------------------------'
99  */
100 [_LOWER] = LAYOUT_ortho_4x12_wrapper(
101   KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
102   KC_DEL,  _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
103   _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
104   _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
105 ),
106
107 /* Raise
108  * ,-----------------------------------------------------------------------------------.
109  * |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | Bksp |
110  * |------+------+------+------+------+-------------+------+------+------+------+------|
111  * | Del  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   -  |   =  |   [  |   ]  |  \   |
112  * |------+------+------+------+------+------|------+------+------+------+------+------|
113  * |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO # |ISO / |Pg Up |Pg Dn |      |
114  * |------+------+------+------+------+------+------+------+------+------+------+------|
115  * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play |
116  * `-----------------------------------------------------------------------------------'
117  */
118 [_RAISE] = LAYOUT_ortho_4x12_wrapper(
119   KC_GRV,  _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC,
120   KC_DEL,  _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
121   _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
122   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
123 ),
124
125 /* Adjust (Lower + Raise)
126  * ,-----------------------------------------------------------------------------------.
127  * |      | Reset|      |      |      |      |      |      |      |      |      |  Del |
128  * |------+------+------+------+------+-------------+------+------+------+------+------|
129  * |      |      |      |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover|      |
130  * |------+------+------+------+------+------|------+------+------+------+------+------|
131  * |      |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|      |      |      |      |      |
132  * |------+------+------+------+------+------+------+------+------+------+------+------|
133  * |      |      |      |      |      |             |      |      |      |      |      |
134  * `-----------------------------------------------------------------------------------'
135  */
136 [_ADJUST] = LAYOUT_ortho_4x12_wrapper(
137   _______, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_DEL,
138   _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______,
139   _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, _______,
140   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
141 )
142
143
144 };
145
146
147 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
148   switch (keycode) {
149
150 #ifdef KEYBOARD_planck
151     case BACKLIT:
152       if (record->event.pressed) {
153         register_code(KC_RSFT);
154         #ifdef BACKLIGHT_ENABLE
155           backlight_step();
156         #endif
157         PORTE &= ~(1<<6);
158       } else {
159         unregister_code(KC_RSFT);
160         PORTE |= (1<<6);
161       }
162       return false;
163       break;
164 #endif
165   }
166   return true;
167 }
168
169 bool music_mask_user(uint16_t keycode) {
170   switch (keycode) {
171     case RAISE:
172     case LOWER:
173       return false;
174     default:
175       return true;
176   }
177 }