diff options
27 files changed, 2187 insertions, 0 deletions
diff --git a/layouts/community/ortho_4x12/greatwizard/README.md b/layouts/community/ortho_4x12/greatwizard/README.md new file mode 100644 index 000000000..9eadb6343 --- /dev/null +++ b/layouts/community/ortho_4x12/greatwizard/README.md | |||
@@ -0,0 +1,149 @@ | |||
1 | # GreatWizard ortholinear 4x12 keymap | ||
2 | |||
3 | ## Base layers | ||
4 | |||
5 | ### Qwerty | ||
6 | |||
7 | ``` | ||
8 | ,-----------------------------------------------------------------------------------. | ||
9 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
10 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
11 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
12 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
13 | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
14 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
15 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
16 | `-----------------------------------------------------------------------------------' | ||
17 | ``` | ||
18 | |||
19 | ### Workman | ||
20 | |||
21 | ``` | ||
22 | ,-----------------------------------------------------------------------------------. | ||
23 | | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | | ||
24 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
25 | | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
26 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
27 | | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
28 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
29 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
30 | `-----------------------------------------------------------------------------------' | ||
31 | ``` | ||
32 | |||
33 | ### Colemak | ||
34 | |||
35 | ``` | ||
36 | ,-----------------------------------------------------------------------------------. | ||
37 | | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | | ||
38 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
39 | | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
40 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
41 | | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
42 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
43 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
44 | `-----------------------------------------------------------------------------------' | ||
45 | ``` | ||
46 | |||
47 | ### Dvorak | ||
48 | |||
49 | ``` | ||
50 | ,-----------------------------------------------------------------------------------. | ||
51 | | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | | ||
52 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
53 | | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
54 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
55 | | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
56 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
57 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
58 | `-----------------------------------------------------------------------------------' | ||
59 | ``` | ||
60 | |||
61 | ### Game | ||
62 | |||
63 | ``` | ||
64 | ,-----------------------------------------------------------------------------------. | ||
65 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
66 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
67 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
68 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
69 | | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | | ||
70 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
71 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | | ||
72 | `-----------------------------------------------------------------------------------' | ||
73 | ``` | ||
74 | |||
75 | ## Momentarily Layers | ||
76 | |||
77 | ### Lower | ||
78 | |||
79 | ``` | ||
80 | ,-----------------------------------------------------------------------------------. | ||
81 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
82 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
83 | | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
84 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
85 | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
86 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
87 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
88 | `-----------------------------------------------------------------------------------' | ||
89 | ``` | ||
90 | |||
91 | ### Raise | ||
92 | |||
93 | ``` | ||
94 | ,-----------------------------------------------------------------------------------. | ||
95 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
96 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
97 | | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
98 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
99 | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| | | ||
100 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
101 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
102 | `-----------------------------------------------------------------------------------' | ||
103 | ``` | ||
104 | |||
105 | ### Adjust (Lower + Raise) | ||
106 | |||
107 | ``` | ||
108 | ,-----------------------------------------------------------------------------------. | ||
109 | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
110 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
111 | |CPSLCK| Reset|EP_RST| | | | Game |Qwerty|Workmn|Colemk|Dvorak| | | ||
112 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
113 | | | | | | | | | | | | | | | ||
114 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
115 | | | | | | | | | | | | | | ||
116 | `-----------------------------------------------------------------------------------' | ||
117 | ``` | ||
118 | |||
119 | ### Fn (rgblight and backlight layout) | ||
120 | |||
121 | ``` | ||
122 | ,-----------------------------------------------------------------------------------. | ||
123 | | | | | | | | | | |RGBVA-|RGBVA+| | | ||
124 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
125 | | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR| | ||
126 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
127 | | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| | ||
128 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
129 | | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| | ||
130 | `-----------------------------------------------------------------------------------' | ||
131 | ``` | ||
132 | |||
133 | ## One Shot Key Layers | ||
134 | |||
135 | ### GIT | ||
136 | |||
137 | Double tap on Alt to activate it. | ||
138 | |||
139 | ``` | ||
140 | ,-----------------------------------------------------------------------------------. | ||
141 | | |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | | | ||
142 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
143 | | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | | | ||
144 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
145 | | | | |COMMIT| MV |BRANCH| |MERGE | | | | | | ||
146 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
147 | | | | | | | | | | | | | | | ||
148 | `-----------------------------------------------------------------------------------' | ||
149 | ``` | ||
diff --git a/layouts/community/ortho_4x12/greatwizard/config.h b/layouts/community/ortho_4x12/greatwizard/config.h new file mode 100644 index 000000000..48dab19c1 --- /dev/null +++ b/layouts/community/ortho_4x12/greatwizard/config.h | |||
@@ -0,0 +1,24 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #define LAYERS_ORTHO | ||
19 | #define LAYER_GAME | ||
20 | #define LAYER_GIT | ||
21 | #define LAYER_FN | ||
22 | |||
23 | #define TAP_DANCE_LALT_GIT | ||
24 | #define TAP_DANCE_LSFT_CAPS | ||
diff --git a/layouts/community/ortho_4x12/greatwizard/keymap.c b/layouts/community/ortho_4x12/greatwizard/keymap.c new file mode 100644 index 000000000..a895aaf94 --- /dev/null +++ b/layouts/community/ortho_4x12/greatwizard/keymap.c | |||
@@ -0,0 +1,209 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #include "greatwizard.h" | ||
17 | |||
18 | #define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) | ||
19 | #define LAYOUT_ortho_4x12_base( \ | ||
20 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ | ||
21 | K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ | ||
22 | K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \ | ||
23 | ) \ | ||
24 | LAYOUT_ortho_4x12_wrapper( \ | ||
25 | KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSPC, \ | ||
26 | KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ | ||
27 | TD_LSCP, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_ENT, \ | ||
28 | FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ | ||
29 | ) | ||
30 | #define LAYOUT_ortho_4x12_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__) | ||
31 | |||
32 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
33 | |||
34 | /* Qwerty | ||
35 | * ,-----------------------------------------------------------------------------------. | ||
36 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
37 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
38 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
39 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
40 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
41 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
42 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
43 | * `-----------------------------------------------------------------------------------' | ||
44 | */ | ||
45 | [_QWERTY] = LAYOUT_ortho_4x12_base_wrapper( | ||
46 | _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, | ||
47 | _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
48 | _______________QWERTY_LEFT3________________, _______________QWERTY_RIGHT3_______________ | ||
49 | ), | ||
50 | |||
51 | /* Workman | ||
52 | * ,-----------------------------------------------------------------------------------. | ||
53 | * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | | ||
54 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
55 | * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
56 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
57 | * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
58 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
59 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
60 | * `-----------------------------------------------------------------------------------' | ||
61 | */ | ||
62 | [_WORKMAN] = LAYOUT_ortho_4x12_base_wrapper( | ||
63 | _______________WORKMAN_LEFT1_______________, _______________WORKMAN_RIGHT1______________, | ||
64 | _______________WORKMAN_LEFT2_______________, _______________WORKMAN_RIGHT2______________, KC_QUOT, | ||
65 | _______________WORKMAN_LEFT3_______________, _______________WORKMAN_RIGHT3______________ | ||
66 | ), | ||
67 | |||
68 | /* Colemak | ||
69 | * ,-----------------------------------------------------------------------------------. | ||
70 | * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | | ||
71 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
72 | * | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
73 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
74 | * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
75 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
76 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
77 | * `-----------------------------------------------------------------------------------' | ||
78 | */ | ||
79 | [_COLEMAK] = LAYOUT_ortho_4x12_base_wrapper( | ||
80 | _______________COLEMAK_LEFT1_______________, _______________COLEMAK_RIGHT1______________, | ||
81 | _______________COLEMAK_LEFT2_______________, _______________COLEMAK_RIGHT2______________, KC_QUOT, | ||
82 | _______________COLEMAK_LEFT3_______________, _______________COLEMAK_RIGHT3______________ | ||
83 | ), | ||
84 | |||
85 | /* Dvorak | ||
86 | * ,-----------------------------------------------------------------------------------. | ||
87 | * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | | ||
88 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
89 | * | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
90 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
91 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
92 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
93 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
94 | * `-----------------------------------------------------------------------------------' | ||
95 | */ | ||
96 | [_DVORAK] = LAYOUT_ortho_4x12_base_wrapper( | ||
97 | _______________DVORAK_LEFT1________________, _______________DVORAK_RIGHT1_______________, | ||
98 | _______________DVORAK_LEFT2________________, _______________DVORAK_RIGHT2_______________, KC_SLSH, | ||
99 | _______________DVORAK_LEFT3________________, _______________DVORAK_RIGHT3_______________ | ||
100 | ), | ||
101 | |||
102 | /* Game | ||
103 | * ,-----------------------------------------------------------------------------------. | ||
104 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
105 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
106 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
107 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
108 | * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | | ||
109 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
110 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | | ||
111 | * `-----------------------------------------------------------------------------------' | ||
112 | */ | ||
113 | [_GAME] = LAYOUT_ortho_4x12_wrapper( | ||
114 | KC_TAB, _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, KC_BSPC, | ||
115 | KC_ESC, _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
116 | TD_LSCP, _______________QWERTY_LEFT3________________, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, | ||
117 | FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT | ||
118 | ), | ||
119 | |||
120 | /* Lower | ||
121 | * ,-----------------------------------------------------------------------------------. | ||
122 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
123 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
124 | * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
125 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
126 | * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
127 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
128 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
129 | * `-----------------------------------------------------------------------------------' | ||
130 | */ | ||
131 | [_LOWER] = LAYOUT_ortho_4x12_wrapper( | ||
132 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, | ||
133 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | ||
134 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, | ||
135 | _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
136 | ), | ||
137 | |||
138 | /* Raise | ||
139 | * ,-----------------------------------------------------------------------------------. | ||
140 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
141 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
142 | * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
143 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
144 | * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| | | ||
145 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
146 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
147 | * `-----------------------------------------------------------------------------------' | ||
148 | */ | ||
149 | [_RAISE] = LAYOUT_ortho_4x12_wrapper( | ||
150 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, _______, | ||
151 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
152 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, | ||
153 | _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
154 | ), | ||
155 | |||
156 | /* Adjust (Lower + Raise) | ||
157 | * ,-----------------------------------------------------------------------------------. | ||
158 | * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
159 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
160 | * |CPSLCK| Reset|EP_RST| | | | Game |Qwerty|Workmn|Colemk|Dvorak| | | ||
161 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
162 | * | | | | | | | | | | | | | | ||
163 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
164 | * | | | | | | | | | | | | | ||
165 | * `-----------------------------------------------------------------------------------' | ||
166 | */ | ||
167 | [_ADJUST] = LAYOUT_ortho_4x12_wrapper( | ||
168 | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | ||
169 | KC_CAPS, RESET, EEP_RST, _______, _______, _______, GAME, QWERTY, WORKMAN, COLEMAK, DVORAK, _______, | ||
170 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
171 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
172 | ), | ||
173 | |||
174 | /* Fn (rgblight and backlight layout) | ||
175 | * ,-----------------------------------------------------------------------------------. | ||
176 | * | | | | | | | | | |RGBVA-|RGBVA+| | | ||
177 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
178 | * | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR| | ||
179 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
180 | * | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| | ||
181 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
182 | * | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| | ||
183 | * `-----------------------------------------------------------------------------------' | ||
184 | */ | ||
185 | [_FN] = LAYOUT_ortho_4x12_wrapper( | ||
186 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, | ||
187 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_LYR, | ||
188 | _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_HUI, RGB_MOD, | ||
189 | _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, BL_BRTG | ||
190 | ), | ||
191 | |||
192 | /* GIT | ||
193 | * ,-----------------------------------------------------------------------------------. | ||
194 | * | |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | | | ||
195 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
196 | * | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | | | ||
197 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
198 | * | | | |COMMIT| MV |BRANCH| |MERGE | | | | | | ||
199 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
200 | * | | | | | | | | | | | | | ||
201 | * `-----------------------------------------------------------------------------------' | ||
202 | */ | ||
203 | [_GIT] = LAYOUT_ortho_4x12_wrapper( | ||
204 | _______, _________________GIT_LEFT1_________________, _________________GIT_RIGHT1________________, _______, | ||
205 | _______, _________________GIT_LEFT2_________________, _________________GIT_RIGHT2________________, _______, | ||
206 | _______, _________________GIT_LEFT3_________________, _________________GIT_RIGHT3________________, _______, | ||
207 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
208 | ) | ||
209 | }; | ||
diff --git a/layouts/community/ortho_4x12/greatwizard/rules.mk b/layouts/community/ortho_4x12/greatwizard/rules.mk new file mode 100644 index 000000000..bbc8f14c2 --- /dev/null +++ b/layouts/community/ortho_4x12/greatwizard/rules.mk | |||
@@ -0,0 +1,7 @@ | |||
1 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
2 | TAP_DANCE_ENABLE = yes # Enable Tap Dance | ||
3 | |||
4 | LAYERS_ORTHO = yes | ||
5 | LAYER_GAME = yes | ||
6 | LAYER_GIT = yes | ||
7 | LAYER_FN = yes | ||
diff --git a/layouts/community/ortho_5x12/greatwizard/README.md b/layouts/community/ortho_5x12/greatwizard/README.md new file mode 100644 index 000000000..4158af5a3 --- /dev/null +++ b/layouts/community/ortho_5x12/greatwizard/README.md | |||
@@ -0,0 +1,233 @@ | |||
1 | # GreatWizard ortholinear 5x12 keymap | ||
2 | |||
3 | ## Base layers | ||
4 | |||
5 | ### Qwerty | ||
6 | |||
7 | ``` | ||
8 | ,-----------------------------------------------------------------------------------. | ||
9 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
10 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
11 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
12 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
13 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
14 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
15 | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
16 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
17 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
18 | `-----------------------------------------------------------------------------------' | ||
19 | ``` | ||
20 | |||
21 | ### Qwerty Programmer | ||
22 | |||
23 | ``` | ||
24 | ,-----------------------------------------------------------------------------------. | ||
25 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
26 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
27 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
28 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
29 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
30 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
31 | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
32 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
33 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
34 | `-----------------------------------------------------------------------------------' | ||
35 | ``` | ||
36 | |||
37 | ### Workman | ||
38 | |||
39 | ``` | ||
40 | ,-----------------------------------------------------------------------------------. | ||
41 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
42 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
43 | | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | | ||
44 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
45 | | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
46 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
47 | | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
48 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
49 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
50 | `-----------------------------------------------------------------------------------' | ||
51 | ``` | ||
52 | |||
53 | ### Workman Programmer | ||
54 | |||
55 | ``` | ||
56 | ,-----------------------------------------------------------------------------------. | ||
57 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
58 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
59 | | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | | ||
60 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
61 | | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
62 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
63 | | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
64 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
65 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
66 | `-----------------------------------------------------------------------------------' | ||
67 | ``` | ||
68 | |||
69 | ### Colemak | ||
70 | |||
71 | ``` | ||
72 | ,-----------------------------------------------------------------------------------. | ||
73 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
74 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
75 | | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | | ||
76 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
77 | | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
78 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
79 | | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
80 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
81 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
82 | `-----------------------------------------------------------------------------------' | ||
83 | ``` | ||
84 | |||
85 | ### Colemak Programmer | ||
86 | |||
87 | ``` | ||
88 | ,-----------------------------------------------------------------------------------. | ||
89 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
90 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
91 | | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | | ||
92 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
93 | | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
94 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
95 | | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
96 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
97 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
98 | `-----------------------------------------------------------------------------------' | ||
99 | ``` | ||
100 | |||
101 | ### Dvorak | ||
102 | |||
103 | ``` | ||
104 | ,-----------------------------------------------------------------------------------. | ||
105 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
106 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
107 | | Tab | ' | , | . | P | Y | F | G | C | R | L | Del | | ||
108 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
109 | | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
110 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
111 | | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
112 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
113 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
114 | `-----------------------------------------------------------------------------------' | ||
115 | ``` | ||
116 | |||
117 | ### Dvorak Programmer | ||
118 | |||
119 | ``` | ||
120 | ,-----------------------------------------------------------------------------------. | ||
121 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
122 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
123 | | Tab | ' | , | . | P | Y | F | G | C | R | L | Del | | ||
124 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
125 | | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
126 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
127 | | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
128 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
129 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
130 | `-----------------------------------------------------------------------------------' | ||
131 | ``` | ||
132 | |||
133 | ### Game | ||
134 | |||
135 | ``` | ||
136 | ,-----------------------------------------------------------------------------------. | ||
137 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
138 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
139 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
140 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
141 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
142 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
143 | | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | | ||
144 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
145 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | | ||
146 | `-----------------------------------------------------------------------------------' | ||
147 | ``` | ||
148 | |||
149 | ## Momentarily Layers | ||
150 | |||
151 | ### Lower | ||
152 | |||
153 | ``` | ||
154 | ,-----------------------------------------------------------------------------------. | ||
155 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
156 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
157 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
158 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
159 | | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
160 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
161 | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
162 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
163 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
164 | `-----------------------------------------------------------------------------------' | ||
165 | ``` | ||
166 | |||
167 | ### Raise | ||
168 | |||
169 | ``` | ||
170 | ,-----------------------------------------------------------------------------------. | ||
171 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
172 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
173 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
174 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
175 | | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
176 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
177 | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| | | ||
178 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
179 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
180 | `-----------------------------------------------------------------------------------' | ||
181 | ``` | ||
182 | |||
183 | ### Adjust (Lower + Raise) | ||
184 | |||
185 | ``` | ||
186 | ,-----------------------------------------------------------------------------------. | ||
187 | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
188 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
189 | | | Reset|EP_RST| | | | | | | | | | | ||
190 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
191 | |CPSLCK| | | | | | Game |Qwerty|Workmn|Colemk|Dvorak| | | ||
192 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
193 | | | | | | | | |QwertP|WrkmnP|ColmkP|DvorkP| | | ||
194 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
195 | | | | | | | | | | | | | | ||
196 | `-----------------------------------------------------------------------------------' | ||
197 | ``` | ||
198 | |||
199 | ### Fn (rgblight and backlight layout) | ||
200 | |||
201 | ``` | ||
202 | ,-----------------------------------------------------------------------------------. | ||
203 | | | | | | | | | | | | | | | ||
204 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
205 | | | | | | | | | | |RGBVA-|RGBVA+| | | ||
206 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
207 | | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR| | ||
208 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
209 | | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| | ||
210 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
211 | | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| | ||
212 | `-----------------------------------------------------------------------------------' | ||
213 | ``` | ||
214 | |||
215 | ## One Shot Key Layers | ||
216 | |||
217 | ### GIT | ||
218 | |||
219 | Double tap on Alt to activate it. | ||
220 | |||
221 | ``` | ||
222 | ,-----------------------------------------------------------------------------------. | ||
223 | | | | | | | | | | | | | | | ||
224 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
225 | | |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | | | ||
226 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
227 | | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | | | ||
228 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
229 | | | | |COMMIT| MV |BRANCH| |MERGE | | | | | | ||
230 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
231 | | | | | | | | | | | | | | | ||
232 | `-----------------------------------------------------------------------------------' | ||
233 | ``` | ||
diff --git a/layouts/community/ortho_5x12/greatwizard/config.h b/layouts/community/ortho_5x12/greatwizard/config.h new file mode 100644 index 000000000..598a7e56a --- /dev/null +++ b/layouts/community/ortho_5x12/greatwizard/config.h | |||
@@ -0,0 +1,25 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #define LAYERS_ORTHO | ||
19 | #define LAYERS_PROGRAMMER | ||
20 | #define LAYER_GAME | ||
21 | #define LAYER_GIT | ||
22 | #define LAYER_FN | ||
23 | |||
24 | #define TAP_DANCE_LALT_GIT | ||
25 | #define TAP_DANCE_LSFT_CAPS | ||
diff --git a/layouts/community/ortho_5x12/greatwizard/keymap.c b/layouts/community/ortho_5x12/greatwizard/keymap.c new file mode 100644 index 000000000..77d758b0f --- /dev/null +++ b/layouts/community/ortho_5x12/greatwizard/keymap.c | |||
@@ -0,0 +1,342 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #include "greatwizard.h" | ||
17 | |||
18 | #define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__) | ||
19 | #define LAYOUT_ortho_5x12_base( \ | ||
20 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ | ||
21 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ | ||
22 | K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ | ||
23 | K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \ | ||
24 | ) \ | ||
25 | LAYOUT_ortho_5x12_wrapper( \ | ||
26 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \ | ||
27 | KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_DEL, \ | ||
28 | KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ | ||
29 | K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_ENT, \ | ||
30 | FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ | ||
31 | ) | ||
32 | #define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__) | ||
33 | |||
34 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
35 | |||
36 | /* Qwerty | ||
37 | * ,-----------------------------------------------------------------------------------. | ||
38 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
39 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
40 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
41 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
42 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
43 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
44 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
45 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
46 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
47 | * `-----------------------------------------------------------------------------------' | ||
48 | */ | ||
49 | [_QWERTY] = LAYOUT_ortho_5x12_base_wrapper( | ||
50 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, | ||
51 | _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, | ||
52 | _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
53 | TD_LSCP, _______________QWERTY_LEFT3________________, _______________QWERTY_RIGHT3_______________ | ||
54 | ), | ||
55 | |||
56 | /* Qwerty Programmer | ||
57 | * ,-----------------------------------------------------------------------------------. | ||
58 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
59 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
60 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
61 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
62 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
63 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
64 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
65 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
66 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
67 | * `-----------------------------------------------------------------------------------' | ||
68 | */ | ||
69 | [_QWERTY_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper( | ||
70 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
71 | _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, | ||
72 | _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
73 | PG_LSCP, _______________QWERTY_LEFT3________________, _______________QWERTY_RIGHT3_______________ | ||
74 | ), | ||
75 | |||
76 | /* Workman | ||
77 | * ,-----------------------------------------------------------------------------------. | ||
78 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
79 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
80 | * | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | | ||
81 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
82 | * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
83 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
84 | * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
85 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
86 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
87 | * `-----------------------------------------------------------------------------------' | ||
88 | */ | ||
89 | [_WORKMAN] = LAYOUT_ortho_5x12_base_wrapper( | ||
90 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, | ||
91 | _______________WORKMAN_LEFT1_______________, _______________WORKMAN_RIGHT1______________, | ||
92 | _______________WORKMAN_LEFT2_______________, _______________WORKMAN_RIGHT2______________, KC_QUOT, | ||
93 | TD_LSCP, _______________WORKMAN_LEFT3_______________, _______________WORKMAN_RIGHT3______________ | ||
94 | ), | ||
95 | |||
96 | /* Workman Programmer | ||
97 | * ,-----------------------------------------------------------------------------------. | ||
98 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
99 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
100 | * | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | | ||
101 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
102 | * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
103 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
104 | * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
105 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
106 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
107 | * `-----------------------------------------------------------------------------------' | ||
108 | */ | ||
109 | [_WORKMAN_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper( | ||
110 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
111 | _______________WORKMAN_LEFT1_______________, _______________WORKMAN_RIGHT1______________, | ||
112 | _______________WORKMAN_LEFT2_______________, _______________WORKMAN_RIGHT2______________, KC_QUOT, | ||
113 | PG_LSCP, _______________WORKMAN_LEFT3_______________, _______________WORKMAN_RIGHT3______________ | ||
114 | ), | ||
115 | |||
116 | /* Colemak | ||
117 | * ,-----------------------------------------------------------------------------------. | ||
118 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
119 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
120 | * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | | ||
121 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
122 | * | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
123 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
124 | * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
125 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
126 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
127 | * `-----------------------------------------------------------------------------------' | ||
128 | */ | ||
129 | [_COLEMAK] = LAYOUT_ortho_5x12_base_wrapper( | ||
130 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, | ||
131 | _______________COLEMAK_LEFT1_______________, _______________COLEMAK_RIGHT1______________, | ||
132 | _______________COLEMAK_LEFT2_______________, _______________COLEMAK_RIGHT2______________, KC_QUOT, | ||
133 | TD_LSCP, _______________COLEMAK_LEFT3_______________, _______________COLEMAK_RIGHT3______________ | ||
134 | ), | ||
135 | |||
136 | /* Colemak Programmer | ||
137 | * ,-----------------------------------------------------------------------------------. | ||
138 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
139 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
140 | * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | | ||
141 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
142 | * | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
143 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
144 | * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
145 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
146 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
147 | * `-----------------------------------------------------------------------------------' | ||
148 | */ | ||
149 | [_COLEMAK_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper( | ||
150 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
151 | _______________COLEMAK_LEFT1_______________, _______________COLEMAK_RIGHT1______________, | ||
152 | _______________COLEMAK_LEFT2_______________, _______________COLEMAK_RIGHT2______________, KC_QUOT, | ||
153 | PG_LSCP, _______________COLEMAK_LEFT3_______________, _______________COLEMAK_RIGHT3______________ | ||
154 | ), | ||
155 | |||
156 | /* Dvorak | ||
157 | * ,-----------------------------------------------------------------------------------. | ||
158 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
159 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
160 | * | Tab | ' | , | . | P | Y | F | G | C | R | L | Del | | ||
161 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
162 | * | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
163 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
164 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
165 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
166 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
167 | * `-----------------------------------------------------------------------------------' | ||
168 | */ | ||
169 | [_DVORAK] = LAYOUT_ortho_5x12_base_wrapper( | ||
170 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, | ||
171 | _______________DVORAK_LEFT1________________, _______________DVORAK_RIGHT1_______________, | ||
172 | _______________DVORAK_LEFT2________________, _______________DVORAK_RIGHT2_______________, KC_SLSH, | ||
173 | TD_LSCP, _______________DVORAK_LEFT3________________, _______________DVORAK_RIGHT3_______________ | ||
174 | ), | ||
175 | |||
176 | /* Dvorak Programmer | ||
177 | * ,-----------------------------------------------------------------------------------. | ||
178 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
179 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
180 | * | Tab | ' | , | . | P | Y | F | G | C | R | L | Del | | ||
181 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
182 | * | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
183 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
184 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
185 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
186 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
187 | * `-----------------------------------------------------------------------------------' | ||
188 | */ | ||
189 | [_DVORAK_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper( | ||
190 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
191 | _______________DVORAK_LEFT1________________, _______________DVORAK_RIGHT1_______________, | ||
192 | _______________DVORAK_LEFT2________________, _______________DVORAK_RIGHT2_______________, KC_SLSH, | ||
193 | PG_LSCP, _______________DVORAK_LEFT3________________, _______________DVORAK_RIGHT3_______________ | ||
194 | ), | ||
195 | |||
196 | /* X Programmer Shifted | ||
197 | * ,-----------------------------------------------------------------------------------. | ||
198 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
199 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
200 | * | | | | | | | | | | | | | | ||
201 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
202 | * | | | | | | | | | | | | | | ||
203 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
204 | * | | | | | | | | | | | | | | ||
205 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
206 | * | | | | | | | | | | | | | ||
207 | * `-----------------------------------------------------------------------------------' | ||
208 | */ | ||
209 | [_PROGRAMMER_SHIFTED] = LAYOUT_ortho_5x12_wrapper( | ||
210 | PG_GRV, PG_1, PG_2, PG_3, PG_4, PG_5, PG_6, PG_7, PG_8, PG_9, PG_0, _______, | ||
211 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
212 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
213 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
214 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
215 | ), | ||
216 | |||
217 | /* Game | ||
218 | * ,-----------------------------------------------------------------------------------. | ||
219 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
220 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
221 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
222 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
223 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
224 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
225 | * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | | ||
226 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
227 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | | ||
228 | * `-----------------------------------------------------------------------------------' | ||
229 | */ | ||
230 | [_GAME] = LAYOUT_ortho_5x12_wrapper( | ||
231 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, KC_BSPC, | ||
232 | KC_TAB, _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, KC_DEL, | ||
233 | KC_ESC, _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
234 | TD_LSCP, _______________QWERTY_LEFT3________________, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, | ||
235 | FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT | ||
236 | ), | ||
237 | |||
238 | /* Lower | ||
239 | * ,-----------------------------------------------------------------------------------. | ||
240 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
241 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
242 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
243 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
244 | * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
245 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
246 | * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
247 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
248 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
249 | * `-----------------------------------------------------------------------------------' | ||
250 | */ | ||
251 | [_LOWER] = LAYOUT_ortho_5x12_wrapper( | ||
252 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, | ||
253 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, | ||
254 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | ||
255 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, | ||
256 | _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
257 | ), | ||
258 | |||
259 | /* Raise | ||
260 | * ,-----------------------------------------------------------------------------------. | ||
261 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
262 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
263 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
264 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
265 | * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
266 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
267 | * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| | | ||
268 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
269 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
270 | * `-----------------------------------------------------------------------------------' | ||
271 | */ | ||
272 | [_RAISE] = LAYOUT_ortho_5x12_wrapper( | ||
273 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, _______, | ||
274 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, _______, | ||
275 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
276 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, | ||
277 | _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
278 | ), | ||
279 | |||
280 | /* Adjust (Lower + Raise) | ||
281 | * ,-----------------------------------------------------------------------------------. | ||
282 | * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
283 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
284 | * | | Reset|EP_RST| | | | | | | | | | | ||
285 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
286 | * |CPSLCK| | | | | | Game |Qwerty|Workmn|Colemk|Dvorak| | | ||
287 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
288 | * | | | | | | | |QwertP|WrkmnP|ColmkP|DvorkP| | | ||
289 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
290 | * | | | | | | | | | | | | | ||
291 | * `-----------------------------------------------------------------------------------' | ||
292 | */ | ||
293 | [_ADJUST] = LAYOUT_ortho_5x12_wrapper( | ||
294 | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | ||
295 | _______, RESET, EEP_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
296 | KC_CAPS, _______, _______, _______, _______, _______, GAME, QWERTY, WORKMAN, COLEMAK, DVORAK, _______, | ||
297 | _______, _______, _______, _______, _______, _______, _______, QWERTYP, WORKMNP, COLEMKP, DVORAKP, _______, | ||
298 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
299 | ), | ||
300 | |||
301 | /* Fn (rgblight and backlight layout) | ||
302 | * ,-----------------------------------------------------------------------------------. | ||
303 | * | | | | | | | | | | | | | | ||
304 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
305 | * | | | | | | | | | |RGBVA-|RGBVA+| | | ||
306 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
307 | * | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR| | ||
308 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
309 | * | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| | ||
310 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
311 | * | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| | ||
312 | * `-----------------------------------------------------------------------------------' | ||
313 | */ | ||
314 | [_FN] = LAYOUT_ortho_5x12_wrapper( | ||
315 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
316 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, | ||
317 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_LYR, | ||
318 | _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_HUI, RGB_MOD, | ||
319 | _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, BL_BRTG | ||
320 | ), | ||
321 | |||
322 | /* GIT | ||
323 | * ,-----------------------------------------------------------------------------------. | ||
324 | * | | | | | | | | | | | | | | ||
325 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
326 | * | |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | | | ||
327 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
328 | * | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | | | ||
329 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
330 | * | | | |COMMIT| MV |BRANCH| |MERGE | | | | | | ||
331 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
332 | * | | | | | | | | | | | | | ||
333 | * `-----------------------------------------------------------------------------------' | ||
334 | */ | ||
335 | [_GIT] = LAYOUT_ortho_5x12_wrapper( | ||
336 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
337 | _______, _________________GIT_LEFT1_________________, _________________GIT_RIGHT1________________, _______, | ||
338 | _______, _________________GIT_LEFT2_________________, _________________GIT_RIGHT2________________, _______, | ||
339 | _______, _________________GIT_LEFT3_________________, _________________GIT_RIGHT3________________, _______, | ||
340 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
341 | ) | ||
342 | }; | ||
diff --git a/layouts/community/ortho_5x12/greatwizard/rules.mk b/layouts/community/ortho_5x12/greatwizard/rules.mk new file mode 100644 index 000000000..fbff04ed9 --- /dev/null +++ b/layouts/community/ortho_5x12/greatwizard/rules.mk | |||
@@ -0,0 +1,8 @@ | |||
1 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
2 | TAP_DANCE_ENABLE = yes # Enable Tap Dance | ||
3 | |||
4 | LAYERS_ORTHO = yes | ||
5 | LAYERS_PROGRAMMER = yes | ||
6 | LAYER_GAME = yes | ||
7 | LAYER_GIT = yes | ||
8 | LAYER_FN = yes | ||
diff --git a/users/greatwizard/config.h b/users/greatwizard/config.h new file mode 100644 index 000000000..2ee9e5090 --- /dev/null +++ b/users/greatwizard/config.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #define TAP_CODE_DELAY 5 | ||
19 | |||
20 | #define RGBLIGHT_ANIMATIONS | ||
21 | |||
22 | #ifdef TAP_DANCE_ENABLE | ||
23 | # define TAPPING_TERM 175 | ||
24 | # define PERMISSIVE_HOLD | ||
25 | #endif | ||
26 | |||
27 | #ifdef AUTO_SHIFT_ENABLE | ||
28 | # define AUTO_SHIFT_TIMEOUT 135 | ||
29 | # define NO_AUTO_SHIFT_SPECIAL | ||
30 | # define NO_AUTO_SHIFT_NUMERIC | ||
31 | #endif | ||
diff --git a/users/greatwizard/fn.h b/users/greatwizard/fn.h new file mode 100644 index 000000000..f842bf04b --- /dev/null +++ b/users/greatwizard/fn.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #include QMK_KEYBOARD_H | ||
19 | #include "greatwizard.h" | ||
20 | |||
21 | #define FN MO(_FN) | ||
diff --git a/users/greatwizard/game.c b/users/greatwizard/game.c new file mode 100644 index 000000000..eecabfa40 --- /dev/null +++ b/users/greatwizard/game.c | |||
@@ -0,0 +1,27 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #include "game.h" | ||
17 | |||
18 | bool process_record_game(uint16_t keycode, keyrecord_t *record) { | ||
19 | switch (keycode) { | ||
20 | case GAME: | ||
21 | if (record->event.pressed) { | ||
22 | set_single_persistent_default_layer(_GAME); | ||
23 | } | ||
24 | return false; | ||
25 | } | ||
26 | return true; | ||
27 | } | ||
diff --git a/users/greatwizard/game.h b/users/greatwizard/game.h new file mode 100644 index 000000000..504129b40 --- /dev/null +++ b/users/greatwizard/game.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #include QMK_KEYBOARD_H | ||
19 | #include "greatwizard.h" | ||
20 | |||
21 | bool process_record_game(uint16_t keycode, keyrecord_t *record); | ||
diff --git a/users/greatwizard/git.c b/users/greatwizard/git.c new file mode 100644 index 000000000..4bf68fe69 --- /dev/null +++ b/users/greatwizard/git.c | |||
@@ -0,0 +1,127 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #include "git.h" | ||
17 | |||
18 | bool process_record_git(uint16_t keycode, keyrecord_t *record) { | ||
19 | switch (keycode) { | ||
20 | case GIT_ADD: | ||
21 | if (record->event.pressed) { | ||
22 | SEND_STRING("git add "); | ||
23 | } | ||
24 | return false; | ||
25 | case GIT_BRANCH: | ||
26 | if (record->event.pressed) { | ||
27 | SEND_STRING("git branch "); | ||
28 | } | ||
29 | return false; | ||
30 | case GIT_CHECKOUT: | ||
31 | if (record->event.pressed) { | ||
32 | SEND_STRING("git checkout "); | ||
33 | } | ||
34 | return false; | ||
35 | case GIT_CHERRYPICK: | ||
36 | if (record->event.pressed) { | ||
37 | SEND_STRING("git cherry-pick "); | ||
38 | } | ||
39 | return false; | ||
40 | case GIT_COMMIT: | ||
41 | if (record->event.pressed) { | ||
42 | SEND_STRING("git commit -m \"\""SS_TAP(X_LEFT)); | ||
43 | } | ||
44 | return false; | ||
45 | case GIT_DIFF: | ||
46 | if (record->event.pressed) { | ||
47 | SEND_STRING("git diff "); | ||
48 | } | ||
49 | return false; | ||
50 | case GIT_FETCH: | ||
51 | if (record->event.pressed) { | ||
52 | SEND_STRING("git fetch "); | ||
53 | } | ||
54 | return false; | ||
55 | case GIT_GREP: | ||
56 | if (record->event.pressed) { | ||
57 | SEND_STRING("git grep "); | ||
58 | } | ||
59 | return false; | ||
60 | case GIT_LOG: | ||
61 | if (record->event.pressed) { | ||
62 | SEND_STRING("git log --decorate --oneline --graph "); | ||
63 | } | ||
64 | return false; | ||
65 | case GIT_INIT: | ||
66 | if (record->event.pressed) { | ||
67 | SEND_STRING("git init "); | ||
68 | } | ||
69 | return false; | ||
70 | case GIT_MV: | ||
71 | if (record->event.pressed) { | ||
72 | SEND_STRING("git mv "); | ||
73 | } | ||
74 | return false; | ||
75 | case GIT_MERGE: | ||
76 | if (record->event.pressed) { | ||
77 | SEND_STRING("git merge "); | ||
78 | } | ||
79 | return false; | ||
80 | case GIT_PUSH: | ||
81 | if (record->event.pressed) { | ||
82 | SEND_STRING("git push "); | ||
83 | } | ||
84 | return false; | ||
85 | case GIT_PULL: | ||
86 | if (record->event.pressed) { | ||
87 | SEND_STRING("git pull "); | ||
88 | } | ||
89 | return false; | ||
90 | case GIT_REBASE: | ||
91 | if (record->event.pressed) { | ||
92 | SEND_STRING("git rebase "); | ||
93 | } | ||
94 | return false; | ||
95 | case GIT_REMOTE: | ||
96 | if (record->event.pressed) { | ||
97 | SEND_STRING("git remote "); | ||
98 | } | ||
99 | return false; | ||
100 | case GIT_RESET: | ||
101 | if (record->event.pressed) { | ||
102 | SEND_STRING("git reset "); | ||
103 | } | ||
104 | return false; | ||
105 | case GIT_SHOW: | ||
106 | if (record->event.pressed) { | ||
107 | SEND_STRING("git show "); | ||
108 | } | ||
109 | return false; | ||
110 | case GIT_STASH: | ||
111 | if (record->event.pressed) { | ||
112 | SEND_STRING("git stash "); | ||
113 | } | ||
114 | return false; | ||
115 | case GIT_STATUS: | ||
116 | if (record->event.pressed) { | ||
117 | SEND_STRING("git status "); | ||
118 | } | ||
119 | return false; | ||
120 | case GIT_TAG: | ||
121 | if (record->event.pressed) { | ||
122 | SEND_STRING("git tag "); | ||
123 | } | ||
124 | return false; | ||
125 | } | ||
126 | return true; | ||
127 | } | ||
diff --git a/users/greatwizard/git.h b/users/greatwizard/git.h new file mode 100644 index 000000000..c3b4a617d --- /dev/null +++ b/users/greatwizard/git.h | |||
@@ -0,0 +1,39 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #include QMK_KEYBOARD_H | ||
19 | #include "greatwizard.h" | ||
20 | |||
21 | bool process_record_git(uint16_t keycode, keyrecord_t *record); | ||
22 | |||
23 | #define GIT_BRC GIT_BRANCH | ||
24 | #define GIT_CKT GIT_CHECKOUT | ||
25 | #define GIT_CPK GIT_CHERRYPICK | ||
26 | #define GIT_CMT GIT_COMMIT | ||
27 | #define GIT_DIF GIT_DIFF | ||
28 | #define GIT_FTC GIT_FETCH | ||
29 | #define GIT_GRP GIT_GREP | ||
30 | #define GIT_INI GIT_INIT | ||
31 | #define GIT_MRG GIT_MERGE | ||
32 | #define GIT_PUS GIT_PUSH | ||
33 | #define GIT_PUL GIT_PULL | ||
34 | #define GIT_RBS GIT_REBASE | ||
35 | #define GIT_RMT GIT_REMOTE | ||
36 | #define GIT_RST GIT_RESET | ||
37 | #define GIT_SHW GIT_SHOW | ||
38 | #define GIT_STS GIT_STASH | ||
39 | #define GIT_STT GIT_STATUS | ||
diff --git a/users/greatwizard/greatwizard.c b/users/greatwizard/greatwizard.c new file mode 100644 index 000000000..46ee41436 --- /dev/null +++ b/users/greatwizard/greatwizard.c | |||
@@ -0,0 +1,112 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #include "greatwizard.h" | ||
17 | |||
18 | void eeconfig_init_user(void) { | ||
19 | user_config_t user_config; | ||
20 | user_config.raw = 0; | ||
21 | #ifdef RGBLIGHT_ENABLE | ||
22 | user_config.rgb_layer_change = true; | ||
23 | #endif | ||
24 | eeconfig_update_user(user_config.raw); | ||
25 | keyboard_init(); | ||
26 | } | ||
27 | |||
28 | void keyboard_post_init_user(void) { | ||
29 | #ifdef RGBLIGHT_ENABLE | ||
30 | keyboard_post_init_rgb(); | ||
31 | #endif | ||
32 | } | ||
33 | |||
34 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
35 | #ifdef RGBLIGHT_ENABLE | ||
36 | process_record_rgb(keycode, record); | ||
37 | #endif | ||
38 | #ifdef LAYER_GAME | ||
39 | process_record_game(keycode, record); | ||
40 | #endif | ||
41 | #ifdef LAYER_GIT | ||
42 | process_record_git(keycode, record); | ||
43 | #endif | ||
44 | #ifdef LAYERS_PROGRAMMER | ||
45 | process_record_pg(keycode, record); | ||
46 | #endif | ||
47 | switch (keycode) { | ||
48 | case QWERTY: | ||
49 | if (record->event.pressed) { | ||
50 | set_single_persistent_default_layer(_QWERTY); | ||
51 | } | ||
52 | return false; | ||
53 | case WORKMAN: | ||
54 | if (record->event.pressed) { | ||
55 | set_single_persistent_default_layer(_WORKMAN); | ||
56 | } | ||
57 | return false; | ||
58 | case COLEMAK: | ||
59 | if (record->event.pressed) { | ||
60 | set_single_persistent_default_layer(_COLEMAK); | ||
61 | } | ||
62 | return false; | ||
63 | case DVORAK: | ||
64 | if (record->event.pressed) { | ||
65 | set_single_persistent_default_layer(_DVORAK); | ||
66 | } | ||
67 | return false; | ||
68 | } | ||
69 | return true; | ||
70 | } | ||
71 | |||
72 | #ifdef ENCODER_ENABLE | ||
73 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
74 | switch (get_highest_layer(layer_state)) { | ||
75 | case _QWERTY: | ||
76 | #ifdef LAYERS_PROGRAMMER | ||
77 | case _PROGRAMMER_SHIFTED: | ||
78 | #endif | ||
79 | if (clockwise) { | ||
80 | tap_code(KC_AUDIO_VOL_UP); | ||
81 | } else { | ||
82 | tap_code(KC_AUDIO_VOL_DOWN); | ||
83 | } | ||
84 | break; | ||
85 | default: | ||
86 | if (clockwise) { | ||
87 | tap_code(KC_MEDIA_NEXT_TRACK); | ||
88 | } else { | ||
89 | tap_code(KC_MEDIA_PREV_TRACK); | ||
90 | } | ||
91 | break; | ||
92 | } | ||
93 | } | ||
94 | #endif | ||
95 | |||
96 | layer_state_t layer_state_set_user(layer_state_t state) { | ||
97 | state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); | ||
98 | #ifdef RGBLIGHT_ENABLE | ||
99 | state = layer_state_set_rgb(state); | ||
100 | #endif | ||
101 | #ifdef LAYERS_ORTHO | ||
102 | state = layer_state_set_ortho(state); | ||
103 | #endif | ||
104 | return state; | ||
105 | } | ||
106 | |||
107 | bool led_update_user(led_t led_state) { | ||
108 | #ifdef RGBLIGHT_ENABLE | ||
109 | led_update_rgb(led_state); | ||
110 | #endif | ||
111 | return true; | ||
112 | } | ||
diff --git a/users/greatwizard/greatwizard.h b/users/greatwizard/greatwizard.h new file mode 100644 index 000000000..d2e15854a --- /dev/null +++ b/users/greatwizard/greatwizard.h | |||
@@ -0,0 +1,135 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #include QMK_KEYBOARD_H | ||
19 | #include "keymap_helpers.h" | ||
20 | #ifdef TAP_DANCE_ENABLE | ||
21 | # include "tap_dances.h" | ||
22 | #endif | ||
23 | #ifdef RGBLIGHT_ENABLE | ||
24 | # include "underglow.h" | ||
25 | #endif | ||
26 | #ifdef LAYER_FN | ||
27 | # include "fn.h" | ||
28 | #endif | ||
29 | #ifdef LAYER_GAME | ||
30 | # include "game.h" | ||
31 | #endif | ||
32 | #ifdef LAYER_GIT | ||
33 | # include "git.h" | ||
34 | #endif | ||
35 | #ifdef LAYERS_ORTHO | ||
36 | # include "ortho.h" | ||
37 | #endif | ||
38 | #ifdef LAYERS_PROGRAMMER | ||
39 | # include "programmer.h" | ||
40 | #endif | ||
41 | |||
42 | typedef union { | ||
43 | uint32_t raw; | ||
44 | struct { | ||
45 | #ifdef RGBLIGHT_ENABLE | ||
46 | bool rgb_layer_change : 1; | ||
47 | #endif | ||
48 | }; | ||
49 | } user_config_t; | ||
50 | |||
51 | enum layers { | ||
52 | _QWERTY, | ||
53 | _WORKMAN, | ||
54 | _COLEMAK, | ||
55 | _DVORAK, | ||
56 | #ifdef LAYER_GAME | ||
57 | _GAME, | ||
58 | #endif | ||
59 | #ifdef LAYERS_PROGRAMMER | ||
60 | _QWERTY_PROGRAMMER, | ||
61 | _WORKMAN_PROGRAMMER, | ||
62 | _COLEMAK_PROGRAMMER, | ||
63 | _DVORAK_PROGRAMMER, | ||
64 | _PROGRAMMER_SHIFTED, | ||
65 | #endif | ||
66 | #ifdef LAYERS_ORTHO | ||
67 | _LOWER, | ||
68 | _RAISE, | ||
69 | _ADJUST, | ||
70 | #endif | ||
71 | #ifdef LAYER_FN | ||
72 | _FN, | ||
73 | #endif | ||
74 | #ifdef LAYER_GIT | ||
75 | _GIT, | ||
76 | #endif | ||
77 | }; | ||
78 | |||
79 | enum keycodes { | ||
80 | // Persistent layers switcher keys | ||
81 | QWERTY = SAFE_RANGE, | ||
82 | WORKMAN, | ||
83 | COLEMAK, | ||
84 | DVORAK, | ||
85 | #ifdef LAYER_GAME | ||
86 | GAME, | ||
87 | #endif | ||
88 | #ifdef LAYERS_PROGRAMMER | ||
89 | // Workman Programmer | ||
90 | QWERTY_PROGRAMMER, | ||
91 | WORKMAN_PROGRAMMER, | ||
92 | COLEMAK_PROGRAMMER, | ||
93 | DVORAK_PROGRAMMER, | ||
94 | PROGRAMMER_SHIFTED, | ||
95 | PG_GRV, | ||
96 | PG_1, | ||
97 | PG_2, | ||
98 | PG_3, | ||
99 | PG_4, | ||
100 | PG_5, | ||
101 | PG_6, | ||
102 | PG_7, | ||
103 | PG_8, | ||
104 | PG_9, | ||
105 | PG_0, | ||
106 | #endif | ||
107 | // RGB Underglow lights based on the layer key | ||
108 | RGB_LAYER, | ||
109 | #ifdef LAYER_GIT | ||
110 | // GIT commands | ||
111 | GIT_ADD, | ||
112 | GIT_BRANCH, | ||
113 | GIT_CHECKOUT, | ||
114 | GIT_CHERRYPICK, | ||
115 | GIT_COMMIT, | ||
116 | GIT_DIFF, | ||
117 | GIT_FETCH, | ||
118 | GIT_GREP, | ||
119 | GIT_LOG, | ||
120 | GIT_INIT, | ||
121 | GIT_MV, | ||
122 | GIT_MERGE, | ||
123 | GIT_PUSH, | ||
124 | GIT_PULL, | ||
125 | GIT_REBASE, | ||
126 | GIT_REMOTE, | ||
127 | GIT_RESET, | ||
128 | GIT_SHOW, | ||
129 | GIT_STASH, | ||
130 | GIT_STATUS, | ||
131 | GIT_TAG | ||
132 | #endif | ||
133 | }; | ||
134 | |||
135 | #define RGB_LYR RGB_LAYER | ||
diff --git a/users/greatwizard/keymap_helpers.h b/users/greatwizard/keymap_helpers.h new file mode 100644 index 000000000..af9f4dfaa --- /dev/null +++ b/users/greatwizard/keymap_helpers.h | |||
@@ -0,0 +1,61 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #include QMK_KEYBOARD_H | ||
19 | |||
20 | #define _______________QWERTY_LEFT1________________ KC_Q, KC_W, KC_E, KC_R, KC_T | ||
21 | #define _______________QWERTY_LEFT2________________ KC_A, KC_S, KC_D, KC_F, KC_G | ||
22 | #define _______________QWERTY_LEFT3________________ KC_Z, KC_X, KC_C, KC_V, KC_B | ||
23 | |||
24 | #define _______________QWERTY_RIGHT1_______________ KC_Y, KC_U, KC_I, KC_O, KC_P | ||
25 | #define _______________QWERTY_RIGHT2_______________ KC_H, KC_J, KC_K, KC_L, KC_SCLN | ||
26 | #define _______________QWERTY_RIGHT3_______________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH | ||
27 | |||
28 | #define _______________WORKMAN_LEFT1_______________ KC_Q, KC_D, KC_R, KC_W, KC_B | ||
29 | #define _______________WORKMAN_LEFT2_______________ KC_A, KC_S, KC_H, KC_T, KC_G | ||
30 | #define _______________WORKMAN_LEFT3_______________ KC_Z, KC_X, KC_M, KC_C, KC_V | ||
31 | |||
32 | #define _______________WORKMAN_RIGHT1______________ KC_J, KC_F, KC_U, KC_P, KC_SCLN | ||
33 | #define _______________WORKMAN_RIGHT2______________ KC_Y, KC_N, KC_E, KC_O, KC_I | ||
34 | #define _______________WORKMAN_RIGHT3______________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH | ||
35 | |||
36 | #define _______________COLEMAK_LEFT1_______________ KC_Q, KC_W, KC_F, KC_P, KC_G | ||
37 | #define _______________COLEMAK_LEFT2_______________ KC_A, KC_R, KC_S, KC_T, KC_D | ||
38 | #define _______________COLEMAK_LEFT3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B | ||
39 | |||
40 | #define _______________COLEMAK_RIGHT1______________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN | ||
41 | #define _______________COLEMAK_RIGHT2______________ KC_H, KC_N, KC_E, KC_I, KC_O | ||
42 | #define _______________COLEMAK_RIGHT3______________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH | ||
43 | |||
44 | #define _______________DVORAK_LEFT1________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y | ||
45 | #define _______________DVORAK_LEFT2________________ KC_A, KC_O, KC_E, KC_U, KC_I | ||
46 | #define _______________DVORAK_LEFT3________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X | ||
47 | |||
48 | #define _______________DVORAK_RIGHT1_______________ KC_F, KC_G, KC_C, KC_R, KC_L | ||
49 | #define _______________DVORAK_RIGHT2_______________ KC_D, KC_H, KC_T, KC_N, KC_S | ||
50 | #define _______________DVORAK_RIGHT3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z | ||
51 | |||
52 | #define _______________NUMBER_LEFT_________________ KC_1, KC_2, KC_3, KC_4, KC_5 | ||
53 | #define _______________NUMBER_RIGHT________________ KC_6, KC_7, KC_8, KC_9, KC_0 | ||
54 | |||
55 | #define _________________GIT_LEFT1_________________ GIT_CPK, GIT_SHW, GIT_RBS, GIT_RST, GIT_TAG | ||
56 | #define _________________GIT_LEFT2_________________ GIT_ADD, GIT_STT, GIT_DIF, GIT_FTC, GIT_GRP | ||
57 | #define _________________GIT_LEFT3_________________ _______, _______, GIT_CMT, GIT_MV, GIT_BRC | ||
58 | |||
59 | #define _________________GIT_RIGHT1________________ _______, GIT_PUL, GIT_INI, GIT_RMT, GIT_PUS | ||
60 | #define _________________GIT_RIGHT2________________ GIT_STS, _______, GIT_CKT, GIT_LOG, _______ | ||
61 | #define _________________GIT_RIGHT3________________ _______, GIT_MRG, _______, _______, _______ | ||
diff --git a/users/greatwizard/ortho.c b/users/greatwizard/ortho.c new file mode 100644 index 000000000..90b25b930 --- /dev/null +++ b/users/greatwizard/ortho.c | |||
@@ -0,0 +1,21 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #include "ortho.h" | ||
17 | |||
18 | layer_state_t layer_state_set_ortho(layer_state_t state) { | ||
19 | state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); | ||
20 | return state; | ||
21 | } | ||
diff --git a/users/greatwizard/ortho.h b/users/greatwizard/ortho.h new file mode 100644 index 000000000..7fb5d5e6c --- /dev/null +++ b/users/greatwizard/ortho.h | |||
@@ -0,0 +1,24 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #include QMK_KEYBOARD_H | ||
19 | #include "greatwizard.h" | ||
20 | |||
21 | layer_state_t layer_state_set_ortho(layer_state_t state); | ||
22 | |||
23 | #define LOWER MO(_LOWER) | ||
24 | #define RAISE MO(_RAISE) | ||
diff --git a/users/greatwizard/programmer.c b/users/greatwizard/programmer.c new file mode 100644 index 000000000..e0f71ea06 --- /dev/null +++ b/users/greatwizard/programmer.c | |||
@@ -0,0 +1,174 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #include "programmer.h" | ||
17 | |||
18 | bool process_record_pg(uint16_t keycode, keyrecord_t *record) { | ||
19 | switch (keycode) { | ||
20 | case QWERTY_PROGRAMMER: | ||
21 | if (record->event.pressed) { | ||
22 | set_single_persistent_default_layer(_QWERTY_PROGRAMMER); | ||
23 | } | ||
24 | return false; | ||
25 | case WORKMAN_PROGRAMMER: | ||
26 | if (record->event.pressed) { | ||
27 | set_single_persistent_default_layer(_WORKMAN_PROGRAMMER); | ||
28 | } | ||
29 | return false; | ||
30 | case COLEMAK_PROGRAMMER: | ||
31 | if (record->event.pressed) { | ||
32 | set_single_persistent_default_layer(_COLEMAK_PROGRAMMER); | ||
33 | } | ||
34 | return false; | ||
35 | case DVORAK_PROGRAMMER: | ||
36 | if (record->event.pressed) { | ||
37 | set_single_persistent_default_layer(_DVORAK_PROGRAMMER); | ||
38 | } | ||
39 | return false; | ||
40 | case PG_GRV: | ||
41 | if (record->event.pressed) { | ||
42 | uint8_t current_mods = get_mods(); | ||
43 | if (current_mods & MOD_MASK_SHIFT) { | ||
44 | clear_mods(); | ||
45 | SEND_STRING("`"); | ||
46 | set_mods(current_mods); | ||
47 | } else { | ||
48 | SEND_STRING("~"); | ||
49 | } | ||
50 | } | ||
51 | return false; | ||
52 | case PG_1: | ||
53 | if (record->event.pressed) { | ||
54 | uint8_t current_mods = get_mods(); | ||
55 | if (current_mods & MOD_MASK_SHIFT) { | ||
56 | clear_mods(); | ||
57 | SEND_STRING("1"); | ||
58 | set_mods(current_mods); | ||
59 | } else { | ||
60 | SEND_STRING("!"); | ||
61 | } | ||
62 | } | ||
63 | return false; | ||
64 | case PG_2: | ||
65 | if (record->event.pressed) { | ||
66 | uint8_t current_mods = get_mods(); | ||
67 | if (current_mods & MOD_MASK_SHIFT) { | ||
68 | clear_mods(); | ||
69 | SEND_STRING("2"); | ||
70 | set_mods(current_mods); | ||
71 | } else { | ||
72 | SEND_STRING("@"); | ||
73 | } | ||
74 | } | ||
75 | return false; | ||
76 | case PG_3: | ||
77 | if (record->event.pressed) { | ||
78 | uint8_t current_mods = get_mods(); | ||
79 | if (current_mods & MOD_MASK_SHIFT) { | ||
80 | clear_mods(); | ||
81 | SEND_STRING("3"); | ||
82 | set_mods(current_mods); | ||
83 | } else { | ||
84 | SEND_STRING("#"); | ||
85 | } | ||
86 | } | ||
87 | return false; | ||
88 | case PG_4: | ||
89 | if (record->event.pressed) { | ||
90 | uint8_t current_mods = get_mods(); | ||
91 | if (current_mods & MOD_MASK_SHIFT) { | ||
92 | clear_mods(); | ||
93 | SEND_STRING("4"); | ||
94 | set_mods(current_mods); | ||
95 | } else { | ||
96 | SEND_STRING("$"); | ||
97 | } | ||
98 | } | ||
99 | return false; | ||
100 | case PG_5: | ||
101 | if (record->event.pressed) { | ||
102 | uint8_t current_mods = get_mods(); | ||
103 | if (current_mods & MOD_MASK_SHIFT) { | ||
104 | clear_mods(); | ||
105 | SEND_STRING("5"); | ||
106 | set_mods(current_mods); | ||
107 | } else { | ||
108 | SEND_STRING("%"); | ||
109 | } | ||
110 | } | ||
111 | return false; | ||
112 | case PG_6: | ||
113 | if (record->event.pressed) { | ||
114 | uint8_t current_mods = get_mods(); | ||
115 | if (current_mods & MOD_MASK_SHIFT) { | ||
116 | clear_mods(); | ||
117 | SEND_STRING("6"); | ||
118 | set_mods(current_mods); | ||
119 | } else { | ||
120 | SEND_STRING("^"); | ||
121 | } | ||
122 | } | ||
123 | return false; | ||
124 | case PG_7: | ||
125 | if (record->event.pressed) { | ||
126 | uint8_t current_mods = get_mods(); | ||
127 | if (current_mods & MOD_MASK_SHIFT) { | ||
128 | clear_mods(); | ||
129 | SEND_STRING("7"); | ||
130 | set_mods(current_mods); | ||
131 | } else { | ||
132 | SEND_STRING("&"); | ||
133 | } | ||
134 | } | ||
135 | return false; | ||
136 | case PG_8: | ||
137 | if (record->event.pressed) { | ||
138 | uint8_t current_mods = get_mods(); | ||
139 | if (current_mods & MOD_MASK_SHIFT) { | ||
140 | clear_mods(); | ||
141 | SEND_STRING("8"); | ||
142 | set_mods(current_mods); | ||
143 | } else { | ||
144 | SEND_STRING("*"); | ||
145 | } | ||
146 | } | ||
147 | return false; | ||
148 | case PG_9: | ||
149 | if (record->event.pressed) { | ||
150 | uint8_t current_mods = get_mods(); | ||
151 | if (current_mods & MOD_MASK_SHIFT) { | ||
152 | clear_mods(); | ||
153 | SEND_STRING("9"); | ||
154 | set_mods(current_mods); | ||
155 | } else { | ||
156 | SEND_STRING("("); | ||
157 | } | ||
158 | } | ||
159 | return false; | ||
160 | case PG_0: | ||
161 | if (record->event.pressed) { | ||
162 | uint8_t current_mods = get_mods(); | ||
163 | if (current_mods & MOD_MASK_SHIFT) { | ||
164 | clear_mods(); | ||
165 | SEND_STRING("0"); | ||
166 | set_mods(current_mods); | ||
167 | } else { | ||
168 | SEND_STRING(")"); | ||
169 | } | ||
170 | } | ||
171 | return false; | ||
172 | } | ||
173 | return true; | ||
174 | } | ||
diff --git a/users/greatwizard/programmer.h b/users/greatwizard/programmer.h new file mode 100644 index 000000000..a79aada24 --- /dev/null +++ b/users/greatwizard/programmer.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #include QMK_KEYBOARD_H | ||
19 | #include "greatwizard.h" | ||
20 | |||
21 | bool process_record_pg(uint16_t keycode, keyrecord_t *record); | ||
22 | |||
23 | #define QWERTYP QWERTY_PROGRAMMER | ||
24 | #define WORKMNP WORKMAN_PROGRAMMER | ||
25 | #define COLEMKP COLEMAK_PROGRAMMER | ||
26 | #define DVORAKP DVORAK_PROGRAMMER | ||
27 | #ifdef TAP_DANCE_LSFT_CAPS | ||
28 | # define PG_LSCP TD(TD_PG_LSFT_CAPS) | ||
29 | #else | ||
30 | # define PG_LSCP LM(_PROGRAMMER_SHIFTED, MOD_LSFT) | ||
31 | #endif | ||
diff --git a/users/greatwizard/readme.md b/users/greatwizard/readme.md new file mode 100644 index 000000000..bc2df7f9b --- /dev/null +++ b/users/greatwizard/readme.md | |||
@@ -0,0 +1,32 @@ | |||
1 | # GreatWizard Userspace | ||
2 | |||
3 | ## Features | ||
4 | |||
5 | - ⌨️ Switchable and persistent base layers: Qwerty, Workman, Workman, Colemak, Dvorak, 🎮 Game | ||
6 | - ⌨️ Programmer flavored base layers available | ||
7 | - 💃🕺 Tap Dances | ||
8 | - 🆙 Auto Shift | ||
9 | - 👨💻 One shot keys git commands layer | ||
10 | - 🌈 RGB Underglow lights based on the layer | ||
11 | - ⚙️ Rotary encoder for volume level and next/previous media | ||
12 | - 🗜️ Enable link time optimization | ||
13 | |||
14 | ## Community Layouts | ||
15 | |||
16 | - [ortholinear 4x12](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ortho_4x12/greatwizard) | ||
17 | - [ortholinear 5x12](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ortho_5x12/greatwizard) | ||
18 | |||
19 | ## Build Options | ||
20 | |||
21 | ### Layers | ||
22 | |||
23 | - `LAYERS_ORTHO`: add Lower, Raise and Adjust layers/keycodes | ||
24 | - `LAYERS_PROGRAMMER`: add Programmer layers/keycodes | ||
25 | - `LAYER_GAME`: add Game layer/keycode | ||
26 | - `LAYER_GIT`: add GIT layer/keycode | ||
27 | - `LAYER_FN`: add Fn layer/keycode | ||
28 | |||
29 | ### Tap Dances | ||
30 | |||
31 | - `TAP_DANCE_LALT_GIT`: Double tap on LGUI to use the one shot keys git commands layer | ||
32 | - `TAP_DANCE_LSFT_CAPS`: Double tap on LSHIFT to set Caps Lock | ||
diff --git a/users/greatwizard/rules.mk b/users/greatwizard/rules.mk new file mode 100644 index 000000000..92bb4ccd1 --- /dev/null +++ b/users/greatwizard/rules.mk | |||
@@ -0,0 +1,31 @@ | |||
1 | SRC += greatwizard.c | ||
2 | |||
3 | ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) | ||
4 | SRC += tap_dances.c | ||
5 | endif | ||
6 | |||
7 | ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) | ||
8 | SRC += underglow.c | ||
9 | endif | ||
10 | |||
11 | ifeq ($(strip $(LAYER_GAME)), yes) | ||
12 | SRC += game.c | ||
13 | endif | ||
14 | |||
15 | ifeq ($(strip $(LAYER_GIT)), yes) | ||
16 | SRC += git.c | ||
17 | endif | ||
18 | |||
19 | ifeq ($(strip $(LAYERS_ORTHO)), yes) | ||
20 | SRC += ortho.c | ||
21 | endif | ||
22 | |||
23 | ifeq ($(strip $(LAYERS_PROGRAMMER)), yes) | ||
24 | SRC += programmer.c | ||
25 | endif | ||
26 | |||
27 | ifneq ($(PLATFORM),CHIBIOS) | ||
28 | LTO_ENABLE = yes # Enable link time optimization | ||
29 | endif | ||
30 | |||
31 | AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key | ||
diff --git a/users/greatwizard/tap_dances.c b/users/greatwizard/tap_dances.c new file mode 100644 index 000000000..c6be995c4 --- /dev/null +++ b/users/greatwizard/tap_dances.c | |||
@@ -0,0 +1,105 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #include "tap_dances.h" | ||
17 | |||
18 | uint8_t cur_dance(qk_tap_dance_state_t *state) { | ||
19 | if (state->count == 1) { | ||
20 | if (state->interrupted || !state->pressed) return SINGLE_TAP; | ||
21 | else return SINGLE_HOLD; | ||
22 | } else if (state->count == 2) { | ||
23 | if (state->interrupted) return DOUBLE_SINGLE_TAP; | ||
24 | else if (state->pressed) return DOUBLE_HOLD; | ||
25 | else return DOUBLE_TAP; | ||
26 | } | ||
27 | if (state->count == 3) { | ||
28 | if (state->interrupted || !state->pressed) return TRIPLE_TAP; | ||
29 | else return TRIPLE_HOLD; | ||
30 | } else return 8; | ||
31 | } | ||
32 | |||
33 | static tap tap_state = { | ||
34 | .is_press_action = true, | ||
35 | .state = 0 | ||
36 | }; | ||
37 | |||
38 | #ifdef TAP_DANCE_LALT_GIT | ||
39 | void lalt_finished(qk_tap_dance_state_t *state, void *user_data) { | ||
40 | tap_state.state = cur_dance(state); | ||
41 | switch (tap_state.state) { | ||
42 | case SINGLE_HOLD: | ||
43 | register_mods(MOD_BIT(KC_LALT)); | ||
44 | break; | ||
45 | case DOUBLE_SINGLE_TAP: | ||
46 | case DOUBLE_TAP: | ||
47 | set_oneshot_layer(_GIT, ONESHOT_START); | ||
48 | break; | ||
49 | } | ||
50 | } | ||
51 | |||
52 | void lalt_reset(qk_tap_dance_state_t *state, void *user_data) { | ||
53 | switch (tap_state.state) { | ||
54 | case SINGLE_HOLD: | ||
55 | unregister_mods(MOD_BIT(KC_LALT)); | ||
56 | break; | ||
57 | case DOUBLE_SINGLE_TAP: | ||
58 | case DOUBLE_TAP: | ||
59 | clear_oneshot_layer_state(ONESHOT_PRESSED); | ||
60 | break; | ||
61 | } | ||
62 | tap_state.state = 0; | ||
63 | } | ||
64 | #endif | ||
65 | |||
66 | #ifdef TAP_DANCE_LSFT_CAPS | ||
67 | # ifdef LAYERS_PROGRAMMER | ||
68 | void pg_lsft_finished(qk_tap_dance_state_t *state, void *user_data) { | ||
69 | tap_state.state = cur_dance(state); | ||
70 | switch (tap_state.state) { | ||
71 | case SINGLE_HOLD: | ||
72 | register_mods(MOD_BIT(KC_LSFT)); | ||
73 | layer_on(_PROGRAMMER_SHIFTED); | ||
74 | break; | ||
75 | case DOUBLE_SINGLE_TAP: | ||
76 | case DOUBLE_TAP: | ||
77 | tap_code(KC_CAPS); | ||
78 | layer_on(_PROGRAMMER_SHIFTED); | ||
79 | break; | ||
80 | } | ||
81 | } | ||
82 | |||
83 | void pg_lsft_reset(qk_tap_dance_state_t *state, void *user_data) { | ||
84 | switch (tap_state.state) { | ||
85 | case SINGLE_HOLD: | ||
86 | unregister_mods(MOD_BIT(KC_LSFT)); | ||
87 | layer_off(_PROGRAMMER_SHIFTED); | ||
88 | break; | ||
89 | } | ||
90 | tap_state.state = 0; | ||
91 | } | ||
92 | # endif | ||
93 | #endif | ||
94 | |||
95 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
96 | #ifdef TAP_DANCE_LALT_GIT | ||
97 | [TD_LALT_GIT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lalt_finished, lalt_reset), | ||
98 | #endif | ||
99 | #ifdef TAP_DANCE_LSFT_CAPS | ||
100 | [TD_LSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), | ||
101 | # ifdef LAYERS_PROGRAMMER | ||
102 | [TD_PG_LSFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, pg_lsft_finished, pg_lsft_reset), | ||
103 | # endif | ||
104 | #endif | ||
105 | }; | ||
diff --git a/users/greatwizard/tap_dances.h b/users/greatwizard/tap_dances.h new file mode 100644 index 000000000..944ae4555 --- /dev/null +++ b/users/greatwizard/tap_dances.h | |||
@@ -0,0 +1,65 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #include QMK_KEYBOARD_H | ||
19 | #include "greatwizard.h" | ||
20 | |||
21 | typedef struct { | ||
22 | bool is_press_action; | ||
23 | uint8_t state; | ||
24 | } tap; | ||
25 | |||
26 | enum { | ||
27 | SINGLE_TAP = 1, | ||
28 | SINGLE_HOLD, | ||
29 | DOUBLE_TAP, | ||
30 | DOUBLE_HOLD, | ||
31 | DOUBLE_SINGLE_TAP, | ||
32 | TRIPLE_TAP, | ||
33 | TRIPLE_HOLD | ||
34 | }; | ||
35 | |||
36 | enum { | ||
37 | #ifdef TAP_DANCE_LALT_GIT | ||
38 | TD_LALT_GIT, | ||
39 | #endif | ||
40 | #ifdef TAP_DANCE_LSFT_CAPS | ||
41 | TD_LSFT_CAPS, | ||
42 | # ifdef LAYERS_PROGRAMMER | ||
43 | TD_PG_LSFT_CAPS, | ||
44 | # endif | ||
45 | #endif | ||
46 | }; | ||
47 | |||
48 | uint8_t cur_dance(qk_tap_dance_state_t *state); | ||
49 | |||
50 | #ifdef TAP_DANCE_LALT_GIT | ||
51 | void lalt_finished(qk_tap_dance_state_t *state, void *user_data); | ||
52 | void lalt_reset(qk_tap_dance_state_t *state, void *user_data); | ||
53 | # define TD_LALT TD(TD_LALT_GIT) | ||
54 | #endif | ||
55 | |||
56 | #ifdef TAP_DANCE_LSFT_CAPS | ||
57 | # ifdef LAYERS_PROGRAMMER | ||
58 | void pg_lsft_finished(qk_tap_dance_state_t *state, void *user_data); | ||
59 | void pg_lsft_reset(qk_tap_dance_state_t *state, void *user_data); | ||
60 | # endif | ||
61 | #endif | ||
62 | |||
63 | #ifdef TAP_DANCE_LSFT_CAPS | ||
64 | # define TD_LSCP TD(TD_LSFT_CAPS) | ||
65 | #endif | ||
diff --git a/users/greatwizard/underglow.c b/users/greatwizard/underglow.c new file mode 100644 index 000000000..db31290ac --- /dev/null +++ b/users/greatwizard/underglow.c | |||
@@ -0,0 +1,109 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #include "underglow.h" | ||
17 | |||
18 | void keyboard_post_init_rgb(void) { | ||
19 | user_config_t user_config; | ||
20 | user_config.raw = eeconfig_read_user(); | ||
21 | if (!user_config.rgb_layer_change) { | ||
22 | return; | ||
23 | } | ||
24 | rgblight_enable_noeeprom(); | ||
25 | rgblight_sethsv_noeeprom_orange(); | ||
26 | rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); | ||
27 | } | ||
28 | |||
29 | bool process_record_rgb(uint16_t keycode, keyrecord_t *record) { | ||
30 | switch (keycode) { | ||
31 | case RGB_LAYER: | ||
32 | if (record->event.pressed) { | ||
33 | user_config_t user_config; | ||
34 | user_config.raw = eeconfig_read_user(); | ||
35 | user_config.rgb_layer_change ^= 1; | ||
36 | eeconfig_update_user(user_config.raw); | ||
37 | if (user_config.rgb_layer_change) { | ||
38 | layer_state_set(layer_state); | ||
39 | } | ||
40 | } | ||
41 | return false; | ||
42 | case RGB_MODE_FORWARD ... RGB_MODE_RGBTEST: | ||
43 | if (record->event.pressed) { | ||
44 | user_config_t user_config; | ||
45 | user_config.raw = eeconfig_read_user(); | ||
46 | if (user_config.rgb_layer_change) { | ||
47 | user_config.rgb_layer_change = false; | ||
48 | eeconfig_update_user(user_config.raw); | ||
49 | } | ||
50 | } | ||
51 | return true; | ||
52 | } | ||
53 | return true; | ||
54 | } | ||
55 | |||
56 | layer_state_t layer_state_set_rgb(layer_state_t state) { | ||
57 | user_config_t user_config; | ||
58 | user_config.raw = eeconfig_read_user(); | ||
59 | if (!user_config.rgb_layer_change) { | ||
60 | return state; | ||
61 | } | ||
62 | switch (get_highest_layer(state)) { | ||
63 | case _QWERTY: | ||
64 | #ifdef LAYERS_PROGRAMMER | ||
65 | case _PROGRAMMER_SHIFTED: | ||
66 | #endif | ||
67 | rgblight_sethsv_noeeprom_orange(); | ||
68 | break; | ||
69 | #ifdef LAYERS_ORTHO | ||
70 | case _LOWER: | ||
71 | rgblight_sethsv_noeeprom_red(); | ||
72 | break; | ||
73 | case _RAISE: | ||
74 | rgblight_sethsv_noeeprom_blue(); | ||
75 | break; | ||
76 | case _ADJUST: | ||
77 | rgblight_sethsv_noeeprom_purple(); | ||
78 | break; | ||
79 | #endif | ||
80 | #ifdef LAYER_FN | ||
81 | case _FN: | ||
82 | rgblight_sethsv_noeeprom_chartreuse(); | ||
83 | break; | ||
84 | #endif | ||
85 | #ifdef LAYER_GIT | ||
86 | case _GIT: | ||
87 | rgblight_sethsv_noeeprom_teal(); | ||
88 | break; | ||
89 | #endif | ||
90 | default: | ||
91 | rgblight_sethsv_noeeprom_white(); | ||
92 | break; | ||
93 | } | ||
94 | return state; | ||
95 | } | ||
96 | |||
97 | bool led_update_rgb(led_t led_state) { | ||
98 | user_config_t user_config; | ||
99 | user_config.raw = eeconfig_read_user(); | ||
100 | if (!user_config.rgb_layer_change) { | ||
101 | return true; | ||
102 | } | ||
103 | if (led_state.caps_lock) { | ||
104 | rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); | ||
105 | } else { | ||
106 | rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); | ||
107 | } | ||
108 | return true; | ||
109 | } | ||
diff --git a/users/greatwizard/underglow.h b/users/greatwizard/underglow.h new file mode 100644 index 000000000..7e073b857 --- /dev/null +++ b/users/greatwizard/underglow.h | |||
@@ -0,0 +1,24 @@ | |||
1 | /* Copyright 2020 Guillaume Gérard | ||
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 | #pragma once | ||
17 | |||
18 | #include QMK_KEYBOARD_H | ||
19 | #include "greatwizard.h" | ||
20 | |||
21 | void keyboard_post_init_rgb(void); | ||
22 | bool process_record_rgb(uint16_t keycode, keyrecord_t *record); | ||
23 | layer_state_t layer_state_set_rgb(layer_state_t state); | ||
24 | bool led_update_rgb(led_t led_state); | ||