aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c173
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c60
-rw-r--r--keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c111
-rw-r--r--keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h20
-rw-r--r--keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c80
-rw-r--r--keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md9
-rw-r--r--keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk2
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c102
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk2
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c102
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk3
-rw-r--r--keyboards/keebio/bdn9/keymaps/brandonschlack/config.h25
-rw-r--r--keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c393
-rw-r--r--keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md107
-rw-r--r--keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk11
-rw-r--r--keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c67
-rw-r--r--keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk8
-rw-r--r--keyboards/launchpad/keymaps/brandonschlack/config.h32
-rw-r--r--keyboards/launchpad/keymaps/brandonschlack/keymap.c213
-rw-r--r--keyboards/launchpad/keymaps/brandonschlack/readme.md31
-rw-r--r--keyboards/launchpad/keymaps/brandonschlack/rules.mk13
-rw-r--r--keyboards/maartenwut/wonderland/keymaps/brandonschlack/config.h19
-rwxr-xr-xkeyboards/maartenwut/wonderland/keymaps/brandonschlack/keymap.c170
-rwxr-xr-xkeyboards/maartenwut/wonderland/keymaps/brandonschlack/rules.mk8
-rw-r--r--keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h30
-rw-r--r--keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c270
-rw-r--r--keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md1
-rw-r--r--keyboards/nightmare/keymaps/brandonschlack/keymap.c195
-rw-r--r--keyboards/nightmare/keymaps/brandonschlack/readme.md20
-rw-r--r--keyboards/primekb/prime_e/keymaps/brandonschlack/config.h30
-rw-r--r--keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c95
-rw-r--r--keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk2
-rw-r--r--keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c115
-rw-r--r--keyboards/tkc/osav2/keymaps/brandonschlack/config.h30
-rwxr-xr-xkeyboards/tkc/osav2/keymaps/brandonschlack/keymap.c243
-rwxr-xr-xkeyboards/tkc/osav2/keymaps/brandonschlack/rules.mk9
-rw-r--r--keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c132
-rw-r--r--layouts/community/60_ansi/brandonschlack-ansi/keymap.c83
-rw-r--r--layouts/community/60_ansi/brandonschlack-ansi/rules.mk1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c83
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk1
-rw-r--r--layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c84
-rw-r--r--layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md11
-rw-r--r--layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk1
-rw-r--r--layouts/community/65_ansi_blocker/brandonschlack/config.h64
-rw-r--r--layouts/community/65_ansi_blocker/brandonschlack/keymap.c117
-rw-r--r--layouts/community/65_ansi_blocker/brandonschlack/readme.md15
-rw-r--r--layouts/community/65_ansi_blocker/brandonschlack/rules.mk7
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h64
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c104
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md15
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk2
-rw-r--r--layouts/community/75_ansi/brandonschlack/keymap.c105
-rw-r--r--layouts/community/75_ansi/brandonschlack/readme.md7
-rw-r--r--layouts/community/75_ansi/brandonschlack/rules.mk5
-rw-r--r--layouts/community/ortho_4x12/brandonschlack/config.h55
-rw-r--r--layouts/community/ortho_4x12/brandonschlack/keymap.c218
-rw-r--r--layouts/community/ortho_4x12/brandonschlack/readme.md20
-rw-r--r--layouts/community/ortho_4x12/brandonschlack/rules.mk10
-rw-r--r--layouts/community/ortho_5x12/brandonschlack/config.h55
-rw-r--r--layouts/community/ortho_5x12/brandonschlack/keymap.c214
-rw-r--r--layouts/community/ortho_5x12/brandonschlack/readme.md19
-rw-r--r--layouts/community/ortho_5x12/brandonschlack/rules.mk10
-rw-r--r--layouts/community/tkl_ansi/brandonschlack/config.h20
-rw-r--r--layouts/community/tkl_ansi/brandonschlack/keymap.c102
-rw-r--r--layouts/community/tkl_ansi/brandonschlack/readme.md55
-rw-r--r--layouts/community/tkl_ansi/brandonschlack/rules.mk4
-rw-r--r--users/brandonschlack/brandonschlack.c214
-rw-r--r--users/brandonschlack/brandonschlack.h83
-rw-r--r--users/brandonschlack/config.h55
-rw-r--r--users/brandonschlack/process_records.c172
-rw-r--r--users/brandonschlack/process_records.h152
-rw-r--r--users/brandonschlack/readme.md48
-rw-r--r--users/brandonschlack/rgb_bs.c146
-rw-r--r--users/brandonschlack/rgb_bs.h35
-rw-r--r--users/brandonschlack/rgb_theme.h51
-rw-r--r--users/brandonschlack/rgb_theme_user.inc95
-rw-r--r--users/brandonschlack/rules.mk34
-rw-r--r--users/brandonschlack/tap_dances.c91
-rw-r--r--users/brandonschlack/tap_dances.h52
80 files changed, 5712 insertions, 0 deletions
diff --git a/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c b/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..1d0cdf4f0
--- /dev/null
+++ b/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,173 @@
1/* Copyright 2020 Brandon Schlack
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18#include "brandonschlack.h"
19
20/**
21 * Layer Names
22 *
23 * Layers mostly used for macro keys
24 */
25#define _REEDER _M1
26#define _NAV _M2
27#define _MOUSE _M3
28
29/**
30 * Keycodes & Macros
31 */
32#define TG_BASE TO(_BASE)
33#define TG_REDR TO(_REEDER)
34#define TG_NAV TO(_NAV)
35#define TG_MOUS TO(_MOUSE)
36
37const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38 /**
39 * Base
40 * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
41 * │Esc│││Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│Bck│
42 * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
43 * │PgU│││HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│
44 * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
45 * │PgD│││Shift   │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│Shft│ Fn│
46 * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
47 * │End│││││││││││Opt│Cmd  │        │          │  Cmd│Ctl│││││││││││
48 * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
49 */
50 [_BASE] = LAYOUT_default(
51 KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
52 KC_PGUP, HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
53 KC_PGDN, KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1, \
54 KC_END, KC_LOPT, KC_LCMD, SPC_RAI, SPC_RAI, KC_RCMD, KC_RCTL \
55 ),
56 /**
57 * Reeder
58 * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
59 * │ P │││     │   │   │   │   │   │   │   │   │   │   │   │   │   │
60 * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
61 * │ K │││      │   │   │   │   │   │   │   │   │   │   │   │      │
62 * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
63 * │ J │││        │   │   │   │   │   │   │   │   │   │   │    │   │
64 * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
65 * │ N │││││││││││   │     │        │          │     │   │││││││││││
66 * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
67 */
68 [_REEDER] = LAYOUT_default( \
69 KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
70 KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
71 KC_J, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
72 KC_N, _______, _______, _______, _______, _______, _______ \
73 ),
74 /**
75 * Nav
76 * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
77 * │ → │││     │   │   │   │   │   │   │   │   │   │   │   │   │   │
78 * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
79 * │ ↑ │││      │   │   │   │   │   │   │   │   │   │   │   │      │
80 * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
81 * │ ↓ │││        │   │   │   │   │   │   │   │   │   │   │    │   │
82 * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
83 * │ ← │││││││││││   │     │        │          │     │   │││││││││││
84 * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
85 */
86 [_NAV] = LAYOUT_default( \
87 KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
88 KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
89 KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
90 KC_LEFT, _______, _______, _______, _______, _______, _______ \
91 ),
92 /**
93 * Mouse
94 * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
95 * │WhU│││     │   │   │   │   │   │   │   │   │   │   │   │   │   │
96 * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
97 * │ ↑ │││      │   │   │   │   │   │   │   │   │   │   │   │      │
98 * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
99 * │ ↓ │││        │   │   │   │   │   │   │   │   │   │   │    │   │
100 * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
101 * │WhD│││││││││││   │     │        │          │     │   │││││││││││
102 * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
103 */
104 [_MOUSE] = LAYOUT_default( \
105 MC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
106 KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
107 KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
108 MC_WH_D, _______, _______, _______, _______, _______, _______ \
109 ),
110 /**
111 * Lower
112 * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
113 * │Nxt│││Del  │BrD│BrU│Msn│LHP│   │   │   │   │   │   │ ↑ │Mut│SlD│
114 * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
115 * │VlU│││HyCaps│   │   │NxW│PvT│Bck│Fwd│NxT│   │   │ ← │ → │ Play │
116 * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
117 * │VlD│││        │   │   │   │1PX│1Ps│   │   │   │   │ ↓ │    │   │
118 * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
119 * │Prv│││││││││││   │     │        │          │     │   │││││││││││
120 * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
121 */
122 [_LOWER] = LAYOUT_default( \
123 KC_MNXT, KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD, \
124 KC_VOLU, HY_CAPS, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, _______, KC_LEFT, KC_RGHT, KC_MPLY, \
125 KC_VOLD, _______, XXXXXXX, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, KC_DOWN, _______, _______, \
126 KC_MPRV, _______, _______, _______, _______, _______, _______ \
127 ),
128
129 /**
130 * Raise
131 * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
132 * │Hom│││~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│   │
133 * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
134 * │PgU│││      │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│   │   │   │      │
135 * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
136 * │PgD│││        │ F7│ F8│ F9│F10│F11│F12│   │   │   │| \│    │   │
137 * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
138 * │End│││││││││││   │     │        │          │     │   │││││││││││
139 * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
140 */
141 [_RAISE] = LAYOUT_default( \
142 KC_HOME, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, \
143 KC_PGUP, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, _______, _______, _______, \
144 KC_PGDN, _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_BSLS, _______, _______, \
145 KC_END, _______, _______, _______, _______, _______, _______ \
146 ),
147 /**
148 * Adjust
149 * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
150 * │Bse│││Make │   │   │EEP│RST│   │   │   │   │   │   │   │   │   │
151 * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
152 * │Rdr│││      │   │   │   │   │   │   │   │   │   │   │   │      │
153 * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
154 * │Nav│││        │   │   │   │   │   │   │   │   │   │   │    │   │
155 * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
156 * │Mse│││││││││││   │     │        │          │     │   │││││││││││
157 * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
158 */
159 [_ADJUST] = LAYOUT_default( \
160 TG_BASE, QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
161 TG_REDR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
162 TG_NAV, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
163 TG_MOUS, _______, _______, _______, _______, _______, _______ \
164 ),
165};
166
167void keyboard_post_init_keymap(void) {
168 rgblight_disable_noeeprom();
169}
170
171layer_state_t layer_state_set_keymap(layer_state_t state) {
172 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
173}
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..4c63a3e14
--- /dev/null
+++ b/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,60 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base Layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
22 * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│Hom│
23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
24 * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgU│
25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
26 * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
27 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
28 * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
29 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤
30 * │Ctrl│ Opt│ Cmd│ Space │ Cmd │FnPly│Lef│Dow│Rig│
31 * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
32 */
33[_BASE] = LAYOUT_65_ansi_2_right_mods( \
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, \
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, \
36 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \
38 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT \
39),
40/* Function Layer
41 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
42 * │` ~│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Del │SlD│
43 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
44 * │ │ │ │ │ │ │ │ │ │ │F13│F14│F15│ LHP │VlU│
45 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
46 * │ │ │ │ │ │ │ │ │ │ │ │ │ │VlD│
47 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
48 * │ │ │ │ │ │RST│ │Mke│Prv│Nxt│Ply│ │PgU│Mut│
49 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤
50 * │ │ │ │ │ │ │Hom│PgD│End│
51 * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
52 */
53[_FN1] = LAYOUT_65_ansi_2_right_mods( \
54 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DELT, MC_SLPD, \
55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_LHPD, KC_VOLU, \
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \
57 _______, _______, _______, _______, _______, RESET, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \
58 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \
59)
60};
diff --git a/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c b/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..3be5d44ea
--- /dev/null
+++ b/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,111 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base Layer
21* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
22* │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Bspc│
23* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
24* │HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Enter│
25* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
26* │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│ ?/Sft│
27* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
28* │Ctrl│Opt│Cmd│ Space │ Cmd│Opt│ Lwr│
29* └────┴───┴───┴────────────────────────┴────┴───┴────┘
30*/
31[_BASE] = LAYOUT_ansi_40( \
32 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
33 HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, \
34 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SLSH, \
35 KC_LCTL, KC_LOPT, KC_LCMD, SPC_RAI, KC_RCMD, KC_ROPT, LOWER \
36),
37/* Lower
38* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
39* │Del │BrD│BrU│Msn│LHP│   │   │   │PgU│Hom│End│ SlpD│
40* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
41* │HyCaps│Mut│VlU│NxW│PvT│Bck│Fwd│NxT│PgD│ ↑ │ Play│
42* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
43* │ │Prv│VlD│Nxt│1PX│1Ps│   │ ← │ ↓ │ → │ │
44* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
45* │ │ │ │ │ │ │ │
46* └────┴───┴───┴────────────────────────┴────┴───┴────┘
47*/
48[_LOWER] = LAYOUT_ansi_40( \
49 KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, MC_SLPD, \
50 HY_CAPS, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, KC_PGDN, KC_UP, KC_MPLY, \
51 _______, KC_MPRV, KC_VOLD, KC_MNXT, PX_AFLL, OP_AFLL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, \
52 _______, _______, _______, _______, _______, _______, _______ \
53),
54/* Raise
55* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
56* │~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│ │
57* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
58* │     │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│: ;│ " '│
59* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
60* │ │ F7│ F8│ F9│F10│F11│F12│   │{ [│} ]│ |\Sft│
61* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
62* │ │ │ │ │    │   │    │
63* └────┴───┴───┴────────────────────────┴────┴───┴────┘
64*/
65[_RAISE] = LAYOUT_ansi_40( \
66 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \
67 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, \
68 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, SF_BSLS, \
69 _______, _______, _______, _______, _______, _______, _______ \
70),
71/* Adjust/Macro Layer
72* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
73* │Make │   │   │EEP│RST│ │ │ │ │ │ │     │
74* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
75* │ │ │ │ │ │ │ │ │ │ │ │
76* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
77* │ │ │ │ │ │ │ │ │ │ │ │
78* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
79* │ │ │ │ │ │ │ │
80* └────┴───┴───┴────────────────────────┴────┴───┴────┘
81*/
82[_ADJUST] = LAYOUT_ansi_40( \
83 QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, \
84 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
85 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
86 _______, _______, _______, _______, _______, _______, _______ \
87)
88/* Blank Layer
89* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
90* │ │ │ │ │ │ │ │ │ │ │ │ │
91* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
92* │ │ │ │ │ │ │ │ │ │ │ │
93* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
94* │ │ │ │ │ │ │ │ │ │ │ │
95* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
96* │ │ │ │ │ │ │ │
97* └────┴───┴───┴────────────────────────┴────┴───┴────┘
98*/
99/*
100[BLANK] = LAYOUT_ansi_40( \
101 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
102 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
103 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
104 _______, _______, _______, _______, _______, _______, _______ \
105)
106*/
107};
108
109layer_state_t layer_state_set_keymap(layer_state_t state) {
110 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
111}
diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h
new file mode 100644
index 000000000..157b55d76
--- /dev/null
+++ b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h
@@ -0,0 +1,20 @@
1/* Copyright 2019 Brandon Schlack
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#undef RGBLIGHT_ANIMATIONS
20#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..595540199
--- /dev/null
+++ b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,80 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base Layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
22 * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│PgU│
23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
24 * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgD│
25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
26 * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│ │
27 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │
28 * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│ │
29 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
30 * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│
31 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
32 */
33[_BASE] = LAYOUT_65_ansi_blocker( \
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, \
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \
36 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, XXXXXXX, \
38 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT \
39),
40/* Function Layer
41 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
42 * │` ~│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Delete│VlU│
43 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
44 * │RMod │RH+│RS+│RV+│ │ │ │ │ │ │F13│F14│F15│ SlpD│VlD│
45 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
46 * │RTgl │RH-│RS-│RV-│ │ │ │ │ │ │MNC│LHP│ │ │
47 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │
48 * │ │LYR│Thm│ │ │RST│ │Mke│Prv│Nxt│Ply│MteSft│PgU│ │
49 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
50 * │ │ │ │ │ │ │ │Hom│PgD│End│
51 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
52 */
53[_FN1] = LAYOUT_65_ansi_blocker( \
54 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DELT, KC_VOLU, \
55 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_SLPD, KC_VOLD, \
56 RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, MC_MSSN, MC_LHPD, _______, XXXXXXX, \
57 _______, RGB_LYR, RGB_THM, _______, _______, RESET, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, MUT_SFT, KC_PGUP, XXXXXXX, \
58 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \
59),
60/* Blank Layout
61 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
62 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
63 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
64 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
65 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
66 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
67 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │
68 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
69 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
70 * │ │ │ │ │ │ │ │ │ │ │
71 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
72[X] = LAYOUT_65_ansi_blocker( \
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, \
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
76 _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
77 _______, _______, _______, _______, _______, _______, _______, _______, _______ \
78),
79*/
80};
diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md
new file mode 100644
index 000000000..76174061a
--- /dev/null
+++ b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md
@@ -0,0 +1,9 @@
1# brandonschlack's Think6.5 keymap
2
3My keymap for the Think6.5. Using the `LAYOUT_65_ansi_blocker` LAYOUT and based on my keyboard-agnostic layout, some small changes for the navigation keys not present due to the badge.
4
5## [Base Layer](http://www.keyboard-layout-editor.com/#/gists/b396fee9f49d6e9493876e82a8ee99ac)
6![Base Layer](https://i.imgur.com/AZYVuZS.jpg)
7
8## [Function Layer](http://www.keyboard-layout-editor.com/#/gists/06e684133399bb63d8b72ac6982e0e68)
9![Function Layer](https://i.imgur.com/GbOOxME.jpg)
diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk
new file mode 100644
index 000000000..4ce80104e
--- /dev/null
+++ b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,2 @@
1# Build Options
2MOUSEKEY_ENABLE = no # Don't need mouse keys
diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c b/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..a73c961db
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,102 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base Layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
22 * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│Hom│
23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
24 * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│PgU│
25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
26 * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
27 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
28 * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
29 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
30 * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│
31 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
32 */
33[_BASE] = LAYOUT(
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME, \
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \
36 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \
38 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT),
39
40/* Function Layer
41 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
42 * │MKE│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│MSN│SLP│
43 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
44 * │ │ │ │ │RST│ │ │ │ │ │F13│F14│F15│ Del│VlU│
45 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
46 * │ │ │ │ │ │ │ │ │KMP│ │ │ │ Adjust │VlD│
47 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
48 * │ │ │ │ │VRN│ │ │ │Prv│Nxt│Ply│ │PgU│Mut│
49 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
50 * │ │ │ │ │ │ │ │Hom│PgD│End│
51 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
52 */
53[_FN1] = LAYOUT(
54 QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_MSSN, MC_SLPD, \
55 _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_DEL, KC_VOLU, \
56 _______, _______, _______, _______, _______, _______, _______, _______, QM_KYMP, _______, _______, _______, TG_ADJT, KC_VOLD, \
57 _______, _______, _______, _______, QM_VRSN, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \
58 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ),
59
60/* Adjust Layer Layer
61 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
62 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
63 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
64 * │ │ │ │EEP│RST│ │ │ │ │ │ │ │ │ │ │
65 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
66 * │ │ │ │ │ │ │ │ │ │ │ │ │ Adjust │ │
67 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
68 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
69 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
70 * │ │ │ │ │ │ │ │ │ │ │
71 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
72 */
73[_ADJUST] = LAYOUT(
74 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
75 XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
76 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJT, XXXXXXX, \
77 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, \
78 _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX),
79};
80
81/* Blank Template
82 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
83 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
84 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
85 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
86 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
87 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
88 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
89 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
90 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
91 * │ │ │ │ │ │ │ │ │ │ │
92 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
93 */
94/*
95[_BLANK] = LAYOUT(
96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
97 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
98 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
99 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
100 _______, _______, _______, _______, _______, _______, _______, _______, _______),
101};
102*/
diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk b/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk
new file mode 100644
index 000000000..f24246449
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,2 @@
1# Build Options
2BOOTMAGIC_ENABLE = full # Use full Bootmagic
diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c b/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..235cb2e87
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,102 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base Layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
22 * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│Hom│
23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
24 * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│PgU│
25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
26 * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
27 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
28 * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
29 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
30 * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│
31 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
32 */
33[_BASE] = LAYOUT_all(
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME, \
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \
36 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
37 KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \
38 KC_LCTL, KC_LOPT, KC_LCMD, XXXXXXX, KC_SPC, XXXXXXX, KC_RCMD, PLY_FN1, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT),
39
40/* Function Layer
41 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
42 * │MKE│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│MSN│SLP│
43 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
44 * │RMod │RH+│RS+│RV+│RST│ │ │ │ │ │F13│F14│F15│ Del│VlU│
45 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
46 * │ │RH-│RS-│RV-│ │ │ │ │KMP│ │ │ │ Adjust │VlD│
47 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
48 * │ │RTg│RLy│RTh│VRN│ │ │ │Prv│Nxt│Ply│ │PgU│Mut│
49 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
50 * │ │ │ │ │ │ │ │Hom│PgD│End│
51 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
52 */
53[_FN1] = LAYOUT_all(
54 QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_MSSN, MC_SLPD, \
55 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RESET, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_DEL, KC_VOLU, \
56 _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, QM_KYMP, _______, _______, _______, TG_ADJT, KC_VOLD, \
57 _______, XXXXXXX, RGB_TOG, RGB_LYR, RGB_THM, QM_VRSN, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \
58 _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END ),
59
60/* Adjust Layer Layer
61 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
62 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
63 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
64 * │ │ │ │EEP│RST│ │ │ │ │ │ │ │ │ │ │
65 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
66 * │ │ │ │ │ │ │ │ │ │ │ │ │ Adjust │ │
67 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
68 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
69 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
70 * │ │ │ │ │ │ │ │ │ │ │
71 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
72 */
73[_ADJUST] = LAYOUT_all(
74 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
75 XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
76 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJT, XXXXXXX, \
77 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, \
78 _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),
79};
80
81/* Blank Template
82 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
83 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
84 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
85 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
86 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
87 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
88 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
89 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
90 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
91 * │ │ │ │ │ │ │ │ │ │ │
92 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
93 */
94/*
95[_BLANK] = LAYOUT(
96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
97 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
98 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
99 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
100 _______, _______, _______, _______, _______, _______, _______, _______, _______),
101};
102*/
diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk b/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk
new file mode 100644
index 000000000..348eeaee3
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,3 @@
1# Build Options
2MOUSEKEY_ENABLE = no # Don't need mouse keys
3BACKLIGHT_ENABLE = no # Backlights not installed
diff --git a/keyboards/keebio/bdn9/keymaps/brandonschlack/config.h b/keyboards/keebio/bdn9/keymaps/brandonschlack/config.h
new file mode 100644
index 000000000..cde5051c8
--- /dev/null
+++ b/keyboards/keebio/bdn9/keymaps/brandonschlack/config.h
@@ -0,0 +1,25 @@
1/* Copyright 2020 Brandon Schlack
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 ENCODER_DIRECTION_FLIP
19
20#undef RGBLIGHT_ANIMATIONS
21#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
22
23/* Mouse Keys Configuration */
24#define MK_3_SPEED
25#define MK_W_INTERVAL_UNMOD 20
diff --git a/keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c b/keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..443e8d0ae
--- /dev/null
+++ b/keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,393 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19/**
20 * Layer Names
21 */
22enum bdn9_layers {
23 _REEDER = 0,
24 _MEDIA,
25 _NAVI,
26 _KARABINER,
27 LR_NAV,
28 LR_REVIEW,
29 LR_EDIT
30};
31
32#define _AUDIO 13
33#define _LIGHT 14
34
35/**
36 * Keycodes & Macros
37 */
38#define DF_REDR DF(_REEDER) // Set Default Layer to Reeder shortcuts
39#define DF_MEDA DF(_MEDIA) // Set Default Layer to Media controls
40#define DF_NAVI DF(_NAVI) // Set Default Layer to Navigation shortcuts
41#define DF_KBNR DF(_KARABINER) // Set Default Layer to Basic Macro keys
42
43enum bdn9_keycodes {
44 TG_LNAV = KEYMAP_SAFE_RANGE,
45 TG_REVW,
46 TG_EDIT
47};
48
49/**
50 * Tap Dances
51 *
52 * Use tap dance for layer changes
53 */
54enum bdn9_dances {
55 TD_DTAP_ADIO = 0,
56 TD_DTAP_LGHT,
57 TD_DTAP_ADJT
58};
59// Tap Dance Definitions
60qk_tap_dance_action_t tap_dance_actions[] = {
61 [TD_DTAP_ADIO] = ACTION_TAP_DANCE_TRIGGER_LAYER(DOUBLE_TAP, _AUDIO),
62 [TD_DTAP_LGHT] = ACTION_TAP_DANCE_TRIGGER_LAYER(DOUBLE_TAP, _LIGHT),
63 [TD_DTAP_ADJT] = ACTION_TAP_DANCE_TRIGGER_LAYER(DOUBLE_TAP, _ADJUST),
64};
65// Tap Dance Aliases
66#if defined(RGBLIGHT_ENABLE)
67#define DTP_AVC TD(TD_DTAP_LGHT) //
68#elif defined(AUDIO_ENABLE)
69#define DTP_AVC TD(TD_DTAP_ADIO)
70#endif
71#define DTP_ADJ TD(TD_DTAP_ADJT)
72
73const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
74 /*
75 Layer: Reeder
76 ┌───────────┐ ┌───────────┐
77 │   Items   │  │    Subs   │
78 │  Prv  Nxt │  │  Prv  Nxt │
79 ├────────┬──┴──┴──┬────────┤
80 │ VwBrsw │  Star  │  Sync  │
81 ├────────┼────────┼────────┤
82 │ CmdTab │ TgRead │  Clear │
83 ├────────┼────────┼────────┤
84 │ VwStard│ VwUnrd │  VwAll │
85 └────────┴────────┴────────┘
86 */
87 [_REEDER] = LAYOUT(
88 KC_H, KC_S, KC_R,
89 CMD_TAB, KC_M, DTP_AVC,
90 G(KC_1), G(KC_2), DTP_ADJ
91 ),
92 /*
93 Layer: Media
94 ┌───────────┐  ┌───────────┐
95 │    Vol    │  │   Track   │
96 │  Prv  Nxt │  │  Prv  Nxt │
97 ├────────┬──┴──┴──┬────────┤
98 │  Mute  │ Player │  Sync  │
99 ├────────┼────────┼────────┤
100 │ YT<10s │ YT Ply │ YT>10s │
101 ├────────┼────────┼────────┤
102 │  Left  │  Spce  │  Rght  │
103 └────────┴────────┴────────┘
104 */
105 [_MEDIA] = LAYOUT(
106 KC_MUTE, MC_PLYR, KC_MPLY,
107 KC_J, KC_K, DTP_AVC,
108 KC_LEFT, KC_SPC, DTP_ADJ
109 ),
110 /*
111 Layer: Navigation
112 ┌───────────┐  ┌───────────┐
113 │  Scroll   │  │    Tab    │
114 │  Up   Dn  │  │  Prv  Nxt │
115 ├────────┬──┴──┴──┬────────┤
116 │ ReOTab │ CmdTab │ ClsTab │
117 ├────────┼────────┼────────┤
118 │  PgDn  │   Up   │  PgUp  │
119 ├────────┼────────┼────────┤
120 │  Left  │  Down  │  Rght  │
121 └────────┴────────┴────────┘
122 */
123 [_NAVI] = LAYOUT(
124 REO_TAB, CMD_TAB, CLS_TAB,
125 KC_PGDN, KC_UP, DTP_AVC,
126 KC_LEFT, KC_DOWN, DTP_ADJ
127 ),
128 /*
129 Layer: Macro/Karabiner
130 ┌───────────┐  ┌───────────┐
131 │           │  │           │
132 │   -    +  │  │   .    =  │
133 ├────────┬──┴──┴──┬────────┤
134 │    1   │    2   │    3   │
135 ├────────┼────────┼────────┤
136 │    4   │    5   │    6   │
137 ├────────┼────────┼────────┤
138 │    7   │    8   │    9   │
139 └────────┴────────┴────────┘
140 */
141 [_KARABINER] = LAYOUT(
142 KC_P1, KC_P2, KC_P3,
143 KC_P4, KC_P5, DTP_AVC,
144 KC_P7, KC_P8, DTP_ADJ
145 ),
146 /*
147 Layer: Lightroom Navigation
148 ┌───────────┐  ┌───────────┐
149 │ Thumbnail │  │ Scrl Grid │
150 │ Dec   Inc │  │ Up     Dn │
151 ├────────┬──┴──┴──┬────────┤
152 │ TgRevw │CylGrdVw│ TgEdit │
153 ├────────┼────────┼────────┤
154 │  Start │   Up   │  End   │
155 ├────────┼────────┼────────┤
156 │  Left  │  Down  │  Rght  │
157 └────────┴────────┴────────┘
158 */
159 [LR_NAV] = LAYOUT(
160 TG_REVW, KC_J, TG_EDIT,
161 KC_HOME, KC_UP, DTP_AVC,
162 KC_LEFT, KC_DOWN, DTP_ADJ
163 ),
164 /*
165 Layer: Review/Rate
166 ┌───────────┐  ┌───────────┐
167 │   Stars   │  │   Flag    │
168 │ Dec   Inc │  │ Dec   Inc │
169 ├────────┬──┴──┴──┬────────┤
170 │ TgLNav │ Yellow │ TgEdit │
171 ├────────┼────────┼────────┤
172 │ NoStar │  Green │ UnFlag │
173 ├────────┼────────┼────────┤
174 │  Left  │  Blue  │  Rght  │
175 └────────┴────────┴────────┘
176 */
177 [LR_REVIEW] = LAYOUT(
178 TG_LNAV, KC_7, TG_EDIT,
179 KC_0, KC_8, DTP_AVC,
180 KC_LEFT, KC_6, DTP_ADJ
181 ),
182 /*
183 Layer: Edit/Develop
184 ┌───────────┐  ┌───────────┐
185 │  Sliders  │  │   Value   │
186 │ Prv   Nxt │  │ Dec   Inc │
187 ├────────┬──┴──┴──┬────────┤
188 │ TgRevw │ Bf/Aft │ TgLNav │
189 ├────────┼────────┼────────┤
190 │ FlgRjt │  Undo  │ FlgPkd │
191 ├────────┼────────┼────────┤
192 │  Left  │  Redo  │  Rght  │
193 └────────┴────────┴────────┘
194 */
195 [LR_EDIT] = LAYOUT(
196 TG_REVW, KC_BSLS, TG_LNAV,
197 KC_X, MC_UNDO, DTP_AVC,
198 KC_LEFT, MC_REDO, DTP_ADJ
199 ),
200 /*
201 Layer: Light
202 ┌───────────┐  ┌───────────┐
203 │  RGB Hue  │  │  RGB Sat  │
204 │ Prv   Nxt │  │ Dec   Inc │
205 ├────────┬──┴──┴──┬────────┤
206 │ RGBTgl │  Val+  │ TgLNav │
207 ├────────┼────────┼────────┤
208 │  Mode- │  Val-  │  Mode+ │
209 ├────────┼────────┼────────┤
210 │ LyrTgl │ NxtThm │  XXXX  │
211 └────────┴────────┴────────┘
212 */
213 [_LIGHT] = LAYOUT(
214 RGB_TOG, RGB_VAI, TG_LGHT,
215 RGB_RMOD,RGB_VAD, RGB_MOD,
216 RGB_LYR, RGB_THM, XXXXXXX
217 ),
218 /*
219 Layer: ADJUST
220 ┌───────────┐  ┌───────────┐
221 │    XXXX   │  │   XXXX    │
222 │           │  │           │
223 ├────────┬──┴──┴──┬────────┤
224 │  MAKE  │ Reeder │  Light │
225 ├────────┼────────┼────────┤
226 │  Media │  Navi  │  Macro │
227 ├────────┼────────┼────────┤
228 │ LR Rvw │ LR Nav │ LR Edt │
229 └────────┴────────┴────────┘
230 */
231 [_ADJUST] = LAYOUT(
232 QM_MAKE, DF_REDR, TG_LGHT,
233 DF_MEDA, DF_NAVI, DF_KBNR,
234 TG_REVW, TG_LNAV, TG_EDIT
235 ),
236};
237
238void keyboard_post_init_keymap(void){
239 // Debug to Console by default
240 debug_enable = true;
241}
242
243/**
244 * Encoder
245 */
246const uint16_t PROGMEM encoders[][2][2] = {
247 [_REEDER] = {{ KC_K, KC_J }, { KC_P, KC_N }},
248 [_MEDIA] = {{ KC_VOLD, KC_VOLU }, { KC_MPRV, KC_MNXT }},
249 [_NAVI] = {{ MC_WH_U, MC_WH_D }, { PRV_TAB, NXT_TAB }},
250 [_KARABINER] = {{ KC_PMNS, KC_PPLS }, { KC_PDOT, KC_PEQL }},
251 [LR_NAV] = {{ KC_MINS, KC_EQL }, { KC_PGDN, KC_PGUP }},
252 [LR_REVIEW] = {{ KC_LBRC, KC_RBRC }, { G(KC_DOWN), G(KC_UP) }},
253 [LR_EDIT] = {{ KC_COMM, KC_DOT }, { KC_MINS, KC_EQL }},
254};
255
256void encoder_update_user(uint8_t index, bool clockwise) {
257 uint8_t layer = get_highest_layer(layer_state);
258
259 switch (layer) {
260 case _AUDIO:
261 #ifdef AUDIO_ENABLE
262 #endif
263 break;
264 case _LIGHT:
265 #ifdef RGBLIGHT_ENABLE
266 switch (index) {
267 case 0:
268 if (clockwise) {
269 rgblight_increase_hue();
270 } else {
271 rgblight_decrease_hue();
272 }
273 break;
274 case 1:
275 if (clockwise) {
276 rgblight_increase_sat();
277 } else {
278 rgblight_decrease_sat();
279 }
280 break;
281 }
282 #endif
283 break;
284 default:
285 tap_code16(pgm_read_word(&encoders[layer][index][clockwise]));
286 break;
287 }
288}
289
290/**
291 * Keycodes
292 */
293bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
294 switch (keycode) {
295 case TG_LNAV:
296 if (!record->event.pressed) {
297 tap_code(KC_G);
298 layer_move(LR_NAV);
299 }
300 break;
301 case TG_REVW:
302 if (!record->event.pressed) {
303 tap_code(KC_E);
304 layer_move(LR_REVIEW);
305 }
306 break;
307 case TG_EDIT:
308 if (!record->event.pressed) {
309 tap_code(KC_D);
310 layer_move(LR_EDIT);
311 }
312 break;
313 }
314 return true;
315}
316
317/**
318 * Layer Switch
319 */
320layer_state_t layer_state_set_keymap (layer_state_t state) {
321 switch (get_highest_layer(state)) {
322 case LR_NAV:
323 #if defined(RGBLIGHT_ENABLE)
324 rgb_layer_helper(HSV_TEAL);
325 #endif
326 break;
327 case LR_REVIEW:
328 #if defined(RGBLIGHT_ENABLE)
329 rgb_layer_helper(HSV_CYAN);
330 #endif
331 break;
332 case LR_EDIT:
333 #if defined(RGBLIGHT_ENABLE)
334 rgb_layer_helper(HSV_AZURE);
335 #endif
336 break;
337 default:
338 break;
339 }
340 return state;
341}
342
343/**
344 * Tap Dances
345 */
346void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) {
347 uint16_t keycode = 0;
348 switch (toggle_layer) {
349 case _LIGHT:
350 switch (get_highest_layer(layer_state)) {
351 case _REEDER:
352 case _MEDIA:
353 keycode = KC_L;
354 break;
355 case _NAVI:
356 keycode = KC_PGUP;
357 break;
358 case _KARABINER:
359 keycode = KC_P6;
360 break;
361 case LR_NAV:
362 keycode = KC_END;
363 case LR_REVIEW:
364 keycode = KC_U;
365 case LR_EDIT:
366 keycode = KC_P;
367 break;
368 }
369 break;
370 case _ADJUST:
371 switch (get_highest_layer(layer_state)) {
372 case _REEDER:
373 keycode = G(KC_3);
374 break;
375 case _KARABINER:
376 keycode = KC_P9;
377 break;
378 case _MEDIA:
379 case _NAVI:
380 case LR_NAV:
381 case LR_REVIEW:
382 case LR_EDIT:
383 keycode = KC_RGHT;
384 break;
385 }
386 break;
387 }
388 if (!reset) {
389 register_code16(keycode);
390 } else {
391 unregister_code16(keycode);
392 }
393}
diff --git a/keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md b/keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md
new file mode 100644
index 000000000..54e460c2d
--- /dev/null
+++ b/keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md
@@ -0,0 +1,107 @@
1# brandonschlack's Macropad/Lightroom layout for BDN9
2##### 2 encoders required
3
4![brandonschlack BDN9](https://i.imgur.com/pai9M0m.jpg)
5
6I built this pad to match my Lightroom photo editing workflow using
7[Lightroom Classic Keyboard shortcuts](https://helpx.adobe.com/lightroom-classic/help/keyboard-shortcuts.html), and added on general macropad layers along the way.
8
9I use macOS, so shortcuts and macros are configured as such. Encoder functionality is in the header of the tables, as clockwise/counterclockwise.
10
11---
12
13## Macropad Layers
14
15### Reeder Layer
16This layer is used for browsing [Reeder](https://reederapp.com/), an awesome RSS reader for Mac
17
18| Prev/Next Item | **Knobs** | Prev/Next Subscription |
19| --- | --- | --- |
20| Open Item in Browser | Star Item/Save for Later | Sync |
21| Command+Tab | Toggle Read Status | Clear Read Items |
22| Starred Items | Unread Items | All Items |
23
24
25### Media Layer
26This layer is used for media controls. Player button is a hotkey to focus the current media player with [BeardedSpice](https://beardedspice.github.io/)
27
28| Volume Down/Up | **Knobs** | Prev/Next Track |
29| --- | --- | --- |
30| Mute | Current Player | Play/Pause |
31| YouTube Rewind 10s (J) | YouTube Play/Pause (K) | YouTube Forward 10s (L) |
32| Left | Space | Right |
33
34
35### Navigation Layer
36This layer is used for general window navigation around macOS
37
38| Scroll Up/Down | **Knobs** | Next/Prev Tab |
39| --- | --- | --- |
40| Reopen Tab | Cmd+Tab | Close Tab |
41| Page Down | Up | Page Up |
42| Left | Down | Right |
43
44
45### Macro Layer
46This layer is used to send generic macro keys, meant to be remapped based on current app with [Karabiner](https://pqrs.org/osx/karabiner/)
47
48| +/- | **Knobs** | =/. |
49| --- | --- | --- |
50| 1 | 2 | 3 |
51| 4 | 5 | 6 |
52| 7 | 8 | 9 |
53
54
55## Lightroom Layers
56
57### LR Navigation Layer
58This layer is used for navigating Grid View in the Library Module.
59
60| Inc/Dec Thumbnail Size | **Knobs** | Scroll Up/Dn Grid Thumbnails |
61| --- | --- | --- |
62| Review Layer | Cycle Grid View options | Edit Layer |
63| Start of Grid View | Up | End of Grid View |
64| Left | Down | Right |
65
66
67### Lightroom Review Layer
68This layer is used for Reviewing, Rating, and Culling images with the Loupe View in the Library Module.
69
70| Inc/Dec Star Rating | **Knobs** | Inc/Dec Flag Status |
71| --- | --- | --- |
72| LR Navigation Layer | Yellow Label | Edit Layer |
73| Remove Star Rating | Green Label | Unflag Photo |
74| Left | Blue Label | Right |
75
76
77### Lightroom Edit Layer
78This layer is used for editing photos in the Develop Module
79
80| Next/Prev Basic Panel Settings | **Knobs** | Inc/Dec Selected Slider |
81| --- | --- | --- |
82| Review Layer | Toggle Before View | LR Navigation Layer |
83| Flag Rejected | Undo | Flag Picked |
84| Left | Redo | Right |
85
86
87## Meta Layers
88
89### Light Layer
90This layer is used to control lighting for the pad. Currently nothing is saved in EEPROM, so it will reset after power loss. Also currently my userspace layer colors take priority until I build out that feature. This layer is accessed with a double tap of the middle right key via [tap dance](https://docs.qmk.fm/#/feature_tap_dance). A triple tap of the middle right key will also toggle lights on/off.
91
92| Inc/Dec RGB Hue | **Knobs** | Inc/Dec RGB Saturation |
93| --- | --- | --- |
94| RGB Toggle | RGB Value Increase | Toggle Layer Off |
95| RGB Mode Prev | RGB Value Decrease | RGB Mode Next |
96| RGB Layer Indication | Cycle RGB Themes | XXX |
97
98
99### Adjust Layer
100This layer is used as a meta layer for the pad. This layer is accessed with a double tap of the bottom right key via [tap dance](https://docs.qmk.fm/#/feature_tap_dance).
101
102| XXX | **Knobs** | XXX |
103| --- | --- | --- |
104| MAKE | **Reeder** Layer | **Light** Layer |
105| **Media** Layer | **Navigation** Layer | **Keypad** Layer |
106| **Lightroom Review** Layer | **Lightroom Navigation** Layer | **Lightroom Edit** Layer |
107
diff --git a/keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk b/keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk
new file mode 100644
index 000000000..847ef9d36
--- /dev/null
+++ b/keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,11 @@
1# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
2IS_MACROPAD = yes
3
4# Use dfu bootloader for Elite-C
5BOOTLOADER = atmel-dfu
6
7# Build Options
8MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
9COMMAND_ENABLE = no # Disable Command, breaks with Mouse Keys set to constant.
10BACKLIGHT_ENABLE = no # No backlights installed
11TAP_DANCE_ENABLE = yes # Use tap dance
diff --git a/keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c b/keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..b0e4d5214
--- /dev/null
+++ b/keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,67 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19enum romac_layers {
20 NUMPAD = 0,
21 FN,
22 NUMLOCK,
23 KARABINER
24};
25
26#define DF_NMPD DF(NUMPAD)
27#define DF_NMLK DF(NUMLOCK)
28#undef DF_KBNR
29#define DF_KBNR DF(KARABINER)
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32
33 [NUMPAD] = LAYOUT(
34 KC_P7, KC_P8, KC_P9, \
35 KC_P4, KC_P5, KC_P6, \
36 KC_P1, KC_P2, KC_P3, \
37 OSL(FN), KC_P0, KC_PDOT \
38 ),
39
40 [FN] = LAYOUT(
41 KC_PSLS, KC_PAST, KC_BSPC, \
42 KC_TRNS, KC_TRNS, KC_PMNS, \
43 DF_NMLK, DF_KBNR, KC_PPLS, \
44 KC_TRNS, TG_ADJT, KC_PENT \
45 ),
46
47 [NUMLOCK] = LAYOUT(
48 KC_HOME, KC_UP, KC_PGUP, \
49 KC_LEFT, CMD_TAB, KC_RGHT, \
50 KC_END, KC_DOWN, KC_PGDN, \
51 DF_NMPD, KC_INS, KC_DEL \
52 ),
53
54 [KARABINER] = LAYOUT(
55 KC_F13, KC_F14, KC_F15, \
56 KC_F16, KC_F17, KC_F18, \
57 KC_F19, KC_F20, KC_F21, \
58 LT(_ADJUST,KC_F22), KC_F23, KC_F24 \
59 ),
60
61 [_ADJUST] = LAYOUT(
62 QM_MAKE, EEP_RST, XXXXXXX, \
63 XXXXXXX, XXXXXXX, XXXXXXX, \
64 DF_NMPD, DF_NMLK, DF_KBNR, \
65 KC_TRNS, XXXXXXX, XXXXXXX \
66 )
67};
diff --git a/keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk b/keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk
new file mode 100644
index 000000000..719dbee40
--- /dev/null
+++ b/keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,8 @@
1# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
2IS_MACROPAD = yes
3
4# Use dfu bootloader for Elite-C
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# TAP_DANCE_ENABLE = yes # Use tap dance
diff --git a/keyboards/launchpad/keymaps/brandonschlack/config.h b/keyboards/launchpad/keymaps/brandonschlack/config.h
new file mode 100644
index 000000000..6aaf996e5
--- /dev/null
+++ b/keyboards/launchpad/keymaps/brandonschlack/config.h
@@ -0,0 +1,32 @@
1/* Copyright 2020 Brandon Schlack
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/* Underlight Configuration */
19#ifdef RGB_DI_PIN
20 #undef RGB_DI_PIN
21 #define RGB_DI_PIN F4
22 #undef RGBLED_NUM
23 #define RGBLED_NUM 2 // Number of LEDs
24#endif
25#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
26#define RGBLIGHT_HUE_STEP 10
27#define RGBLIGHT_SAT_STEP 17
28#define RGBLIGHT_VAL_STEP 17
29
30/* Mouse Keys Configuration */
31#define MK_3_SPEED
32#define MK_W_INTERVAL_UNMOD 20
diff --git a/keyboards/launchpad/keymaps/brandonschlack/keymap.c b/keyboards/launchpad/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..1ef77ccc6
--- /dev/null
+++ b/keyboards/launchpad/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,213 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19/**
20 * Layer Names
21 */
22#define _REEDER _BASE
23enum bdn9_layers {
24 _MEDIA = KEYMAP_LAYERS,
25 _NAVI,
26 _KARABINER
27};
28
29/**
30 * Keycodes & Macros
31 */
32#define DF_REDR DF(_REEDER) // Set Default Layer to Reeder shortcuts
33#define DF_MEDA DF(_MEDIA) // Set Default Layer to Media controls
34#define DF_NAVI DF(_NAVI) // Set Default Layer to Navigation shortcuts
35#define DF_KBNR DF(_KARABINER) // Set Default Layer to Basic Macro keys
36
37// Tap Dances
38enum launchpad_dances {
39 TD_SHLD_LGHT = 0,
40 TD_SHLD_ADJT,
41 TD_REDR_H
42};
43//Tap Dance Definitions
44qk_tap_dance_action_t tap_dance_actions[] = {
45 [TD_SHLD_LGHT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _LIGHT),
46 [TD_SHLD_ADJT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _ADJUST),
47 [TD_REDR_H] = ACTION_TAP_DANCE_DOUBLE(KC_H, KC_R)
48};
49
50const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
51
52/* Reeder
53 * ┌──────┬──────┐
54 * │CmdTab│ View │
55 * ├──────┼──────┤
56 * │PrvSub│PrvItm│
57 * ├──────┼──────┤
58 * │NxtSub│NxtItm│
59 * ├──────┼──────┤
60 * │ Clr │ Sync │
61 * └──────┴──────┘
62 */
63[_REEDER] = LAYOUT( \
64 CMD_TAB, TD(TD_REDR_H), \
65 KC_P, KC_K, \
66 KC_N, KC_J, \
67 TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
68),
69
70/* Media
71 * ┌──────┬──────┐
72 * │ Mute │ Play │
73 * ├──────┼──────┤
74 * │ Vol+ │PrvTrk│
75 * ├──────┼──────┤
76 * │ Vol- │NxtTrk│
77 * ├──────┼──────┤
78 * │ Spce │ Plyr │
79 * └──────┴──────┘
80 */
81[_MEDIA] = LAYOUT( \
82 KC_MUTE, KC_MPLY, \
83 KC_VOLU, KC_MNXT, \
84 KC_VOLD, KC_MPRV, \
85 TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
86),
87
88/* Navigation
89 * ┌──────┬──────┐
90 * │ PTab │ NTab │
91 * ├──────┼──────┤
92 * │ SclL │ SclU │
93 * ├──────┼──────┤
94 * │ SclR │ SclD │
95 * ├──────┼──────┤
96 * │LstTab│ClsTab│
97 * └──────┴──────┘
98 */
99[_NAVI] = LAYOUT( \
100 PRV_TAB, NXT_TAB, \
101 MC_WH_L, MC_WH_U, \
102 MC_WH_R, MC_WH_D, \
103 TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
104),
105
106/* Macro
107 * ┌──────┬──────┐
108 * │ 1 │ 2 │
109 * ├──────┼──────┤
110 * │ 3 │ 4 │
111 * ├──────┼──────┤
112 * │ 5 │ 6 │
113 * ├──────┼──────┤
114 * │ 7 │ 8 │
115 * └──────┴──────┘
116 */
117[_KARABINER] = LAYOUT( \
118 KC_P1, KC_P2, \
119 KC_P3, KC_P4, \
120 KC_P5, KC_P6, \
121 TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
122),
123
124/* Lights
125 * ┌──────┬──────┐
126 * │ THM+ │ HUE+ │
127 * ├──────┼──────┤
128 * │ SAT- │ SAT+ │
129 * ├──────┼──────┤
130 * │ VAL- │ VAL+ │
131 * ├──────┼──────┤
132 * │ XXXX │ Mde+ │
133 * └──────┴──────┘
134 */
135[_LIGHT] = LAYOUT( \
136 RGB_THM, RGB_HUI, \
137 RGB_SAD, RGB_SAI, \
138 RGB_VAD, RGB_VAI, \
139 XXXXXXX, RGB_MOD \
140),
141
142/* Adjust
143 * ┌──────┬──────┐
144 * │ Make │ Rset │
145 * ├──────┼──────┤
146 * │ Redr │ Meda │
147 * ├──────┼──────┤
148 * │ Navi │ Mcro │
149 * ├──────┼──────┤
150 * │ Lght │ XXXX │
151 * └──────┴──────┘
152 */
153[_ADJUST] = LAYOUT( \
154 QM_MAKE, RESET, \
155 DF_REDR, DF_MEDA, \
156 DF_NAVI, DF_KBNR, \
157 TG_LGHT, XXXXXXX \
158)
159
160};
161
162void matrix_init_keymap(void) {
163}
164
165// Runs once after keyboard initializes
166void keyboard_post_init_keymap(void) {
167};
168
169/**
170 * Tap Dances
171 */
172void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) {
173 uint16_t keycode = 0;
174 switch (toggle_layer) {
175 case _LIGHT:
176 switch (get_highest_layer(layer_state)) {
177 case _REEDER:
178 keycode = KC_L;
179 break;
180 case _MEDIA:
181 keycode = KC_SPC;
182 break;
183 case _NAVI:
184 keycode = REO_TAB;
185 break;
186 case _KARABINER:
187 keycode = KC_P7;
188 break;
189 }
190 break;
191 case _ADJUST:
192 switch (get_highest_layer(layer_state)) {
193 case _REEDER:
194 keycode = KC_R;
195 break;
196 case _MEDIA:
197 keycode = MC_PLYR;
198 break;
199 case _NAVI:
200 keycode = CLS_TAB;
201 break;
202 case _KARABINER:
203 keycode = KC_P8;
204 break;
205 }
206 break;
207 }
208 if (!reset) {
209 register_code16(keycode);
210 } else {
211 unregister_code16(keycode);
212 }
213}
diff --git a/keyboards/launchpad/keymaps/brandonschlack/readme.md b/keyboards/launchpad/keymaps/brandonschlack/readme.md
new file mode 100644
index 000000000..a91a1b80a
--- /dev/null
+++ b/keyboards/launchpad/keymaps/brandonschlack/readme.md
@@ -0,0 +1,31 @@
1# brandonschlack's layout for Launchpad
2Fun little macropad build, with an awesome case from [StrataKB](https://stratakb.com/store/cases/launchpad-v2-full-case).
3
4## Media Layer
5This layer is used for media controls. Player button is a hotkey to focus the current media player with [BeardedSpice](https://beardedspice.github.io/)
6| | |
7|:-:|:-:|
8| Mute | Play/Pause |
9| Vol + | Next Track |
10| Vol - | Prev Track |
11| | Current Player |
12---
13
14## Keypad Layer
15This layer is used to send keypad keys, meant to be remapped based on current app with [Karabiner](https://pqrs.org/osx/karabiner/)
16| | |
17|:-:|:-:|
18| 1 | 2 |
19| 3 | 4 |
20| 5 | 6 |
21| 7 | 8 |
22---
23
24## Magic Layer
25This layer is used as a meta layer for the pad. This layer is accessed by holding key in Row 3, Col 0
26| | |
27|:-:|:-:|
28| MAKE | RESET |
29| **Media** Layer | **Keypad** Layer|
30| XXX | XXX |
31| ___ | XXX |
diff --git a/keyboards/launchpad/keymaps/brandonschlack/rules.mk b/keyboards/launchpad/keymaps/brandonschlack/rules.mk
new file mode 100644
index 000000000..ac92af928
--- /dev/null
+++ b/keyboards/launchpad/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,13 @@
1# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
2IS_MACROPAD = yes
3
4# Use dfu bootloader for Elite-C
5BOOTLOADER = atmel-dfu
6
7# Build Options
8BOOTMAGIC_ENABLE = lite
9RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
10CONSOLE_ENABLE = yes # Console for debug(+400)
11MOUSEKEY_ENABLE = yes # Use mouse keys for scrolling.
12COMMAND_ENABLE = no # Disable Command, breaks with Mouse Keys set to constant.
13TAP_DANCE_ENABLE = yes # Use tap dance
diff --git a/keyboards/maartenwut/wonderland/keymaps/brandonschlack/config.h b/keyboards/maartenwut/wonderland/keymaps/brandonschlack/config.h
new file mode 100644
index 000000000..38383cffc
--- /dev/null
+++ b/keyboards/maartenwut/wonderland/keymaps/brandonschlack/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2019 Brandon Schlack
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 USE_LEDS_FOR_LAYERS
19#define STOPLIGHT_LED
diff --git a/keyboards/maartenwut/wonderland/keymaps/brandonschlack/keymap.c b/keyboards/maartenwut/wonderland/keymaps/brandonschlack/keymap.c
new file mode 100755
index 000000000..ca7bd773c
--- /dev/null
+++ b/keyboards/maartenwut/wonderland/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,170 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19// LEDs
20#define TOP_LED B1
21#define MIDDLE_LED B2
22#define BOTTOM_LED B3
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25[_BASE] = LAYOUT( \
26 KC_HOME, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
27 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
28 KC_PGDN, HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
29 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1, \
30 KC_LOPT, KC_LCMD, SPC_RAI, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT \
31),
32[_FN1] = LAYOUT( \
33 KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD, \
34 KC_VOLU, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_DELT, \
35 KC_VOLD, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY, \
36 _______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, RGT_SFT, _______, \
37 _______, _______, _______, _______, _______, _______, _______ \
38
39),
40[_FN2] = LAYOUT( \
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
45 _______, _______, _______, _______, _______, _______, _______ \
46
47),
48[_ADJUST] = LAYOUT( \
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
53 _______, _______, _______, _______, _______, _______, _______ \
54
55)
56/*
57[_BLANK] = LAYOUT( \
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
62 _______, _______, _______, _______, _______, _______, _______ \
63
64)
65*/
66};
67
68#ifdef STOPLIGHT_LED
69bool is_led_stoplight_active = false;
70uint8_t led_stoplight_index = 0;
71uint16_t led_stoplight_timer = 0;
72void matrix_scan_led_stoplight(void);
73
74void led_stoplight_start(void) {
75 writePinHigh(TOP_LED);
76 writePinHigh(MIDDLE_LED);
77 writePinHigh(BOTTOM_LED);
78
79 is_led_stoplight_active = true;
80 led_stoplight_timer = timer_read();
81};
82
83void led_stoplight_set(pin_t pin) {
84 writePinLow(pin);
85};
86
87void led_stoplight_end(void) {
88 // Reset timer and status variables
89 led_stoplight_index = 0;
90 is_led_stoplight_active = false;
91 led_stoplight_timer = 0;
92 led_update_kb(host_keyboard_led_state());
93};
94
95void matrix_scan_led_stoplight(void) {
96 if (is_led_stoplight_active) {
97 if (timer_elapsed(led_stoplight_timer) > (1000 * (led_stoplight_index + 1))) {
98 switch (led_stoplight_index){
99 case 0:
100 led_stoplight_set(TOP_LED);
101 led_stoplight_index++;
102 break;
103 case 1:
104 led_stoplight_set(MIDDLE_LED);
105 led_stoplight_index++;
106 break;
107 case 2:
108 led_stoplight_set(BOTTOM_LED);
109 led_stoplight_index++;
110 break;
111 default:
112 led_stoplight_index = 0;
113 is_led_stoplight_active = false;
114 led_stoplight_timer = 0;
115 led_update_kb(host_keyboard_led_state());
116 break;
117 }
118 }
119 }
120};
121#endif
122
123void keyboard_post_init_keymap(void) {
124#ifdef STOPLIGHT_LED
125 led_stoplight_start();
126#endif
127};
128
129void matrix_scan_keymap(void) {
130#ifdef STOPLIGHT_LED
131 matrix_scan_led_stoplight();
132#endif
133};
134
135#ifdef USE_LEDS_FOR_LAYERS
136// example of how to use LEDs as layer indicators
137static uint8_t top = 0;
138static uint8_t middle = 0;
139
140layer_state_t layer_state_set_keymap(layer_state_t state) {
141 top = middle = 0;
142 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
143
144 switch (get_highest_layer(state)) {
145 case _FN1:
146 top = 1;
147 break;
148 case _FN2:
149 middle = 1;
150 break;
151 case _ADJUST:
152 top = 1;
153 middle = 1;
154 break;
155 default: // for any other layers, or the default layer
156 break;
157 }
158 return state;
159}
160
161// override kb level function
162bool led_update_user(led_t usb_led) {
163 if (!is_led_stoplight_active) {
164 writePin(TOP_LED, !top);
165 writePin(MIDDLE_LED, !middle);
166 writePin(BOTTOM_LED, !usb_led.caps_lock); // still use bottom for Caps Lock
167 };
168 return false; // we are using LEDs for something else override kb
169}
170#endif
diff --git a/keyboards/maartenwut/wonderland/keymaps/brandonschlack/rules.mk b/keyboards/maartenwut/wonderland/keymaps/brandonschlack/rules.mk
new file mode 100755
index 000000000..80361c34f
--- /dev/null
+++ b/keyboards/maartenwut/wonderland/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,8 @@
1# Build Options
2# comment out to disable the options.
3#
4MOUSEKEY_ENABLE = yes # Mouse keys
5CONSOLE_ENABLE = no # Console for debug
6COMMAND_ENABLE = no # Commands for debug and configuration
7VELOCIKEY_ENABLE = no
8
diff --git a/keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h b/keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h
new file mode 100644
index 000000000..f277bcfa3
--- /dev/null
+++ b/keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h
@@ -0,0 +1,30 @@
1/* Copyright 2020 Brandon Schlack
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 USE_LEDS_FOR_LAYERS
19#define STOPLIGHT_LED
20
21// LEDs
22#define TOP_LED B2
23#define MIDDLE_LED C15
24#define BOTTOM_LED B9
25// #define LED_PIN_FLIP
26#ifdef LED_PIN_FLIP
27 #define LED_ON(flag) !flag
28#else
29 #define LED_ON(flag) flag
30#endif
diff --git a/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c b/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..d3ab5ed11
--- /dev/null
+++ b/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,270 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19/**
20 * Layer Names
21 *
22 * Layers mostly used for macro keys
23 */
24#define _REEDER _M1
25#define _MAIL _M2
26#define _REEDER_FN _M1_FN1
27#define _MAIL_FN _M2_FN1
28
29/**
30 * Keycodes & Macros
31 */
32#define TG_BASE TO(_BASE)
33#define TG_REDR TO(_REEDER)
34#define TG_MAIL TO(_MAIL)
35
36const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37/* Base
38 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
39 * │Ply│ │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│         │& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│
40 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
41 * │VlU│ │Tab  │ Q │ W │ E │ R │ T │         │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│
42 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
43 * │VlD│ │HyCaps│ A │ S │ D │ F │ G │         │ H │ J │ K │ L │: ;│" '│   Enter│
44 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
45 *       │LShift  │ Z │ X │ C │ V │ B │     │ B │ N │ M │< ,│> .│? /│  Shft│Fn │
46 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
47 *       │Opt  │     │Cmd  │Spc/Lwr│Ctrl│   │   Spc/Rai│  Cmd│           │  Opt│
48 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
49 */
50[_BASE] = LAYOUT_all( \
51 KC_MPLY, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
52 KC_VOLU, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
53 KC_VOLD, HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
54 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LOWER, KC_RSFT, KC_SLSH, \
55 KC_LOPT, KC_LCMD, SPC_LWR, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT \
56),
57/* Reeder
58 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
59 * │ H │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
60 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
61 * │ K │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
62 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
63 * │ J │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
64 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
65 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
66 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
67 *       │     │     │     │       │    │   │          │     │           │     │
68 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
69 */
70[_REEDER] = LAYOUT_all( \
71 KC_H, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
72 KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
73 KC_J, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
75 _______, _______, _______, _______, _______, _______, _______ \
76
77),
78/* Mail
79 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
80 * │Del│ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
81 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
82 * │It+│ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
83 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
84 * │It-│ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
85 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
86 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
87 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
88 *       │     │     │     │       │    │   │          │     │           │     │
89 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
90 */
91[_MAIL] = LAYOUT_all( \
92 G(KC_BSPC), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
93 KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
94 KC_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
95 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
96 _______, _______, _______, _______, _______, _______, _______ \
97
98),
99/* Lower
100 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
101 * │Mut│ │Mke│ F1│ F2│ F3│ F4│ F5│ F6│         │ F7│ F8│ F9│F10│F11│F12│LHP│SLP│
102 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
103 * │Nxt│ │RMod │RH+│RS+│RV+│Sp+│   │         │   │   │   │   │PgU│Hom│End│  Del│
104 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
105 * │Prv│ │RTgl  │RH-│RS-│RV-│Sp-│   │         │   │   │Prv│Nxt│PgD│ ↑ │   Play │
106 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
107 *       │        │LYR│Thm│   │   │   │     │   │   │   │   │ ← │ ↓ │→ Shft│   │
108 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
109 *       │     │     │     │       │    │   │          │     │           │     │
110 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
111 */
112[_LOWER] = LAYOUT_all( \
113 KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD, \
114 KC_MNXT, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, KC_DELT, \
115 KC_MPRV, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY, \
116 _______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, _______, RGT_SFT, KC_DOWN, \
117 _______, _______, _______, _______, _______, _______, _______ \
118
119),
120/* Reeder Function
121 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
122 * │ L │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
123 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
124 * │ P │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
125 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
126 * │ N │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
127 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
128 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
129 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
130 *       │     │     │     │       │    │   │          │     │           │     │
131 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
132 */
133[_REEDER_FN] = LAYOUT_all( \
134 KC_L, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
135 KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
136 KC_N, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
137 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
138 _______, _______, _______, _______, _______, _______, _______ \
139
140),
141/* Mail
142 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
143 * │Del│ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
144 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
145 * │It+│ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
146 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
147 * │It-│ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
148 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
149 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
150 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
151 *       │     │     │     │       │    │   │          │     │           │     │
152 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
153 */
154[_MAIL_FN] = LAYOUT_all( \
155 KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
156 A(G(KC_LBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
157 A(G(KC_RBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
158 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
159 _______, _______, _______, _______, _______, _______, _______ \
160
161),
162/* Raise
163 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
164 * │   │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
165 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
166 * │   │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
167 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
168 * │   │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
169 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
170 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
171 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
172 *       │     │     │     │       │    │   │          │     │           │     │
173 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
174 */
175[_RAISE] = LAYOUT_all( \
176 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
177 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
178 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
179 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
180 _______, _______, _______, _______, _______, _______, _______ \
181
182),
183/* Adjust
184 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
185 * │Bse│ │Mke│   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
186 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
187 * │Rdr│ │RMod │RH+│RS+│RV+│Sp+│   │         │   │   │   │   │   │   │   │     │
188 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
189 * │Mai│ │RTgl  │RH-│RS-│RV-│Sp-│   │         │   │   │   │   │   │   │        │
190 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
191 *       │        │LYR│Thm│   │EEP│Rst│     │Rst│   │   │   │   │   │      │   │
192 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
193 *       │     │     │     │       │    │   │          │     │           │     │
194 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
195 */
196[_ADJUST] = LAYOUT_all( \
197 TG_BASE, QM_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
198 TG_REDR, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
199 TG_MAIL, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, \
200 _______, RGB_LYR, RGB_THM, _______, EEP_RST, RESET, RESET, _______, _______, _______, _______, _______, _______, _______, \
201 _______, _______, _______, _______, _______, _______, _______ \
202
203)
204/* Layout
205 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
206 * │   │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
207 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
208 * │   │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
209 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
210 * │   │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
211 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
212 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
213 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
214 *       │     │     │     │       │    │   │          │     │           │     │
215 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
216 */
217/*
218[_BLANK] = LAYOUT( \
219 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
220 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
221 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
222 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
223 _______, _______, _______, _______, _______, _______, _______ \
224
225)
226*/
227};
228
229layer_state_t layer_state_set_keymap(layer_state_t state) {
230 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
231 state = update_tri_layer_state(state, _REEDER, _LOWER, _REEDER_FN);
232 state = update_tri_layer_state(state, _MAIL, _LOWER, _MAIL_FN);
233 return state;
234}
235
236#ifdef USE_LEDS_FOR_LAYERS
237bool led_update_keymap(led_t led_state) {
238 writePin(TOP_LED, LED_ON(IS_LAYER_ON(_REEDER) || IS_LAYER_ON(_MAIL))); // Use for Macro Layer
239 writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 2
240 writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock
241 return false; // Override default set by KB
242}
243#endif
244
245#ifdef ENCODER_ENABLE
246void encoder_update_user(uint8_t index, bool clockwise) {
247 if (index == 0) {
248 if (clockwise) {
249 tap_code(KC_VOLU);
250 } else {
251 tap_code(KC_VOLD);
252 }
253 }
254 else if (index == 1) {
255 if (clockwise) {
256 tap_code(KC_LEFT);
257 } else {
258 tap_code(KC_RGHT);
259 }
260 }
261 else if (index == 2) {
262 if (clockwise) {
263 tap_code(KC_UP);
264 } else {
265 tap_code(KC_DOWN);
266 }
267 }
268}
269
270 #endif
diff --git a/keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md b/keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md
new file mode 100644
index 000000000..54d78d873
--- /dev/null
+++ b/keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md
@@ -0,0 +1 @@
# The default keymap for adelais
diff --git a/keyboards/nightmare/keymaps/brandonschlack/keymap.c b/keyboards/nightmare/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..16da41845
--- /dev/null
+++ b/keyboards/nightmare/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,195 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19/**
20 * Layer Names
21 *
22 * Layers mostly used for macro keys
23 */
24#define _REEDER _M1
25#define _NAV _M2
26#define _MOUSE _M3
27
28/**
29 * Keycodes & Macros
30 */
31#define TG_BASE TO(_BASE)
32#define TG_REDR TO(_REEDER)
33#define TG_NAV TO(_NAV)
34#define TG_MOUS TO(_MOUSE)
35
36const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37/**
38 * Base
39 * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
40 * │Hom│││Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│Bck│
41 * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
42 * │PgU│││Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│
43 * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
44 * │PgD│││Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│Shft│ Fn│
45 * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
46 * │End││││││││Opt│Cmd │                           │ Cmd│Ctl││││││
47 * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
48 */
49[_BASE] = LAYOUT_default( \
50 KC_HOME, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
51 KC_PGUP, HY_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
52 KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1, \
53 KC_END, KC_LOPT, KC_LCMD, SPC_RAI, KC_RCMD, KC_RCTL \
54),
55
56/**
57 * Reeder
58 * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
59 * │ P │││   │   │   │   │   │   │   │   │   │   │   │   │   │   │
60 * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
61 * │ K │││    │   │   │   │   │   │   │   │   │   │   │   │      │
62 * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
63 * │ J │││      │   │   │   │   │   │   │   │   │   │   │    │   │
64 * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
65 * │ N ││││││││   │    │                           │    │   ││││││
66 * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
67 */
68
69[_REEDER] = LAYOUT_default( \
70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
73 _______, _______, _______, _______, _______, _______ \
74),
75
76/**
77 * Nav
78 * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
79 * │ → │││   │   │   │   │   │   │   │   │   │   │   │   │   │   │
80 * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
81 * │ ↑ │││    │   │   │   │   │   │   │   │   │   │   │   │      │
82 * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
83 * │ ↓ │││      │   │   │   │   │   │   │   │   │   │   │    │   │
84 * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
85 * │ ← ││││││││   │    │                           │    │   ││││││
86 * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
87 */
88[_NAV] = LAYOUT_default( \
89 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
90 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
91 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
92 _______, _______, _______, _______, _______, _______ \
93),
94
95/**
96 * Mouse
97 * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
98 * │WhU│││   │   │   │   │   │   │   │   │   │   │   │   │   │   │
99 * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
100 * │ ↑ │││    │   │   │   │   │   │   │   │   │   │   │   │      │
101 * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
102 * │ ↓ │││      │   │   │   │   │   │   │   │   │   │   │    │   │
103 * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
104 * │WhD││││││││   │    │                           │    │   ││││││
105 * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
106 */
107[_MOUSE] = LAYOUT_default( \
108 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
109 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
111 _______, _______, _______, _______, _______, _______ \
112),
113
114/**
115 * Lower
116 * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
117 * │Nxt│││Del│BrD│BrU│Msn│LHP│   │   │   │   │   │   │ ↑ │Mut│SlD│
118 * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
119 * │VlU│││    │   │   │NxW│PvT│Bck│Fwd│NxT│   │   │ ← │ → │ Play │
120 * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
121 * │VlD│││SftCap│   │   │   │1PX│1Ps│   │   │   │   │ ↓ │    │   │
122 * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
123 * │Prv││││││││   │    │                           │    │   ││││││
124 * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
125 */
126[_LOWER] = LAYOUT_default( \
127 KC_MNXT, KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD, \
128 KC_VOLU, _______, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, _______, KC_LEFT, KC_RGHT, KC_MPLY, \
129 KC_VOLD, SF_CAPS, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, KC_DOWN, _______, _______, \
130 KC_MPRV, _______, _______, _______, _______, _______ \
131),
132
133/**
134 * Raise
135 * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
136 * │Nxt│││~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│   │
137 * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
138 * │VlU│││    │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│   │   │   │      │
139 * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
140 * │VlD│││      │ F7│ F8│ F9│F10│F11│F12│   │   │   │| \│    │   │
141 * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
142 * │Prv││││││││   │    │                           │    │   ││││││
143 * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
144 */
145[_RAISE] = LAYOUT_default( \
146 KC_MNXT, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, \
147 KC_VOLU, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, _______, _______, _______, \
148 KC_VOLD, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_BSLS, _______, _______, \
149 KC_MPRV, _______, _______, _______, _______, _______ \
150),
151
152/**
153 * Adjust
154 * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
155 * │Bse│││Mke│   │   │EEP│RST│   │   │   │   │   │   │   │   │   │
156 * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
157 * │Rdr│││    │   │   │   │   │   │   │   │   │   │   │   │      │
158 * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
159 * │Nav│││      │   │   │   │   │   │   │   │   │   │   │    │   │
160 * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
161 * │Mse││││││││   │    │                           │    │   ││││││
162 * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
163 */
164[_ADJUST] = LAYOUT_default( \
165 TG_BASE, QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
166 TG_REDR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
167 TG_NAV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
168 TG_MOUS, _______, _______, _______, _______, _______ \
169),
170
171/**
172 * Blank
173 * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
174 * │   │││   │   │   │   │   │   │   │   │   │   │   │   │   │   │
175 * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
176 * │   │││    │   │   │   │   │   │   │   │   │   │   │   │      │
177 * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
178 * │   │││      │   │   │   │   │   │   │   │   │   │   │    │   │
179 * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
180 * │   ││││││││   │    │                           │    │   ││││││
181 * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
182 */
183/*
184[] = LAYOUT_default( \
185 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
186 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
187 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
188 _______, _______, _______, _______, _______, _______ \
189),
190*/
191};
192
193layer_state_t layer_state_set_keymap(layer_state_t state) {
194 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
195}
diff --git a/keyboards/nightmare/keymaps/brandonschlack/readme.md b/keyboards/nightmare/keymaps/brandonschlack/readme.md
new file mode 100644
index 000000000..94c77833f
--- /dev/null
+++ b/keyboards/nightmare/keymaps/brandonschlack/readme.md
@@ -0,0 +1,20 @@
1# brandonschlack's Nightmare Keymap
2
3![Base, Raise, Lower](https://i.imgur.com/08759vK.png)
4
5## Features
6- Mod-Taps & Layer-Taps
7 - Spacebar is used as a Fn button when held to access missing numrow and F-keys on the **RAISE** layer.
8 - Holding `Tab` acts as `HYPER`, or `Shift+Control+Option+Command`. I use this set global shortcuts, such as `HYPER+w` for my **W**indow manager Moom.
9- **Lower** Layer
10 - `Lower+Esc` for `Delete`
11 - `Lower+LShift` for `Caps Lock`. Holding `Lower+LShift` still acts as `LShift`
12 - Arrow keys as `Lower+[`,`;`,`'`,`/` for `Up`,`Left`,`Right`,`Down`.
13 - Media keys as `Lower+Enter`,`Home`,`End` for `Play/Pause`,`Next Track`,`Prev Track`
14 - Volume controls as `Lower+]`,`Page Up`,`Page Down` for `Mute`,`Volume Up`,`Volume Down`
15- MacOS shortcuts on **Lower** Layer
16 - Display Brightness as `Lower+Q`,`W` for `Brightness Down`, `Brightness Up`
17 - Mission Control as `Lower+E`
18 - Launchpad as `Lower+R`
19 - Sleep Display as `Lower+Backspace`
20 - Browser
diff --git a/keyboards/primekb/prime_e/keymaps/brandonschlack/config.h b/keyboards/primekb/prime_e/keymaps/brandonschlack/config.h
new file mode 100644
index 000000000..8a9aa040f
--- /dev/null
+++ b/keyboards/primekb/prime_e/keymaps/brandonschlack/config.h
@@ -0,0 +1,30 @@
1/* Copyright 2020 Brandon Schlack
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 USE_LEDS_FOR_LAYERS
19#define STOPLIGHT_LED
20
21#define TOP_LED B1
22#define MIDDLE_LED B2
23#define BOTTOM_LED B3
24
25// #define LED_PIN_FLIP
26#ifdef LED_PIN_FLIP
27 #define LED_ON(flag) !flag
28#else
29 #define LED_ON(flag) flag
30#endif
diff --git a/keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c b/keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..a92fcbfec
--- /dev/null
+++ b/keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,95 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19// Tap Dance declarations
20enum {
21 TD_LR_BRC,
22 TD_SD_QUOT
23};
24
25// Tap Dance definitions
26qk_tap_dance_action_t tap_dance_actions[] = {
27 // Tap once for LBracket, twice for RBracket
28 [TD_LR_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
29 // Tap once for Single Quote, twice for Double Quote
30 [TD_SD_QUOT] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, KC_DQT)
31};
32
33#define LWR_B LT(_LOWER, KC_B)
34#define LWR_EQL LT(_LOWER, KC_EQL)
35#define TD_BRC TD(TD_LR_BRC)
36#define TD_QUOT TD(TD_SD_QUOT)
37
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 [_BASE] = LAYOUT( \
40 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_BRC, KC_BSPC, \
41 HY_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD_QUOT, KC_ENT, \
42 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, LWR_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LOWER, \
43 KC_LCTL, KC_LOPT, KC_LCMD, SPC_RAI, SPC_RAI, KC_RCMD, KC_ROPT, KC_RCTL \
44 ),
45
46 [_LOWER] = LAYOUT( \
47 KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, KC_HOME, KC_UP, KC_PGUP, MC_SLPD, \
48 _______, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, KC_LEFT, KC_RGHT, KC_MPLY, \
49 SF_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, PX_AFLL, OP_AFLL, _______, _______, KC_END, KC_DOWN, KC_PGDN, _______, \
50 _______, _______, _______, _______, _______, _______, _______, _______ \
51 ),
52
53 [_RAISE] = LAYOUT( \
54 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_LBRC, KC_RBRC, KC_7, KC_8, KC_9, KC_0, KC_RBRC, _______, \
55 _______, KC_F5, KC_F6, KC_F7, KC_F8, KC_MINS, KC_PLUS, KC_4, KC_5, KC_6, KC_SCLN, _______, \
56 _______, KC_F9, KC_F10, KC_F11, KC_F12, LWR_EQL, KC_EQL, KC_1, KC_2, KC_3, _______, KC_BSLS, _______, \
57 _______, _______, _______, _______, _______, _______, _______, _______ \
58 ),
59
60 [_ADJUST] = LAYOUT( \
61 QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, \
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
63 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
64 _______, _______, _______, _______, _______, _______, _______, _______ \
65 )
66
67/*
68 [BLANK] = LAYOUT( \
69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
72 _______, _______, _______, _______, _______, _______, _______, _______ \
73 )
74 */
75};
76
77void keyboard_pre_init_user(void) {
78 setPinOutput(TOP_LED);
79 setPinOutput(MIDDLE_LED);
80 setPinOutput(BOTTOM_LED);
81}
82
83layer_state_t layer_state_set_keymap(layer_state_t state) {
84 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
85 return state;
86}
87
88#ifdef USE_LEDS_FOR_LAYERS
89bool led_update_keymap(led_t led_state) {
90 writePin(TOP_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 1
91 writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN2))); // Use for Layer 2
92 writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock
93 return false; // Override default set by KB
94}
95#endif
diff --git a/keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk b/keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk
new file mode 100644
index 000000000..c1dfab0c7
--- /dev/null
+++ b/keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,2 @@
1BACKLIGHT_ENABLE = no
2TAP_DANCE_ENABLE = yes
diff --git a/keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c b/keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..4180e9464
--- /dev/null
+++ b/keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,115 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base
21 * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
22 * │Hom│Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│ BsPc│
23 * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
24 * │PgU│HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │" '│   Enter│
25 * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
26 * │PgD│Shift   │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ ↑Shft│
27 * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
28 * │End│Ctrl│Opt│Cmd │        Space-Raise        │←Cmd│↓Lw│→Opt│
29 * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
30 */
31[_BASE] = LAYOUT_base_kit_all( \
32 KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC, \
33 KC_PGUP, HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, XXXXXXX, KC_ENT, \
34 KC_PGDN, KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, UP_RSFT, \
35 KC_END, KC_LCTL, KC_LOPT, KC_LCMD, XXXXXXX, SPC_RAI, XXXXXXX, LFT_CMD, DWN_LWR, RGT_OPT \
36),
37
38/* Lower
39 * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
40 * │Nxt│Del  │BrD│BrU│Msn│LHP│   │   │   │   │   │ ↑ │Mut│ SlpD│
41 * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
42 * │VlU│HyCaps│   │   │NxW│PvT│Bck│Fwd│NxT│   │ ← │ → │    Play│
43 * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
44 * │VlD│        │   │   │   │1PX│1Ps│   │   │   │ ↓ │   │      │
45 * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
46 * │Prv│    │   │    │                           │    │   │    │
47 * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
48 */
49[_LOWER] = LAYOUT_base_kit_all( \
50 KC_MNXT, KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD, \
51 KC_VOLU, HY_CAPS, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, KC_LEFT, KC_RGHT, XXXXXXX, KC_MPLY, \
52 KC_VOLD, _______, XXXXXXX, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, KC_DOWN, _______, _______, \
53 KC_MPRV, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______ \
54),
55
56/* Raise
57 * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
58 * │Nxt│~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│} ]│     │
59 * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
60 * │VlU│      │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│   │: ;│        │
61 * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
62 * │VlD│        │ F7│ F8│ F9│F10│F11│F12│   │{ [│} ]│| \│ ⇞Shft│
63 * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
64 * │Prv│    │   │    │                           │↖︎Cmd│⇟Fn│↘︎Opt│
65 * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
66 */
67[_RAISE] = LAYOUT_base_kit_all( \
68 KC_MNXT, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, _______, \
69 KC_VOLU, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, KC_SCLN, XXXXXXX, _______, \
70 KC_VOLD, _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, KC_BSLS, PGU_SFT, \
71 KC_MPRV, _______, _______, _______, XXXXXXX, _______, XXXXXXX, HOM_CMD, PGD_LWR, END_OPT \
72),
73
74/* Adjust
75 * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
76 * │   │Make │   │   │EEP│RST│   │   │   │   │   │   │   │     │
77 * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
78 * │   │      │   │   │   │   │   │   │   │   │   │   │        │
79 * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
80 * │   │        │   │   │   │   │   │   │   │   │   │   │      │
81 * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
82 * │   │    │   │    │                           │    │   │    │
83 * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
84 */
85[_ADJUST] = LAYOUT_base_kit_all( \
86 _______, QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, \
87 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, \
88 _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
89 _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______ \
90),
91
92/* Blank layer
93 * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
94 * │   │     │   │   │   │   │   │   │   │   │   │   │   │     │
95 * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
96 * │   │      │   │   │   │   │   │   │   │   │   │   │        │
97 * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
98 * │   │        │   │   │   │   │   │   │   │   │   │   │      │
99 * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
100 * │   │    │   │    │                           │    │   │    │
101 * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
102 */
103/*
104[_BLANK] = LAYOUT_base_kit_all( \
105 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
106 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, \
107 _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
108 _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______ \
109),
110*/
111};
112
113layer_state_t layer_state_set_keymap(layer_state_t state) {
114 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
115}
diff --git a/keyboards/tkc/osav2/keymaps/brandonschlack/config.h b/keyboards/tkc/osav2/keymaps/brandonschlack/config.h
new file mode 100644
index 000000000..e74d93c35
--- /dev/null
+++ b/keyboards/tkc/osav2/keymaps/brandonschlack/config.h
@@ -0,0 +1,30 @@
1/* Copyright 2020 Brandon Schlack
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 USE_LEDS_FOR_LAYERS
19#define STOPLIGHT_LED
20
21#define TOP_LED C7
22#define MIDDLE_LED C6
23#define BOTTOM_LED B6
24
25// #define LED_PIN_FLIP
26#ifdef LED_PIN_FLIP
27 #define LED_ON(flag) !flag
28#else
29 #define LED_ON(flag) flag
30#endif
diff --git a/keyboards/tkc/osav2/keymaps/brandonschlack/keymap.c b/keyboards/tkc/osav2/keymaps/brandonschlack/keymap.c
new file mode 100755
index 000000000..5e3debd8d
--- /dev/null
+++ b/keyboards/tkc/osav2/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,243 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19/**
20 * Layer Names
21 *
22 * Layers mostly used for macro keys
23 */
24#define _REEDER _M1
25#define _MAIL _M2
26#define _REEDER_FN _M1_FN1
27#define _MAIL_FN _M2_FN1
28
29/**
30 * Keycodes & Macros
31 */
32#define TG_BASE TO(_BASE)
33#define TG_REDR TO(_REEDER)
34#define TG_MAIL TO(_MAIL)
35
36const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37/* Base
38 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
39 * │Ply│ │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│         │& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│
40 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
41 * │VlU│ │Tab  │ Q │ W │ E │ R │ T │         │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│
42 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
43 * │VlD│ │HyCaps│ A │ S │ D │ F │ G │         │ H │ J │ K │ L │: ;│" '│   Enter│
44 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
45 *       │LShift  │ Z │ X │ C │ V │ B │     │ B │ N │ M │< ,│> .│? /│  Shft│Fn │
46 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
47 *       │Opt  │     │Cmd  │Spc/Lwr│Ctrl│   │   Spc/Rai│  Cmd│           │  Opt│
48 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
49 */
50[_BASE] = LAYOUT_all( \
51 KC_MPLY, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
52 KC_VOLU, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
53 KC_VOLD, HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
54 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LOWER, \
55 KC_LOPT, KC_LCMD, SPC_LWR, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT \
56),
57/* Reeder
58 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
59 * │ H │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
60 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
61 * │ K │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
62 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
63 * │ J │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
64 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
65 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
66 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
67 *       │     │     │     │       │    │   │          │     │           │     │
68 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
69 */
70[_REEDER] = LAYOUT_all( \
71 KC_H, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
72 KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
73 KC_J, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
75 _______, _______, _______, _______, _______, _______, _______ \
76
77),
78/* Mail
79 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
80 * │Del│ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
81 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
82 * │It+│ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
83 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
84 * │It-│ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
85 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
86 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
87 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
88 *       │     │     │     │       │    │   │          │     │           │     │
89 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
90 */
91[_MAIL] = LAYOUT_all( \
92 G(KC_BSPC), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
93 KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
94 KC_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
95 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
96 _______, _______, _______, _______, _______, _______, _______ \
97
98),
99/* Lower
100 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
101 * │Mut│ │Mke│ F1│ F2│ F3│ F4│ F5│ F6│         │ F7│ F8│ F9│F10│F11│F12│LHP│SLP│
102 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
103 * │Nxt│ │RMod │RH+│RS+│RV+│Sp+│   │         │   │   │   │   │PgU│Hom│End│  Del│
104 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
105 * │Prv│ │RTgl  │RH-│RS-│RV-│Sp-│   │         │   │   │Prv│Nxt│PgD│ ↑ │   Play │
106 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
107 *       │        │LYR│Thm│   │   │   │     │   │   │   │   │ ← │ ↓ │→ Shft│   │
108 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
109 *       │     │     │     │       │    │   │          │     │           │     │
110 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
111 */
112[_LOWER] = LAYOUT_all( \
113 KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD, \
114 KC_MNXT, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, KC_DELT, \
115 KC_MPRV, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY, \
116 _______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, RGT_SFT, _______, \
117 _______, _______, _______, _______, _______, _______, _______ \
118
119),
120/* Reeder Function
121 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
122 * │ L │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
123 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
124 * │ P │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
125 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
126 * │ N │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
127 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
128 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
129 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
130 *       │     │     │     │       │    │   │          │     │           │     │
131 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
132 */
133[_REEDER_FN] = LAYOUT_all( \
134 KC_L, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
135 KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
136 KC_N, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
137 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
138 _______, _______, _______, _______, _______, _______, _______ \
139
140),
141/* Mail
142 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
143 * │Del│ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
144 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
145 * │It+│ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
146 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
147 * │It-│ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
148 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
149 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
150 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
151 *       │     │     │     │       │    │   │          │     │           │     │
152 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
153 */
154[_MAIL_FN] = LAYOUT_all( \
155 KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
156 A(G(KC_LBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
157 A(G(KC_RBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
158 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
159 _______, _______, _______, _______, _______, _______, _______ \
160
161),
162/* Raise
163 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
164 * │   │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
165 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
166 * │   │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
167 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
168 * │   │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
169 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
170 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
171 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
172 *       │     │     │     │       │    │   │          │     │           │     │
173 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
174 */
175[_RAISE] = LAYOUT_all( \
176 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
177 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
178 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
179 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
180 _______, _______, _______, _______, _______, _______, _______ \
181
182),
183/* Adjust
184 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
185 * │Bse│ │Mke│   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
186 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
187 * │Rdr│ │RMod │RH+│RS+│RV+│Sp+│   │         │   │   │   │   │   │   │   │     │
188 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
189 * │Mai│ │RTgl  │RH-│RS-│RV-│Sp-│   │         │   │   │   │   │   │   │        │
190 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
191 *       │        │LYR│Thm│   │EEP│Rst│     │Rst│   │   │   │   │   │      │   │
192 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
193 *       │     │     │     │       │    │   │          │     │           │     │
194 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
195 */
196[_ADJUST] = LAYOUT_all( \
197 TG_BASE, QM_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
198 TG_REDR, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
199 TG_MAIL, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, \
200 _______, RGB_LYR, RGB_THM, _______, EEP_RST, RESET, RESET, _______, _______, _______, _______, _______, _______, _______, \
201 _______, _______, _______, _______, _______, _______, _______ \
202
203)
204/* Layout
205 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
206 * │   │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
207 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
208 * │   │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
209 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
210 * │   │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
211 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
212 *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
213 *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
214 *       │     │     │     │       │    │   │          │     │           │     │
215 *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
216 */
217/*
218[_BLANK] = LAYOUT( \
219 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
220 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
221 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
222 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
223 _______, _______, _______, _______, _______, _______, _______ \
224
225)
226*/
227};
228
229layer_state_t layer_state_set_keymap(layer_state_t state) {
230 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
231 state = update_tri_layer_state(state, _REEDER, _LOWER, _REEDER_FN);
232 state = update_tri_layer_state(state, _MAIL, _LOWER, _MAIL_FN);
233 return state;
234}
235
236#ifdef USE_LEDS_FOR_LAYERS
237bool led_update_keymap(led_t led_state) {
238 writePin(TOP_LED, LED_ON(IS_LAYER_ON(_REEDER) || IS_LAYER_ON(_MAIL))); // Use for Macro Layer
239 writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 2
240 writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock
241 return false; // Override default set by KB
242}
243#endif
diff --git a/keyboards/tkc/osav2/keymaps/brandonschlack/rules.mk b/keyboards/tkc/osav2/keymaps/brandonschlack/rules.mk
new file mode 100755
index 000000000..9c896e0d8
--- /dev/null
+++ b/keyboards/tkc/osav2/keymaps/brandonschlack/rules.mk
@@ -0,0 +1,9 @@
1# Build Options
2# comment out to disable the options.
3#
4BACKLIGHT_ENABLE = no
5MOUSEKEY_ENABLE = yes # Mouse keys
6CONSOLE_ENABLE = no # Console for debug
7COMMAND_ENABLE = no # Commands for debug and configuration
8VELOCIKEY_ENABLE = no
9
diff --git a/keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c b/keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c
new file mode 100644
index 000000000..1193fa32c
--- /dev/null
+++ b/keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,132 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base Layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
22 * │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Bsp│
23 * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
24 * │HyTb│ A │ S │ D │ F │ G │ H │ J │ K │ L │ Enter│
25 * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
26 * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│?/Lw│
27 * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
28 * │││││Opt │Cmd │         SpcRse         │Ctrl│││││
29 * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
30 */
31[_BASE] = LAYOUT( \
32 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
33 HY_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, \
34 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SLH_LWR, \
35 KC_LOPT, KC_LCMD, XXXXXXX, SPC_RAI, XXXXXXX, XXXXXXX, KC_LCTL \
36),
37/* Lower
38 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
39 * │Del│BrD│BrU│Msn│LHP│   │   │   │Hom│ ↑ │PgU│SlD│
40 * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
41 * │    │Mut│VlU│NxW│PvT│Bck│Fwd│NxT│ ← │ → │  Ply │
42 * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
43 * │SfCaps│Prv│VlD│Nxt│1PX│1Ps│   │End│ ↓ │PgD│    │
44 * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
45 * │││││    │    │                        │    │││││
46 * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
47 */
48[_LOWER] = LAYOUT( \
49 KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, KC_HOME, KC_UP, KC_PGUP, MC_SLPD, \
50 _______, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, KC_LEFT, KC_RGHT, KC_MPLY, \
51 SF_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, PX_AFLL, OP_AFLL, _______, KC_END, KC_DOWN, KC_PGDN, _______, \
52 _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
53),
54/* Raise
55 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
56 * │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│   │
57 * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
58 * │    │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│: ;│   " '│
59 * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
60 * │      │ F7│ F8│ F9│F10│F11│F12│   │{ [│} ]│|\Lw│
61 * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
62 * │││││    │    │                        │    │││││
63 * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
64 */
65/*
66[_RAISE] = LAYOUT( \
67 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \
68 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, \
69 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, BSL_LWR, \
70 _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
71), */
72/* Raise
73 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
74 * │~ `│ F1│ F2│ F3│ F4│{ [│} ]│& 7│* 8│( 9│) 0│   │
75 * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
76 * │    │ F5│ F6│ F7│ F8│_ -│ + │$ 4│% 5│^ 6│   " '│
77 * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
78 * │      │ F9│F10│F11│F12│+ =│! 1│@ 2│# 3│: ;│|\Lw│
79 * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
80 * │││││    │    │                        │    │││││
81 * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
82 */
83[_RAISE] = LAYOUT( \
84 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_LBRC, KC_RBRC, KC_7, KC_8, KC_9, KC_0, _______, \
85 _______, KC_F5, KC_F6, KC_F7, KC_F8, KC_MINS, KC_PLUS, KC_4, KC_5, KC_6, KC_QUOT, \
86 _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_EQL, KC_1, KC_2, KC_3, KC_SCLN, BSL_LWR, \
87 _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
88),
89/* Adjust/Macro
90 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
91 * │Mke│   │   │EEP│RST│   │   │   │   │   │   │   │
92 * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
93 * │    │   │   │   │   │   │   │   │   │   │      │
94 * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
95 * │      │   │   │   │   │   │   │   │   │   │    │
96 * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
97 * │││││    │    │                        │    │││││
98 * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
99 */
100
101[_ADJUST] = LAYOUT( \
102 QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, \
103 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
104 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
105 _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
106)
107/* Blank Layer
108 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
109 * │   │   │   │   │   │   │   │   │   │   │   │   │
110 * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
111 * │    │   │   │   │   │   │   │   │   │   │      │
112 * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
113 * │      │   │   │   │   │   │   │   │   │   │    │
114 * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
115 * │││││    │    │                        │    │││││
116 * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
117 */
118/*
119[BLANK] = LAYOUT( \
120 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
121 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
122 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
123 _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______ \
124)
125*/
126
127};
128
129layer_state_t layer_state_set_keymap(layer_state_t state) {
130 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
131}
132
diff --git a/layouts/community/60_ansi/brandonschlack-ansi/keymap.c b/layouts/community/60_ansi/brandonschlack-ansi/keymap.c
new file mode 100644
index 000000000..5282ff98b
--- /dev/null
+++ b/layouts/community/60_ansi/brandonschlack-ansi/keymap.c
@@ -0,0 +1,83 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
22 * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│
23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
24 * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│
25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
26 * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│
27 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
28 * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ ↑ Shift│
29 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
30 * │Ctrl│ Opt│ Cmd│ Space │CmdP│←Opt│↓ Fn│→Ctl│
31 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
32 */
33[_BASE] = LAYOUT_60_ansi( \
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
36 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, UP_RSFT, \
38 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, PLY_CMD, LFT_OPT, DWN_FN1, RGT_CTL \
39),
40
41/* Function Layer
42 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
43 * │~ `│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Del │
44 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
45 * │RMod │RH+│RS+│RV+│AS+│ │ │ │F13│F14│F15│PgU│LHP│ SLP │
46 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
47 * │RTgl │RH-│RS-│RV-│AS-│ │ │VlD│VlU│Mut│Hom│End│ PlyPse │
48 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
49 * │ │LYR│Thm│ │ │RST│ │MKE│Prv│Nxt│PgD│ │
50 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
51 * │ │ │ │ │ │ │ │ │
52 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
53 */
54[_FN1] = LAYOUT_60_ansi( \
55 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DELT, \
56 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_PGUP, MC_LHPD, MC_SLPD, \
57 RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_HOME, KC_END, KC_MPLY, \
58 _______, RGB_LYR, RGB_THM, _______, _______, RESET, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_PGDN, _______, \
59 _______, _______, _______, _______, _______, _______, _______, _______ \
60),
61/* Layer
62 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
63 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
64 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
65 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
66 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
67 * │ │ │ │ │ │ │ │ │ │ │ │ │ │
68 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
69 * │ │ │ │ │ │ │ │ │ │ │ │ │
70 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
71 * │ │ │ │ │ │ │ │ │
72 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
73 */
74/*
75[BLANK] = LAYOUT_60_ansi( \
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
78 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
79 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
80 _______, _______, _______, _______, _______, _______, _______, _______ \
81)
82*/
83};
diff --git a/layouts/community/60_ansi/brandonschlack-ansi/rules.mk b/layouts/community/60_ansi/brandonschlack-ansi/rules.mk
new file mode 100644
index 000000000..7aaf727ad
--- /dev/null
+++ b/layouts/community/60_ansi/brandonschlack-ansi/rules.mk
@@ -0,0 +1 @@
USER_NAME := brandonschlack
diff --git a/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c b/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c
new file mode 100644
index 000000000..906925ab9
--- /dev/null
+++ b/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c
@@ -0,0 +1,83 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
22 * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│
23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
24 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│Bspc │
25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
26 * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter  │
27 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
28 * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │↑ Shft│FnP│
29 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
30 * │Ctrl│Opt │Cmd │         Space          │ Cmd│←Opt│↓ Fn│→Ctl│
31 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
32 */
33[_BASE] = LAYOUT_60_ansi_split_bs_rshift( \
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
36 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, UP_RSFT, PLY_FN1, \
38 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, LFT_OPT, DWN_FN1, RGT_CTL \
39),
40
41/* Function Layer
42 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
43 * │MKE│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│SLP│
44 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
45 * │RMod │RH+│RS+│RV+│AS+│   │   │   │   │   │   │ ↑ │MNC│ Del │
46 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
47 * │RTgl  │RH-│RS-│RV-│AS-│   │   │   │VlD│VlU│ ← │ → │   Play │
48 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
49 * │        │LYR│Thm│   │   │RST│   │Mut│Prv│Nxt│ ↓ │PgUSft│   │
50 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
51 * │    │    │    │                        │    │HmOp│PgDF│EndC│
52 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
53 */
54[_FN1] = LAYOUT_60_ansi_split_bs_rshift( \
55 QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD, \
56 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_VOLU, KC_MPRV, KC_MNXT, KC_UP, MC_MSSN, KC_DELT, \
57 RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, KC_VOLD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_MPLY, \
58 _______, RGB_LYR, RGB_THM, _______, _______, RESET, _______, KC_MUTE, KC_END, KC_PGDN, KC_DOWN, PGU_SFT, _______, \
59 _______, _______, _______, _______, _______, HOM_OPT, PGD_FN1, END_CTL \
60)
61/* Layer
62 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
63 * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
64 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
65 * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
66 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
67 * │      │   │   │   │   │   │   │   │   │   │   │   │        │
68 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
69 * │        │   │   │   │   │   │   │   │   │   │   │      │   │
70 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
71 * │    │    │    │                        │    │    │    │    │
72 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
73 */
74/*
75[BLANK] = LAYOUT_60_ansi_split_bs_rshift( \
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
78 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
79 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
80 _______, _______, _______, _______, _______, _______, _______, _______ \
81)
82*/
83};
diff --git a/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk b/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk
new file mode 100644
index 000000000..7aaf727ad
--- /dev/null
+++ b/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk
@@ -0,0 +1 @@
USER_NAME := brandonschlack
diff --git a/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c b/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c
new file mode 100644
index 000000000..b6db28ed9
--- /dev/null
+++ b/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c
@@ -0,0 +1,84 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
22 * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│
23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
24 * │Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│
25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
26 * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│   Enter│
27 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
28 * │LShift  │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │↑ Shft│FnP│
29 * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
30 * │Ctrl │Opt│Cmd  │                           │ ←Cmd│↓Op│→Ctrl│
31 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
32 */
33[_BASE] = LAYOUT_60_tsangan_hhkb( \
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
36 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, UP_RSFT, PLY_FN1, \
38 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, LFT_CMD, DWN_OPT, RGT_CTL \
39),
40
41/* Function Layer
42 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
43 * │MKE│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│SLP│
44 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
45 * │RMod │RH+│RS+│RV+│Bl+│   │   │   │   │   │   │ ↑ │MNC│ Del │
46 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
47 * │RTgl  │RH-│RS-│RV-│Bl-│   │   │   │VlD│Vlu│ ← │ → │   Play │
48 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
49 * │        │LYR│Thm│BlT│   │RST│   │Mut│Prv│Nxt│ ↓ │PgUSft│   │
50 * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
51 * │     │   │     │                           │HmCmd│PDO│EndCl│
52 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
53 */
54[_FN1] = LAYOUT_60_tsangan_hhkb( \
55 QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD, \
56 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, BL_INC, _______, _______, _______, _______, _______, _______, KC_UP, MC_MSSN, KC_DELT, \
57 RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, BL_DEC, _______, _______, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_RGHT, KC_MPLY, \
58 _______, RGB_LYR, RGB_THM, BL_TOGG, _______, RESET, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_DOWN, PGU_SFT, _______, \
59 _______, _______, _______, _______, HOM_CMD, PGD_OPT, END_CTL \
60)
61/* Layer
62 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
63 * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
64 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
65 * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
66 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
67 * │      │   │   │   │   │   │   │   │   │   │   │   │        │
68 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
69 * │        │   │   │   │   │   │   │   │   │   │   │      │   │
70 * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
71 * │     │   │     │                           │     │   │     │
72 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
73 */
74/*
75[BLANK] = LAYOUT_60_tsangan_hhkb( \
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
78 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
79 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
80 _______, _______, _______, _______, _______, _______, _______ \
81)
82*/
83
84};
diff --git a/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md b/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md
new file mode 100644
index 000000000..d79cf7f07
--- /dev/null
+++ b/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md
@@ -0,0 +1,11 @@
1# brandonschlack's 60 Tsangan HHKB Layout
2
3It is used on
4
5* [AN-C](https://github.com/qmk/qmk_firmware/tree/master/keyboards/cannonkeys/an_c)
6* [Instant60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/cannonkeys/instant60)
7* [Polaris](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ai03/polaris)
8* [Plain60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/maartenwut/plain60)
9
10## Features
11### Mod-Taps & Layer-Taps
diff --git a/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk b/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk
new file mode 100644
index 000000000..7aaf727ad
--- /dev/null
+++ b/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk
@@ -0,0 +1 @@
USER_NAME := brandonschlack
diff --git a/layouts/community/65_ansi_blocker/brandonschlack/config.h b/layouts/community/65_ansi_blocker/brandonschlack/config.h
new file mode 100644
index 000000000..e7b09f422
--- /dev/null
+++ b/layouts/community/65_ansi_blocker/brandonschlack/config.h
@@ -0,0 +1,64 @@
1/* Copyright 2019 Brandon Schlack
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#ifdef RGB_MATRIX_ENABLE
19// Disable RGB Effects
20#define DISABLE_RGB_MATRIX_ALPHAS_MODS
21// #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
22// #define DISABLE_RGB_MATRIX_BREATHING
23#define DISABLE_RGB_MATRIX_BAND_SAT
24#define DISABLE_RGB_MATRIX_BAND_VAL
25#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
26#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
27#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
28#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
29#define DISABLE_RGB_MATRIX_CYCLE_ALL
30#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
31#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
32#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
33#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
34#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
35#define DISABLE_RGB_MATRIX_DUAL_BEACON
36#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
37#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
38#define DISABLE_RGB_MATRIX_RAINBOW_BEACON
39#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
40#define DISABLE_RGB_MATRIX_RAINDROPS
41#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
42#define DISABLE_RGB_MATRIX_TYPING_HEATMAP
43#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
44#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
45// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
46#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
47#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
48#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
49#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
50#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
51#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
52#define DISABLE_RGB_MATRIX_SPLASH
53#define DISABLE_RGB_MATRIX_MULTISPLASH
54#define DISABLE_RGB_MATRIX_SOLID_SPLASH
55#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
56
57#define QMK_KEYS_PER_SCAN 4
58
59#define USB_LED_CAPS_LOCK_SCANCODE 30
60#endif
61
62#ifdef KEYBOARD_massdrop_alt
63#undef USB_LED_INDICATOR_ENABLE
64#endif
diff --git a/layouts/community/65_ansi_blocker/brandonschlack/keymap.c b/layouts/community/65_ansi_blocker/brandonschlack/keymap.c
new file mode 100644
index 000000000..6b67cfdca
--- /dev/null
+++ b/layouts/community/65_ansi_blocker/brandonschlack/keymap.c
@@ -0,0 +1,117 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base Layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
22 * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│Hom│
23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
24 * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgU│
25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
26 * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
27 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
28 * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
29 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
30 * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│
31 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
32 */
33[_BASE] = LAYOUT_65_ansi_blocker( \
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, \
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, \
36 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \
38 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT \
39),
40/* Function Layer
41 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
42 * │` ~│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Delete│SlD│
43 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
44 * │RMod │RH+│RS+│RV+│AS+│ │ │ │ │ │F13│F14│F15│ LHP │VlU│
45 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
46 * │RTgl │RH-│RS-│RV-│AS-│ │ │ │ │ │ │ │ │VlD│
47 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
48 * │ │LYR│Thm│ │ │RST│ │Mke│Prv│Nxt│Ply│ │PgU│Mut│
49 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
50 * │ │ │ │ │ │ │ │Hom│PgD│End│
51 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
52 */
53[_FN1] = LAYOUT_65_ansi_blocker( \
54 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DELT, MC_SLPD, \
55 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_LHPD, KC_VOLU, \
56 RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \
57 _______, RGB_LYR, RGB_THM, _______, _______, RESET, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \
58 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \
59),
60/* Blank Layout
61 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
62 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
63 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
64 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
65 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
66 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
67 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
68 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
69 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
70 * │ │ │ │ │ │ │ │ │ │ │
71 * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
72[X] = LAYOUT_65_ansi_blocker( \
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
77 _______, _______, _______, _______, _______, _______, _______, _______, _______ \
78),
79*/
80};
81
82// Runs just one time when the keyboard initializes.
83void matrix_init_keymap(void) {
84};
85
86// Runs once after keyboard initializes
87void keyboard_post_init_keymap(void) {
88};
89
90// Runs constantly in the background, in a loop.
91void matrix_scan_keymap(void) {
92};
93
94bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
95 switch (keycode) {
96 #ifdef KEYBOARD_massdrop
97 case RGB_TOG:
98 if (record->event.pressed) {
99 rgb_matrix_cycle_flag();
100 }
101 return false;
102 #endif
103 default:
104 return true; //Process all other keycodes normally
105 }
106}
107
108#ifdef RGB_MATRIX_ENABLE
109void rgb_matrix_indicators_user(void) {
110 if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) {
111 rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, RGB_GREEN);
112 } else if (!HAS_ANY_FLAGS(rgb_matrix_get_flags(), LED_FLAG_KEYS)){
113 rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, 0, 0, 0);
114 }
115}
116#endif
117
diff --git a/layouts/community/65_ansi_blocker/brandonschlack/readme.md b/layouts/community/65_ansi_blocker/brandonschlack/readme.md
new file mode 100644
index 000000000..effb00846
--- /dev/null
+++ b/layouts/community/65_ansi_blocker/brandonschlack/readme.md
@@ -0,0 +1,15 @@
1# brandonschlack's 65_ansi_blocker layout
2
3This is my preferred 65% layout.
4
5It is used on:
6
7* [Massdrop ALT](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop/alt)
8* [KBD67 MKII](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb)
9
10## [Base Layer](http://www.keyboard-layout-editor.com/#/gists/a820c8629394f8f4c3943e6ee518d9a8)
11![Base Layer](https://i.imgur.com/gPxDZl7.jpg)
12
13## [Function Layer](http://www.keyboard-layout-editor.com/#/gists/8ca73a6d3bec8ce736f5db60edf31dcf)
14![Function Layer](https://i.imgur.com/gNKHgWa.jpg)
15
diff --git a/layouts/community/65_ansi_blocker/brandonschlack/rules.mk b/layouts/community/65_ansi_blocker/brandonschlack/rules.mk
new file mode 100644
index 000000000..858496707
--- /dev/null
+++ b/layouts/community/65_ansi_blocker/brandonschlack/rules.mk
@@ -0,0 +1,7 @@
1# Build Options
2ifeq ($(strip $(KEYBOARD)), gray_studio/space65)
3 MOUSEKEY_ENABLE = no
4 BACKLIGHT_ENABLE = no
5 CONSOLE_ENABLE = yes
6 COMMAND_ENABLE = yes
7endif
diff --git a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h
new file mode 100644
index 000000000..9506c7fe9
--- /dev/null
+++ b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h
@@ -0,0 +1,64 @@
1/* Copyright 2020 Brandon Schlack
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#ifdef RGB_MATRIX_ENABLE
19// Disable RGB Effects
20#define DISABLE_RGB_MATRIX_ALPHAS_MODS
21// #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
22// #define DISABLE_RGB_MATRIX_BREATHING
23#define DISABLE_RGB_MATRIX_BAND_SAT
24#define DISABLE_RGB_MATRIX_BAND_VAL
25#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
26#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
27#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
28#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
29#define DISABLE_RGB_MATRIX_CYCLE_ALL
30#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
31#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
32#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
33#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
34#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
35#define DISABLE_RGB_MATRIX_DUAL_BEACON
36#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
37#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
38#define DISABLE_RGB_MATRIX_RAINBOW_BEACON
39#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
40#define DISABLE_RGB_MATRIX_RAINDROPS
41#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
42#define DISABLE_RGB_MATRIX_TYPING_HEATMAP
43#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
44#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
45// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
46#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
47#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
48#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
49#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
50#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
51#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
52#define DISABLE_RGB_MATRIX_SPLASH
53#define DISABLE_RGB_MATRIX_MULTISPLASH
54#define DISABLE_RGB_MATRIX_SOLID_SPLASH
55#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
56
57#define QMK_KEYS_PER_SCAN 4
58
59#define USB_LED_CAPS_LOCK_SCANCODE 30
60#endif
61
62#ifdef KEYBOARD_massdrop_alt
63#undef USB_LED_INDICATOR_ENABLE
64#endif
diff --git a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c
new file mode 100644
index 000000000..9482b12c4
--- /dev/null
+++ b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c
@@ -0,0 +1,104 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base Layer
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
22 * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│Hom│
23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
24 * │Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│PgU│
25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
26 * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│   Enter│PgD│
27 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
28 * │Shift   │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
29 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬┬┬───┼───┼───┤
30 * │Ctrl│ Opt│ Cmd│          Space         │Cmd │FnPy│││Lef│Dow│Rig│
31 * └────┴────┴────┴────────────────────────┴────┴────┴┴┴───┴───┴───┘
32 */
33[_BASE] = LAYOUT_65_ansi_blocker_split_bs( \
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME, \
35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \
36 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \
38 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT \
39),
40/* Function Layer
41 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
42 * │Mke│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│MNC│SlD│
43 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
44 * │RMod │RH+│RS+│RV+│AS+│ │ │ │ │ │F13│F14│F15│  Del│VlU│
45 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
46 * │RTgl │RH-│RS-│RV-│AS-│ │ │ │ │ │ │ │ │VlD│
47 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
48 * │ │LYR│Thm│ │ │RST│ │   │Prv│Nxt│Ply│ │PgU│Mut│
49 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬┬┬───┼───┼───┤
50 * │ │ │ │ │ │ │││Hom│PgD│End│
51 * └────┴────┴────┴────────────────────────┴────┴────┴┴┴───┴───┴───┘
52 */
53[_FN1] = LAYOUT_65_ansi_blocker_split_bs( \
54 QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_MSSN, MC_SLPD, \
55 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_DELT, KC_VOLU, \
56 RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \
57 _______, RGB_LYR, RGB_THM, _______, _______, RESET, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \
58 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \
59),
60/* Blank Layout
61 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
62 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
63 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
64 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
65 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
66 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
67 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
68 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
69 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬┬┬───┼───┼───┤
70 * │ │ │ │ │ │ │││ │ │ │
71 * └────┴────┴────┴────────────────────────┴────┴────┴┴┴───┴───┴───┘
72[X] = LAYOUT_65_ansi_blocker_split_bs( \
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
77 _______, _______, _______, _______, _______, _______, _______, _______, _______ \
78),
79*/
80};
81
82bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
83 switch (keycode) {
84 #ifdef KEYBOARD_massdrop
85 case RGB_TOG:
86 if (record->event.pressed) {
87 rgb_matrix_cycle_flag();
88 }
89 return false;
90 #endif
91 default:
92 return true; //Process all other keycodes normally
93 }
94}
95
96#ifdef RGB_MATRIX_ENABLE
97void rgb_matrix_indicators_user(void) {
98 if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) {
99 rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, RGB_GREEN);
100 } else if (!HAS_ANY_FLAGS(rgb_matrix_get_flags(), LED_FLAG_KEYS)){
101 rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, 0, 0, 0);
102 }
103}
104#endif
diff --git a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md
new file mode 100644
index 000000000..51c7938eb
--- /dev/null
+++ b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md
@@ -0,0 +1,15 @@
1# brandonschlack's 65% ANSI blocker split backspace layout
2
3This is my preferred 65% layout.
4
5It is used on:
6
7* [Massdrop ALT](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop/alt)
8* [KBD67 MKII](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb)
9
10## [Base Layer](http://www.keyboard-layout-editor.com/#/gists/a820c8629394f8f4c3943e6ee518d9a8)
11![Base Layer](https://i.imgur.com/gPxDZl7.jpg)
12
13## [Function Layer](http://www.keyboard-layout-editor.com/#/gists/8ca73a6d3bec8ce736f5db60edf31dcf)
14![Function Layer](https://i.imgur.com/gNKHgWa.jpg)
15
diff --git a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk
new file mode 100644
index 000000000..d12f9d5d3
--- /dev/null
+++ b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk
@@ -0,0 +1,2 @@
1# Build Options
2USER_NAME := brandonschlack
diff --git a/layouts/community/75_ansi/brandonschlack/keymap.c b/layouts/community/75_ansi/brandonschlack/keymap.c
new file mode 100644
index 000000000..0f9d63c7c
--- /dev/null
+++ b/layouts/community/75_ansi/brandonschlack/keymap.c
@@ -0,0 +1,105 @@
1/* Copyright 2020 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* LAYOUT
21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
22 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
23 * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
24 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ │
25 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
26 * │1.5U │ │ │ │ │ │ │ │ │ │ │ │ │1.5U │ │
27 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
28 * │1.75U │ │ │ │ │ │ │ │ │ │ │ │2.25U │ │
29 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
30 * │2.25U │ │ │ │ │ │ │ │ │ │ │1.75U │ │ │
31 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
32 * │1.25│1.25│1.25│6.25U │1U │1U │1U │1U │1U │1U │
33 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
34 */
35
36 /* Base Layer
37 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
38 * │Esc│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│F13│F14│F15│
39 * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
40 * │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│Hom│
41 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
42 * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgU│
43 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
44 * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
45 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
46 * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
47 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
48 * │Ctrl│ Opt│ Cmd│ Space │Cmd│Opt│Fn │Lef│Dow│Rig│
49 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
50 */
51[_BASE] = LAYOUT_75_ansi( \
52 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, \
53 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, \
54 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, \
55 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
56 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \
57 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, RWD_CMD, FFD_OPT, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT \
58),
59/* Function Layer
60 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
61 * │Mke│BrD│BrU│Msn│LHP│RV-│RV+│ │ │ │ │ │ │Prv│Nxt│Ply│
62 * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
63 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ Del │SlD│
64 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
65 * │RMod │RH+│RS+│RV+│AS+│ │ │ │ │ │ │ │ │ │VlU│
66 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
67 * │RTgl │RH-│RS-│RV-│AS-│ │ │ │ │ │ │ │ │VlD│
68 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
69 * │ │LYR│Thm│ │ │RST│ │ │ │ │ │ │PgU│Mte│
70 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
71 * │ │ │ │ │ │ │ │Hom│PgD│End│
72 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
73 */
74[_FN1] = LAYOUT_75_ansi( \
75 QM_MAKE, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, \
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELT, MC_SLPD, \
77 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, \
78 RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \
79 _______, RGB_LYR, RGB_THM, _______, _______, RESET, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_MUTE, \
80 _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \
81),
82/* Blank Layer
83 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
84 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
85 * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
86 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
87 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
88 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
89 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
90 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
91 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
92 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
93 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
94 * │ │ │ │ │ │ │ │ │ │ │
95 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
96[X] = LAYOUT_75_ansi( \
97 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
98 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
99 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
100 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
101 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
102 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
103),
104*/
105};
diff --git a/layouts/community/75_ansi/brandonschlack/readme.md b/layouts/community/75_ansi/brandonschlack/readme.md
new file mode 100644
index 000000000..0dfb081ba
--- /dev/null
+++ b/layouts/community/75_ansi/brandonschlack/readme.md
@@ -0,0 +1,7 @@
1# brandonschlack's 75_ansi layout
2
3This is my preferred 75% layout.
4
5It is currently used on:
6
7* [KBD75](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd75)
diff --git a/layouts/community/75_ansi/brandonschlack/rules.mk b/layouts/community/75_ansi/brandonschlack/rules.mk
new file mode 100644
index 000000000..104063ed4
--- /dev/null
+++ b/layouts/community/75_ansi/brandonschlack/rules.mk
@@ -0,0 +1,5 @@
1# Build Options
2ifneq (, $(findstring kbd75, $(KEYBOARD)))
3 MOUSEKEY_ENABLE = no
4endif
5BACKLIGHT_ENABLE = no # No backlights installed
diff --git a/layouts/community/ortho_4x12/brandonschlack/config.h b/layouts/community/ortho_4x12/brandonschlack/config.h
new file mode 100644
index 000000000..9b6789c1c
--- /dev/null
+++ b/layouts/community/ortho_4x12/brandonschlack/config.h
@@ -0,0 +1,55 @@
1/* Copyright 2020 Brandon Schlack
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#ifdef KEYBOARD_planck_rev6
19#ifdef AUDIO_ENABLE
20 #define STARTUP_SONG SONG(PLANCK_SOUND)
21 // #define STARTUP_SONG SONG(NO_SOUND)
22
23 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND) \
24 }
25#endif
26
27#define MUSIC_MASK (keycode != KC_NO)
28
29/*
30 * MIDI options
31 */
32
33/* Prevent use of disabled MIDI features in the keymap */
34//#define MIDI_ENABLE_STRICT 1
35
36/* enable basic MIDI features:
37 - MIDI notes can be sent when in Music mode is on
38*/
39
40#define MIDI_BASIC
41
42/* enable advanced MIDI features:
43 - MIDI notes can be added to the keymap
44 - Octave shift and transpose
45 - Virtual sustain, portamento, and modulation wheel
46 - etc.
47*/
48//#define MIDI_ADVANCED
49
50/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
51//#define MIDI_TONE_KEYCODE_OCTAVES 2
52
53// Most tactile encoders have detents every 4 stages
54#define ENCODER_RESOLUTION 4
55#endif
diff --git a/layouts/community/ortho_4x12/brandonschlack/keymap.c b/layouts/community/ortho_4x12/brandonschlack/keymap.c
new file mode 100644
index 000000000..d4c1a4a86
--- /dev/null
+++ b/layouts/community/ortho_4x12/brandonschlack/keymap.c
@@ -0,0 +1,218 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#ifdef KEYBOARD_planck_rev6
18 #include "muse.h"
19#endif
20#include "brandonschlack.h"
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23
24/* Qwerty */
25[_BASE] = LAYOUT_ortho_4x12( \
26// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
27 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
28// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
29 HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
30// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
31 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \
32// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
33 MCO_LYR, KC_LCTL, KC_LOPT, KC_LCMD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
34// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
35),
36
37/* Lower */
38[_LOWER] = LAYOUT_ortho_4x12( \
39// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
40 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
41// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
42 KC_DELT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
43// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
44 SF_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGUP, KC_PGDN, KC_END, _______, \
45// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
46 _______, _______, _______, _______, _______, KC_MUTE, KC_MUTE, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT \
47// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
48),
49
50/* Raise */
51[_RAISE] = LAYOUT_ortho_4x12( \
52// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
53 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
54// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
55 KC_DELT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
56// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
57 SF_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGUP, KC_PGDN, KC_END, _______, \
58// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
59 _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT \
60// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
61),
62
63/* Macros */
64[_MACRO] = LAYOUT_ortho_4x12( \
65// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
66 _______, _______, _______, _______, _______, _______, _______, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, MC_SLPD, \
67// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
68 _______, _______, _______, _______, _______, _______, _______, MC_BACK, MC_FWRD, PRV_TAB, NXT_TAB, NXT_WIN, \
69// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
70 _______, _______, _______, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, \
71// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
73// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
74),
75
76/* Adjust (Lower + Raise) */
77[_ADJUST] = LAYOUT_ortho_4x12( \
78// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
79 QM_MAKE, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, MC_SLPD, \
80// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
81 QM_FLSH, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \
82// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
83 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_RTHM,RGB_THM, _______, _______, _______, \
84// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
85 EEP_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
86// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
87)
88
89};
90
91layer_state_t layer_state_set_keymap(layer_state_t state) {
92 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
93 return state;
94}
95
96#ifdef KEYBOARD_plaid
97// Turn on Red LED when initialized
98void keyboard_post_init_keymap(void) {
99 writePinHigh(LED_RED);
100}
101
102// Use Green LED for Caps Lock
103void led_set_user(uint8_t usb_led) {
104 if (IS_LED_OFF(usb_led, USB_LED_CAPS_LOCK)) {
105 writePinLow(LED_GREEN);
106 } else {
107 writePinHigh(LED_GREEN);
108 }
109}
110#endif
111
112#ifdef KEYBOARD_planck_rev6
113#ifdef AUDIO_ENABLE
114 float plover_song[][2] = SONG(PLOVER_SOUND);
115 float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
116#endif
117
118bool muse_mode = false;
119uint8_t last_muse_note = 0;
120uint16_t muse_counter = 0;
121uint8_t muse_offset = 70;
122uint16_t muse_tempo = 50;
123
124void encoder_update_keymap(uint8_t index, bool clockwise) {
125 if (muse_mode) {
126 if (IS_LAYER_ON(_RAISE)) {
127 if (clockwise) {
128 muse_offset++;
129 } else {
130 muse_offset--;
131 }
132 } else {
133 if (clockwise) {
134 muse_tempo+=1;
135 } else {
136 muse_tempo-=1;
137 }
138 }
139 } else {
140 if (clockwise) {
141 #ifdef MOUSEKEY_ENABLE
142 tap_code(MC_WH_U);
143 #else
144 tap_code(KC_VOLU);
145 #endif
146 } else {
147 #ifdef MOUSEKEY_ENABLE
148 tap_code(MC_WH_D);
149 #else
150 tap_code(KC_VOLD);
151 #endif
152 }
153 }
154}
155
156void dip_switch_update_user(uint8_t index, bool active) {
157 switch (index) {
158 case 0: {
159#ifdef AUDIO_ENABLE
160 static bool play_sound = false;
161#endif
162 if (active) {
163#ifdef AUDIO_ENABLE
164 if (play_sound) { PLAY_SONG(plover_song); }
165#endif
166 layer_on(_ADJUST);
167 } else {
168#ifdef AUDIO_ENABLE
169 if (play_sound) { PLAY_SONG(plover_gb_song); }
170#endif
171 layer_off(_ADJUST);
172 }
173#ifdef AUDIO_ENABLE
174 play_sound = true;
175#endif
176 break;
177 }
178 case 1:
179 if (active) {
180 muse_mode = true;
181 } else {
182 muse_mode = false;
183 }
184 }
185}
186
187void matrix_scan_keymap(void) {
188#ifdef AUDIO_ENABLE
189 if (muse_mode) {
190 if (muse_counter == 0) {
191 uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
192 if (muse_note != last_muse_note) {
193 stop_note(compute_freq_for_midi_note(last_muse_note));
194 play_note(compute_freq_for_midi_note(muse_note), 0xF);
195 last_muse_note = muse_note;
196 }
197 }
198 muse_counter = (muse_counter + 1) % muse_tempo;
199 } else {
200 if (muse_counter) {
201 stop_all_notes();
202 muse_counter = 0;
203 }
204 }
205#endif
206}
207
208bool music_mask_user(uint16_t keycode) {
209 switch (keycode) {
210 case RAISE:
211 case LOWER:
212 case MCO_LYR:
213 return false;
214 default:
215 return true;
216 }
217}
218#endif
diff --git a/layouts/community/ortho_4x12/brandonschlack/readme.md b/layouts/community/ortho_4x12/brandonschlack/readme.md
new file mode 100644
index 000000000..847851329
--- /dev/null
+++ b/layouts/community/ortho_4x12/brandonschlack/readme.md
@@ -0,0 +1,20 @@
1# brandonschlack's 4x12 Ortho Keymap
2
3This layout is based on the Planck layout. It is macOS-centric, with Colemak and DVORAK removed as I don't use them.
4
5## Keyboards Using This Layout
6
7* [Planck](https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck)
8* [Plaid](https://github.com/qmk/qmk_firmware/tree/master/keyboards/plaid)
9* [JNAO](https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck) (FORCE_LAYOUT=ortho_4x12)
10
11## Features
12
13* *Enter* acts as *Right Shift* when held
14* On either **LOWER** or **RAISE** layers, tapping *Shift* will toggle *Caps Lock*, hold for Shift.
15* Bottom left key is *Hyper* (Shift+Control+Option+Command) which I use to map global shortcuts in macOS.
16 * Holding *Esc* will also act as Hyper.
17* **ADJUST** Layer
18 * Make command for compiling keyboard firmmware, a Reset key, and Debug toggle.
19 * Mission Control, Launchpad, and Sleep Display macOS macros
20 * Alt-Gui swapping
diff --git a/layouts/community/ortho_4x12/brandonschlack/rules.mk b/layouts/community/ortho_4x12/brandonschlack/rules.mk
new file mode 100644
index 000000000..e36b073d2
--- /dev/null
+++ b/layouts/community/ortho_4x12/brandonschlack/rules.mk
@@ -0,0 +1,10 @@
1ifeq ($(strip $(KEYBOARD)), planck/rev6)
2 SRC += muse.c
3endif
4
5MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
6BACKLIGHT_ENABLE = no # No backlights installed
7
8ifeq ($(strip $(KEYBOARD)), jnao)
9 BOOTMAGIC_ENABLE = lite
10endif
diff --git a/layouts/community/ortho_5x12/brandonschlack/config.h b/layouts/community/ortho_5x12/brandonschlack/config.h
new file mode 100644
index 000000000..996829736
--- /dev/null
+++ b/layouts/community/ortho_5x12/brandonschlack/config.h
@@ -0,0 +1,55 @@
1/* Copyright 2020 Brandon Schlack
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#ifdef KEYBOARD_preonic_rev3
19#ifdef AUDIO_ENABLE
20 #define STARTUP_SONG SONG(PREONIC_SOUND)
21 // #define STARTUP_SONG SONG(NO_SOUND)
22
23 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND) \
24 }
25#endif
26
27#define MUSIC_MASK (keycode != KC_NO)
28
29/*
30 * MIDI options
31 */
32
33/* Prevent use of disabled MIDI features in the keymap */
34//#define MIDI_ENABLE_STRICT 1
35
36/* enable basic MIDI features:
37 - MIDI notes can be sent when in Music mode is on
38*/
39
40#define MIDI_BASIC
41
42/* enable advanced MIDI features:
43 - MIDI notes can be added to the keymap
44 - Octave shift and transpose
45 - Virtual sustain, portamento, and modulation wheel
46 - etc.
47*/
48//#define MIDI_ADVANCED
49
50/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
51//#define MIDI_TONE_KEYCODE_OCTAVES 2
52
53// Most tactile encoders have detents every 4 stages
54#define ENCODER_RESOLUTION 4
55#endif
diff --git a/layouts/community/ortho_5x12/brandonschlack/keymap.c b/layouts/community/ortho_5x12/brandonschlack/keymap.c
new file mode 100644
index 000000000..4d7b7483a
--- /dev/null
+++ b/layouts/community/ortho_5x12/brandonschlack/keymap.c
@@ -0,0 +1,214 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#ifdef KEYBOARD_preonic_rev3
18 #include "muse.h"
19#endif
20#include "brandonschlack.h"
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23
24/* Qwerty */
25[_BASE] = LAYOUT_ortho_5x12( \
26// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
27 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \
28// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
29 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
30// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
31 HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
32// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
33 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \
34// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
35 MCO_LYR, KC_LCTL, KC_LOPT, KC_LCMD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
36// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
37),
38
39/* Lower */
40[_LOWER] = LAYOUT_ortho_5x12( \
41// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
42 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
43// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
44 KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELT, \
45// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
46 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, \
47// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
48 SF_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, \
49// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
50 _______, _______, _______, _______, _______, KC_MUTE, KC_MUTE, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT \
51// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
52),
53
54/* Raise */
55[_RAISE] = LAYOUT_ortho_5x12( \
56// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
57 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, \
58// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
59 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, \
60// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
61 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, \
62// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
63 SF_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, \
64// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
65 _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT \
66// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
67),
68
69/* Function */
70[_MACRO] = LAYOUT_ortho_5x12( \
71// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
72 _______, _______, _______, _______, _______, _______, _______, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, MC_SLPD, \
73// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
75// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
76 _______, _______, _______, _______, _______, _______, _______, MC_BACK, MC_FWRD, PRV_TAB, NXT_TAB, NXT_WIN, \
77// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
78 _______, _______, _______, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, \
79// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
80 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
81// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
82),
83
84/* Adjust (Lower + Raise) */
85[_ADJUST] = LAYOUT_ortho_5x12( \
86// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
87 KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MC_SLPD, \
88// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
89 QM_MAKE, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, \
90// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
91 QM_FLSH, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \
92// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
93 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_RTHM,RGB_THM, _______, _______, _______, \
94// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
95 EEP_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
96// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
97)
98
99
100};
101
102layer_state_t layer_state_set_keymap(layer_state_t state) {
103 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
104 return state;
105}
106
107#ifdef KEYBOARD_preonic_rev3
108#ifdef AUDIO_ENABLE
109 float plover_song[][2] = SONG(PLOVER_SOUND);
110 float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
111#endif
112
113bool muse_mode = false;
114uint8_t last_muse_note = 0;
115uint16_t muse_counter = 0;
116uint8_t muse_offset = 70;
117uint16_t muse_tempo = 50;
118
119void encoder_update_keymap(uint8_t index, bool clockwise) {
120 if (muse_mode) {
121 if (IS_LAYER_ON(_RAISE)) {
122 if (clockwise) {
123 muse_offset++;
124 } else {
125 muse_offset--;
126 }
127 } else {
128 if (clockwise) {
129 muse_tempo+=1;
130 } else {
131 muse_tempo-=1;
132 }
133 }
134 } else {
135 if (clockwise) {
136 #ifdef MOUSEKEY_ENABLE
137 tap_code(MC_WH_U);
138 #else
139 tap_code(KC_VOLU);
140 #endif
141 } else {
142 #ifdef MOUSEKEY_ENABLE
143 tap_code(MC_WH_D);
144 #else
145 tap_code(KC_VOLD);
146 #endif
147 }
148 }
149}
150
151void dip_switch_update_user(uint8_t index, bool active) {
152 switch (index) {
153 case 0: {
154#ifdef AUDIO_ENABLE
155 static bool play_sound = false;
156#endif
157 if (active) {
158#ifdef AUDIO_ENABLE
159 if (play_sound) { PLAY_SONG(plover_song); }
160#endif
161 layer_on(_ADJUST);
162 } else {
163#ifdef AUDIO_ENABLE
164 if (play_sound) { PLAY_SONG(plover_gb_song); }
165#endif
166 layer_off(_ADJUST);
167 }
168#ifdef AUDIO_ENABLE
169 play_sound = true;
170#endif
171 break;
172 }
173 case 1:
174 if (active) {
175 muse_mode = true;
176 } else {
177 muse_mode = false;
178 }
179 }
180}
181
182
183void matrix_scan_keymap(void) {
184#ifdef AUDIO_ENABLE
185 if (muse_mode) {
186 if (muse_counter == 0) {
187 uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
188 if (muse_note != last_muse_note) {
189 stop_note(compute_freq_for_midi_note(last_muse_note));
190 play_note(compute_freq_for_midi_note(muse_note), 0xF);
191 last_muse_note = muse_note;
192 }
193 }
194 muse_counter = (muse_counter + 1) % muse_tempo;
195 } else {
196 if (muse_counter) {
197 stop_all_notes();
198 muse_counter = 0;
199 }
200 }
201#endif
202}
203
204bool music_mask_user(uint16_t keycode) {
205 switch (keycode) {
206 case RAISE:
207 case LOWER:
208 case MCO_LYR:
209 return false;
210 default:
211 return true;
212 }
213}
214#endif
diff --git a/layouts/community/ortho_5x12/brandonschlack/readme.md b/layouts/community/ortho_5x12/brandonschlack/readme.md
new file mode 100644
index 000000000..787fbb820
--- /dev/null
+++ b/layouts/community/ortho_5x12/brandonschlack/readme.md
@@ -0,0 +1,19 @@
1# brandonschlack's 5x12 Ortho Keymap
2
3This layout takes inspiration from the Preonic and JNAO. It is macOS-centric, with Colemak and DVORAK removed as I don't use them.
4
5## Keyboards Using This Layout
6
7* [Preonic](https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck)
8* [JNAO](https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck) (FORCE_LAYOUT=ortho_5x12)
9
10## Features
11
12* *Enter* acts as *Right Shift* when held
13* On either **LOWER** or **RAISE** layers, tapping *Shift* will toggle *Caps Lock*, hold for Shift.
14* Bottom left key is *Hyper* (Shift+Control+Option+Command) which I use to map global shortcuts in macOS.
15 * Holding *Esc* will also act as Hyper.
16* **ADJUST** Layer
17 * Make command for compiling keyboard firmmware, a Reset key, and Debug toggle.
18 * Mission Control, Launchpad, and Sleep Display macOS macros
19 * Alt-Gui swapping
diff --git a/layouts/community/ortho_5x12/brandonschlack/rules.mk b/layouts/community/ortho_5x12/brandonschlack/rules.mk
new file mode 100644
index 000000000..dacfc28b2
--- /dev/null
+++ b/layouts/community/ortho_5x12/brandonschlack/rules.mk
@@ -0,0 +1,10 @@
1ifeq ($(strip $(KEYBOARD)), preonic/rev3)
2 SRC += muse.c
3endif
4
5MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
6BACKLIGHT_ENABLE = no # No backlights installed
7
8ifeq ($(strip $(KEYBOARD)), jnao)
9 BOOTMAGIC_ENABLE = lite
10endif
diff --git a/layouts/community/tkl_ansi/brandonschlack/config.h b/layouts/community/tkl_ansi/brandonschlack/config.h
new file mode 100644
index 000000000..df2965404
--- /dev/null
+++ b/layouts/community/tkl_ansi/brandonschlack/config.h
@@ -0,0 +1,20 @@
1/* Copyright 2020 Brandon Schlack
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// Explicit RGB Animation Mode Include
19#undef RGBLIGHT_ANIMATIONS
20#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
diff --git a/layouts/community/tkl_ansi/brandonschlack/keymap.c b/layouts/community/tkl_ansi/brandonschlack/keymap.c
new file mode 100644
index 000000000..6f13d33b4
--- /dev/null
+++ b/layouts/community/tkl_ansi/brandonschlack/keymap.c
@@ -0,0 +1,102 @@
1/* Copyright 2019 Brandon Schlack
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 QMK_KEYBOARD_H
17#include "brandonschlack.h"
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20/* Base Layer
21 * ┌───┬───┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┐
22 * │Esc│ │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │ F9│F10│F11│F12│ │F13│F14│F15│
23 * ├───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┤
24 * ├───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┤
25 * │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│ │Ins│Hom│PgU│
26 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
27 * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│ │Del│End│PgD│
28 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┤
29 * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│ │
30 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ │
31 * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ │ Up│ │
32 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┤
33 * │Ctrl│ Opt│ Cmd│ Space │Cmd │Opt │Fn │Ctrl│ │Lef│Dow│Rig│
34 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┴─┴───┴───┴───┘
35 */
36[_BASE] = LAYOUT_tkl_ansi( \
37 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, \
38 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
39 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
40 HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
41 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
42 KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, RWD_CMD, FFD_OPT, PLY_FN1, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
43),
44/* Function Layer
45 * ┌───┬───┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┐
46 * │Mke│ │BrD│BrU│Msn│LHP│ │RV-│RV+│ │ │ │ │ │ │ │ │ │ │Mut│
47 * ├───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┤
48 * ├───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┤
49 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ Del │ │Ply│Slp│VlU│
50 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
51 * │RMod │RH+│RS+│RV+│AS+│ │ │ │ │ │ │ │ │ │ │Prv│Nxt│VlD│
52 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┤
53 * │RTgl │RH-│RS-│RV-│AS-│ │ │ │ │ │ │ │ │ │
54 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ │
55 * │ │LYR│Thm│ │ │RST│ │ │ │ │ │ │ │PgU│ │
56 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┤
57 * │ │ │ │ │ │ │ │ │ │Hom│PgD│End│
58 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┴─┴───┴───┴───┘
59 */
60[_FN1] = LAYOUT_tkl_ansi( \
61 QM_MAKE, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, \
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELT, KC_MPLY, MC_SLPD, KC_VOLU, \
63 RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, \
64 RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, \
65 _______, RGB_LYR, RGB_THM, _______, _______, RESET, _______, _______, _______, _______, _______, _______, KC_PGUP, \
66 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \
67)
68/* Blank Template
69 * ┌───┬───┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┐
70 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
71 * ├───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┤
72 * ├───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┤
73 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
74 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
75 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
76 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┤
77 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
78 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ │
79 * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
80 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┤
81 * │ │ │ │ │ │ │ │ │ │ │ │ │
82 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┴─┴───┴───┴───┘
83 */
84/*
85[BLANK] = LAYOUT_tkl_ansi( \
86 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
87 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
88 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
89 _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
90 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
91 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
92)
93*/
94};
95
96bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
97 return true;
98}
99
100void led_set_user(uint8_t usb_led) {
101
102}
diff --git a/layouts/community/tkl_ansi/brandonschlack/readme.md b/layouts/community/tkl_ansi/brandonschlack/readme.md
new file mode 100644
index 000000000..e8885a13c
--- /dev/null
+++ b/layouts/community/tkl_ansi/brandonschlack/readme.md
@@ -0,0 +1,55 @@
1# brandonschlack's TKL ANSI layout
2
3A mostly typical Mac setup, with some personal QMK touches.
4
5## Base Layer
6
7The base layer has a standard macOS modifier layout, with **F13-F15** in the F row, in place of **Print Screen**, **Scroll Lock**, and **Pause/Break**.
8
9### [Mod-Taps](https://docs.qmk.fm/#/feature_advanced_keycodes?id=mod-tap)
10
11* Hyper Caps Lock
12 * Hold **Caps Lock** for '**Hyper**' (**Shift**+**Control**+**Option**+**Command**). I use it for mapping global shortcuts for apps.
13 * Tapping **Caps Lock** functions normally
14* Media controls mapped to Right Modifiers
15 * **Right Command** for **Prev Track**
16 * **Right Option** for **Next Track**
17 * **Fn** for **Play/Pause**
18
19## Function Layer
20
21The Function layer is a mix of [Apple's *Fn* shortcuts](https://support.apple.com/en-us/HT201236), [WASD Keyboard's Media shortcuts](https://codekeyboards.com/#multimedia), and some QMK functionality.
22
23### [Apple's *Fn* shortcuts](https://support.apple.com/en-us/HT201236)
24
25* **Home/Page Down/Page Up/End** as **Fn+Left/Down/Up/Right**
26* **Foward Delete** as **Fn+Backspace**
27* **Display Brightness Down/Up** as **Fn+F1/F2**
28* **Misson Control** (*KC_FIND, but use [Karabiner-Elements](https://pqrs.org/osx/karabiner/index.html) as find -> mission_control*) as **Fn+F3**
29* **Launchpad** (*KC_MENU, but use [Karabiner-Elements](https://pqrs.org/osx/karabiner/index.html) as menu -> launchpad*) as **Fn+F4**
30* Keyboard Illumination Down/Up used as **RGB Underglow Value Decrease/Increase** on **Fn+F5/F6**
31
32### [WASD Keyboard's Media shortcuts](https://codekeyboards.com/#multimedia)
33
34* **Play/Pause** as **Fn+Insert**
35* **Prev/Next Track** as **Fn+Delete/End**
36* **Volume Up/Down** as **Fn+Page Up/Page Down**
37* **Volume Mute** as **Fn+F15**
38
39### Personal & QMK shortcuts
40
41* **Sleep Display** (Shift+Control+Power) as **Fn+Home**.
42* **QMK Make** as **Fn+Esc**. Sends make command to command line. Holding **Shift** will also append `:flash` target and put keyboard into bootloader.
43* **Reset** as **Fn+B**
44
45### RGB Controls
46
47* **RGB Toggle** as **Fn+Caps Lock**
48* **RGB Hue Increase/Decrease** as **Fn+Q/A**
49* **RGB Saturation Increase/Decrease** as **Fn+W/S**
50* **RGB Value Increase/Decrease** as **Fn+E/D**
51* **RGB Mode Next/Previous** as **Fn+Tab/Shift+Tab**
52* **RGB Toggle Layer Indication** as **Fn+Z**
53 * Changes RGB Color with Layer change (*uses custom RGB_THEME*).
54* **RGB Cycle Next Theme** as **Fn+X**
55
diff --git a/layouts/community/tkl_ansi/brandonschlack/rules.mk b/layouts/community/tkl_ansi/brandonschlack/rules.mk
new file mode 100644
index 000000000..5ce3c8ee4
--- /dev/null
+++ b/layouts/community/tkl_ansi/brandonschlack/rules.mk
@@ -0,0 +1,4 @@
1# Build Options
2CONSOLE_ENABLE = yes # Enable Console for Debugging
3MOUSEKEY_ENABLE = no # Don't need Mouse Keys
4BACKLIGHT_ENABLE = no # Backlights not installed
diff --git a/users/brandonschlack/brandonschlack.c b/users/brandonschlack/brandonschlack.c
new file mode 100644
index 000000000..1e52bd645
--- /dev/null
+++ b/users/brandonschlack/brandonschlack.c
@@ -0,0 +1,214 @@
1/* Copyright 2020 Brandon Schlack
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 "brandonschlack.h"
17
18user_config_t user_config;
19#ifdef STOPLIGHT_LED
20static stoplight_led_t stoplight_led;
21#endif
22
23/**
24 * Resets user config in EEPROM
25 *
26 * Default is use rgb for layer indication
27 */
28void eeconfig_init_user(void) {
29 user_config.raw = 0;
30 user_config.rgb_layer_change = true;
31 user_config.rgb_theme = 0;
32 eeconfig_update_user(user_config.raw);
33}
34
35__attribute__((weak))
36void matrix_init_keymap(void){ }
37
38void matrix_init_user(void) {
39 matrix_init_keymap();
40}
41
42__attribute__((weak))
43void keyboard_post_init_keymap(void){ }
44
45/**
46 * Reads user config from EEPROM,
47 * calls RGB init if RGBs enabled
48 */
49void keyboard_post_init_user(void){
50 // Read the user config from EEPROM
51 user_config.raw = eeconfig_read_user();
52 // Do Stoplight Animation if enabled
53#ifdef STOPLIGHT_LED
54 led_stoplight_start();
55#endif
56 // Do RGB things if RGBs enabled
57#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
58 keyboard_post_init_rgb();
59#endif
60 keyboard_post_init_keymap();
61}
62
63__attribute__ ((weak))
64void shutdown_keymap(void) {}
65
66/**
67 * On shutdown,
68 * If RGBs enabled,
69 * then set RGB color to Red
70 */
71void shutdown_user (void) {
72#ifdef RGBLIGHT_ENABLE
73 rgblight_enable_noeeprom();
74 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
75 rgblight_sethsv_noeeprom(0, 255, 127);
76#endif // RGBLIGHT_ENABLE
77#ifdef RGB_MATRIX_ENABLE
78 rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 );
79#endif //RGB_MATRIX_ENABLE
80 shutdown_keymap();
81}
82
83__attribute__ ((weak))
84void suspend_power_down_keymap(void) {}
85
86/**
87 * Set rgb_matrix suspend state to true if not already
88 */
89void suspend_power_down_user(void) {
90#ifdef RGB_MATRIX_ENABLE
91 if (!g_suspend_state) {
92 rgb_matrix_set_suspend_state(true);
93 }
94#endif //RGB_MATRIX_ENABLE
95 suspend_power_down_keymap();
96}
97
98__attribute__ ((weak))
99void suspend_wakeup_init_keymap(void) {}
100
101/**
102 * Set rgb_matrix suspend state to false if not already
103 */
104void suspend_wakeup_init_user(void) {
105#ifdef RGB_MATRIX_ENABLE
106 if (g_suspend_state) {
107 rgb_matrix_set_suspend_state(false);
108 }
109#endif //RGB_MATRIX_ENABLE
110 suspend_wakeup_init_keymap();
111}
112
113__attribute__ ((weak))
114void matrix_scan_keymap(void) {}
115
116/**
117 * Checks for Super CMD↯TAB
118 */
119void matrix_scan_user(void) {
120 matrix_scan_cmd_tab();
121#ifdef STOPLIGHT_LED
122 matrix_scan_led_stoplight();
123#endif
124 matrix_scan_keymap();
125}
126
127__attribute__ ((weak))
128layer_state_t default_layer_state_set_keymap(layer_state_t state) {
129 return state;
130}
131
132/**
133 * For macropads, if a new default layer is set from DF()
134 * then automatically set that layer with layer_move()
135 */
136layer_state_t default_layer_state_set_user(layer_state_t state) {
137#if defined(IS_MACROPAD)
138 layer_move(get_highest_layer(state));
139#endif
140 return default_layer_state_set_keymap(state);
141}
142
143__attribute__ ((weak))
144layer_state_t layer_state_set_keymap(layer_state_t state) {
145 return state;
146}
147
148/**
149 * Do RGB things (like layer indication) on layer change
150 */
151layer_state_t layer_state_set_user(layer_state_t state) {
152#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
153 state = layer_state_set_rgb(state);
154#endif // RGBLIGHT_ENABLE
155 return layer_state_set_keymap(state);
156}
157
158__attribute__((weak)) bool led_update_keymap(led_t led_state) { return true; }
159
160bool led_update_user(led_t led_state) {
161#ifdef STOPLIGHT_LED
162 if (stoplight_led.is_active) {
163 return false;
164 }
165#endif
166 return led_update_keymap(led_state);
167}
168
169#ifdef STOPLIGHT_LED
170void led_stoplight_start(void) {
171 writePin(TOP_LED, LED_ON(false));
172 writePin(MIDDLE_LED, LED_ON(false));
173 writePin(BOTTOM_LED, LED_ON(false));
174
175 stoplight_led.is_active = true;
176 stoplight_led.timer = timer_read();
177};
178
179void led_stoplight_set(pin_t pin) {
180 writePin(pin, LED_ON(true));
181};
182
183void led_stoplight_end(void) {
184 // Reset timer and status variables
185 stoplight_led.is_active = false;
186 stoplight_led.index = 0;
187 stoplight_led.timer = 0;
188 led_update_kb(host_keyboard_led_state());
189};
190
191void matrix_scan_led_stoplight(void) {
192 if (stoplight_led.is_active) {
193 if (timer_elapsed(stoplight_led.timer) > (1000 * (stoplight_led.index + 1))) {
194 switch (stoplight_led.index){
195 case 0:
196 led_stoplight_set(TOP_LED);
197 stoplight_led.index++;
198 break;
199 case 1:
200 led_stoplight_set(MIDDLE_LED);
201 stoplight_led.index++;
202 break;
203 case 2:
204 led_stoplight_set(BOTTOM_LED);
205 stoplight_led.index++;
206 break;
207 default:
208 led_stoplight_end();
209 break;
210 }
211 }
212 }
213};
214#endif
diff --git a/users/brandonschlack/brandonschlack.h b/users/brandonschlack/brandonschlack.h
new file mode 100644
index 000000000..d7dbc0ea4
--- /dev/null
+++ b/users/brandonschlack/brandonschlack.h
@@ -0,0 +1,83 @@
1/* Copyright 2020 Brandon Schlack
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 "quantum.h"
19#include "version.h"
20#include "eeprom.h"
21#include "process_records.h"
22#ifdef TAP_DANCE_ENABLE
23# include "tap_dances.h"
24#endif // TAP_DANCE_ENABLE
25#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
26# include "rgb_bs.h"
27#endif
28
29/* TODO Layer Names */
30enum bs_layers {
31 _BASE = 0,
32 _M1 = 1,
33 _M2 = 2,
34 _M3 = 3,
35 _M4 = 4,
36 _FN1 = 5,
37 _M1_FN1 = 6,
38 _M2_FN1 = 7,
39 _M3_FN1 = 8,
40 _M4_FN1 = 9,
41 _FN2 = 10,
42 _M1_FN2 = 11,
43 _M2_FN2 = 12,
44 _M3_FN2 = 13,
45 _M4_FN2 = 14,
46 _ADJUST = 15 // 15: Change keyboard settings
47};
48
49#define _LOWER _FN1
50#define _RAISE _FN2
51
52/* TODO User EECONFIG */
53typedef union {
54 uint32_t raw;
55 struct {
56 bool rgb_layer_change :1;
57 uint8_t rgb_theme :4;
58 };
59} user_config_t;
60extern user_config_t user_config;
61
62void matrix_init_keymap(void);
63void keyboard_post_init_keymap(void);
64void shutdown_keymap(void);
65void suspend_power_down_keymap(void);
66void suspend_wakeup_init_keymap(void);
67void matrix_scan_keymap(void);
68layer_state_t default_layer_state_set_keymap(layer_state_t state);
69layer_state_t layer_state_set_keymap(layer_state_t state);
70bool led_update_keymap(led_t led_state);
71
72#ifdef STOPLIGHT_LED
73typedef struct {
74 bool is_active :1;
75 uint8_t index :7;
76 uint16_t timer :16;
77} stoplight_led_t;
78
79void led_stoplight_start(void);
80void led_stoplight_set(pin_t pin);
81void led_stoplight_end(void);
82void matrix_scan_led_stoplight(void);
83#endif
diff --git a/users/brandonschlack/config.h b/users/brandonschlack/config.h
new file mode 100644
index 000000000..8f09adef3
--- /dev/null
+++ b/users/brandonschlack/config.h
@@ -0,0 +1,55 @@
1/* Copyright 2020 Brandon Schlack
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 TAPPING_TOGGLE 2
19#define TAPPING_TERM 200
20#define PERMISSIVE_HOLD
21#define TAP_HOLD_CAPS_DELAY 200
22
23#ifdef RGBLIGHT_ENABLE
24# define RGBLIGHT_SLEEP
25#endif
26
27#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) && !defined(RGBLIGHT_LAYERS)
28# define RGB_THEME_ENABLE
29#endif
30
31#ifdef RGB_THEME_ENABLE
32# define DISABLE_RGB_THEME_JAMON
33# define DISABLE_RGB_THEME_OBLIQUE
34#endif
35
36#ifdef ENCODER_ENABLE
37# define TAP_CODE_DELAY 10
38#else
39# define TAP_CODE_DELAY 5
40#endif
41
42/* Disable unused and unneeded features to reduce on firmware size */
43#ifndef NO_ACTION_MACRO
44# define NO_ACTION_MACRO
45#endif
46#ifndef NO_ACTION_FUNCTION
47# define NO_ACTION_FUNCTION
48#endif
49
50#ifdef LOCKING_SUPPORT_ENABLE
51# undef LOCKING_SUPPORT_ENABLE
52#endif
53#ifdef LOCKING_RESYNC_ENABLE
54# undef LOCKING_RESYNC_ENABLE
55#endif
diff --git a/users/brandonschlack/process_records.c b/users/brandonschlack/process_records.c
new file mode 100644
index 000000000..dfd427bdc
--- /dev/null
+++ b/users/brandonschlack/process_records.c
@@ -0,0 +1,172 @@
1/* Copyright 2020 Brandon Schlack
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 "brandonschlack.h"
17
18// Super CMD↯TAB
19bool is_cmd_tab_active = false;
20uint16_t cmd_tab_timer = 0;
21
22__attribute__ ((weak))
23bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
24 return true;
25}
26
27// Consolidated Macros
28bool process_record_user(uint16_t keycode, keyrecord_t *record) {
29 switch (keycode) {
30 case QM_MAKE: // Sends 'qmk compile' or 'qmk flash'
31 if (record->event.pressed) {
32 bool flash = false;
33 // If is a keyboard and auto-flash is not set in rules.mk,
34 // then Shift will trigger the flash command
35 #if !defined(FLASH_BOOTLOADER) && !defined(IS_MACROPAD)
36 uint8_t temp_mod = get_mods();
37 uint8_t temp_osm = get_oneshot_mods();
38 clear_mods();
39 clear_oneshot_mods();
40 if ( (temp_mod | temp_osm) & MOD_MASK_SHIFT )
41 #endif
42 {
43 flash = true;
44 }
45 send_make_command(flash);
46 }
47 break;
48 case QM_FLSH: // Sends flash command instead of compile
49 if (record->event.pressed) {
50 clear_mods();
51 clear_oneshot_mods();
52 send_make_command(true);
53 }
54 break;
55 case QM_VRSN: // Prints firmware version
56 if (record->event.pressed) {
57 SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
58 }
59 break;
60 case QM_KYBD: // Prints keyboard path
61 if (record->event.pressed) {
62 SEND_STRING("keyboards/" QMK_KEYBOARD "/");
63 }
64 break;
65 case QM_KYMP: // Prints keymap path
66 if (record->event.pressed) {
67 SEND_STRING("keyboards/" QMK_KEYBOARD "/keymaps/" QMK_KEYMAP "/keymap.c");
68 }
69 break;
70 case CMD_TAB: // Super CMD↯TAB
71 if (record->event.pressed) {
72 if (!is_cmd_tab_active) {
73 is_cmd_tab_active = true;
74 register_code(KC_LGUI);
75 }
76 cmd_tab_timer = timer_read();
77 register_code(KC_TAB);
78 } else {
79 unregister_code(KC_TAB);
80 }
81 break;
82 #if defined(RGB_THEME_ENABLE)
83 case RGB_LYR:
84 if (record->event.pressed) {
85 user_config.rgb_layer_change ^= 1;
86 dprintf("rgb layer change [EEPROM]: %u\n", user_config.rgb_layer_change);
87 eeconfig_update_user(user_config.raw);
88 if (user_config.rgb_layer_change) {
89 layer_state_set(layer_state);
90 }
91 }
92 break;
93 case RGB_HUI ... RGB_SAD:
94 if (record->event.pressed) {
95 if (user_config.rgb_layer_change) {
96 user_config.rgb_layer_change = false;
97 dprintf("rgb layer change [EEPROM]: %u\n", user_config.rgb_layer_change);
98 eeconfig_update_user(user_config.raw);
99 }
100 }
101 break;
102 case RGB_THEME_FORWARD:
103 if (record->event.pressed) {
104 uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT));
105 if(shifted) {
106 rgb_theme_step_reverse();
107 } else {
108 rgb_theme_step();
109 }
110 layer_state_set(layer_state);
111 }
112 break;
113 case RGB_THEME_REVERSE:
114 if (record->event.pressed) {
115 uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT));
116 if(shifted) {
117 rgb_theme_step();
118 } else {
119 rgb_theme_step_reverse();
120 }
121 layer_state_set(layer_state);
122 }
123 break;
124 #endif
125 }
126 return process_record_keymap(keycode, record);
127}
128
129// Super CMD↯TAB
130void matrix_scan_cmd_tab(void) {
131 if (is_cmd_tab_active) {
132 if (timer_elapsed(cmd_tab_timer) > 500) {
133 unregister_code(KC_LGUI);
134 is_cmd_tab_active = false;
135 }
136 }
137}
138
139/**
140 * Send Make Command
141 *
142 * Sends 'qmk compile -kb keyboard -km keymap' command to compile firmware
143 * Uses 'qmk flash' and resets keyboard, if flash_bootloader set to true
144 * Sends CTPC and/or FORCE_LAYOUT parameters if built with those options
145 */
146void send_make_command(bool flash_bootloader) {
147#ifdef FORCE_LAYOUT // Add layout string if built with FORCE_LAYOUT
148 SEND_STRING("FORCE_LAYOUT=" FORCE_LAYOUT " ");
149#endif
150#ifdef CONVERT_TO_PROTON_C // Add CTPC if built with CONVERT_TO_PROTON_C
151 SEND_STRING("CTPC=yes ");
152#endif
153 SEND_STRING("qmk ");
154 if (flash_bootloader) {
155#ifndef KEYBOARD_massdrop // Don't run flash for Massdrop boards
156 SEND_STRING("flash ");
157 } else {
158#endif
159 SEND_STRING("compile ");
160 }
161 SEND_STRING("-kb " QMK_KEYBOARD " ");
162 SEND_STRING("-km " QMK_KEYMAP);
163 if (flash_bootloader) {
164#if defined(KEYBOARD_massdrop) // only run for Massdrop boards
165 SEND_STRING(" && mdlflash " QMK_KEYBOARD " " QMK_KEYMAP);
166#endif
167 }
168 SEND_STRING(SS_TAP(X_ENTER));
169 if (flash_bootloader) {
170 reset_keyboard();
171 }
172}
diff --git a/users/brandonschlack/process_records.h b/users/brandonschlack/process_records.h
new file mode 100644
index 000000000..057233fb0
--- /dev/null
+++ b/users/brandonschlack/process_records.h
@@ -0,0 +1,152 @@
1/* Copyright 2020 Brandon Schlack
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#include "brandonschlack.h"
18
19// Macros
20enum custom_keycodes {
21 QM_MAKE = SAFE_RANGE,
22 QM_FLSH,
23 QM_VRSN,
24 QM_KYBD,
25 QM_KYMP,
26 CMD_TAB,
27 RGB_LYR,
28 RGB_THEME_FORWARD,
29 RGB_THEME_REVERSE,
30 KEYMAP_SAFE_RANGE
31};
32
33bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
34void matrix_scan_cmd_tab(void);
35
36/**
37 * QMK Defines
38 * Some meta aliases for QMK features such as Mod-Taps
39 * and for cleaner looking Layer Toggles
40 */
41/* Control Mod-Tap */
42#define CTL_ESC CTL_T(KC_ESC) // Hold Escape for Control
43#define CTL_TAB CTL_T(KC_TAB) // Hold Tab for Control
44#define CTL_CAP CTL_T(KC_CAPS) // Hold Caps Lock for Control
45/* Command Mod-Tap */
46#define CMD_ESC CMD_T(KC_ESC) // Hold Escape for Command
47#define CMD_CAP CMD_T(KC_CAPS) // Hold Caps Lock for Command
48#define CMD_SPC CMD_T(KC_SPC) // Hold Space for Command
49/* Hyper Mod-Tap */
50#define HY_ESC ALL_T(KC_ESC) // Hold Escape for Hyper (Shift-Control-Option-Command)
51#define HY_TAB ALL_T(KC_TAB) // Hold Tab for Hyper (Shift-Control-Option-Command)
52#define HY_CAPS ALL_T(KC_CAPS) // Hold Caps Lock for Hyper (Shift-Control-Option-Command)
53/* Shift Mod-Tap */
54#define SF_CAPS LSFT_T(KC_CAPS) // Hold Caps Lock for Left Shift
55#define SFT_ENT RSFT_T(KC_ENT) // Hold Enter for Right Shift
56#define SF_SLSH RSFT_T(KC_SLSH) // Tap Right Shift for Slash (/)
57#define SF_BSLS RSFT_T(KC_BSLS) // Tap Right Shift for Back Slash (\)
58/* Layer Aliases */
59#define FN_LYR MO(_FN1) // Hold for FN Layer
60#define FN2_LYR MO(_FN2) // Hold for FN2 Layer
61#define LOWER MO(_LOWER) // Hold for LOWER Layer
62#define RAISE MO(_RAISE) // Hold for RAISE Layer
63#define TT_FN TT(_FN1) // Hold for FN Layer, or Double-Tap to Toggle
64#define TT_FN2 TT(_FN2) // Hold for FN2 Layer, or Double-Tap to Toggle
65#define TT_LWR TT(_LOWER) // Hold for LOWER Layer, or Double-Tap to Toggle
66#define TT_RAI TT(_RAISE) // Hold for RAISE Layer, or Double-Tap to Toggle
67#define SPC_LWR LT(_LOWER, KC_SPC) // Tap for Space, Hold for LOWER Layer
68#define SPC_RAI LT(_RAISE, KC_SPC) // Tap for Space, Hold for RAISE Layer
69#define SLH_LWR LT(_LOWER, KC_SLSH) // Tap for /, Hold for LOWER Layer
70#define BSL_LWR LT(_LOWER, KC_BSLS) // Tap for \, Hold for LOWER Layer
71#define MCO_LYR MO(_MACRO) // Hold for MACRO Layer
72#define TG_ADJT TG(_ADJUST) // Toggle ADJUST Layer
73#define TG_LGHT TG(_LIGHT) // Toggle LIGHT Layer
74/**
75 * Media Mod-Tap
76 * Use the Mod-Tap feature for easy media controls
77 * Used with >=65% layouts
78 */
79#define RWD_CMD RCMD_T(KC_MPRV) // Tap Right Command for Prev Track
80#define PLY_CMD RCMD_T(KC_MPLY) // Tap Right Command for Play/Pause
81#define FFD_OPT ROPT_T(KC_MNXT) // Tap Right Option for Next Track
82#define PLY_FN1 LT(_FN1, KC_MPLY) // Tap Fn for Play/Pause
83#define PLY_FN2 LT(_FN2, KC_MPLY) // Tap Fn2 for Play/Pause
84#define MUT_SFT RSFT_T(KC_MUTE) // Tap Right Shift for Mute
85/**
86 * Arrow Mod-Tap
87 * Use the Mod-Tap feature for arrow keys
88 * Mostly used for 40-60% layouts
89 */
90#define UP_RSFT RSFT_T(KC_UP) // Tap Right Shift for Up
91#define LFT_OPT ROPT_T(KC_LEFT) // Tap Right Option for Left
92#define LFT_CMD RCMD_T(KC_LEFT) // Tap Right Command for Left
93#define DWN_FN1 LT(1, KC_DOWN) // Tap Fn for Down
94#define DWN_LWR DWN_FN1 // Tap Lower for Down
95#define DWN_FN2 LT(2, KC_DOWN) // Tap Fn2 for Down
96#define DWN_RAI DWN_FN2 // Tap Raise for Down
97#define DWN_OPT ROPT_T(KC_DOWN) // Tap Right Option for Down
98#define RGT_SFT RSFT_T(KC_RGHT) // Tap Right Shift for Right
99#define RGT_OPT ROPT_T(KC_RGHT) // Tap Right Option for Right
100#define RGT_CTL RCTL_T(KC_RGHT) // Tap Right Ctrl for Right
101/**
102 * Nav Mod-Tap
103 * Use the Mod-Tap feature for nav keys (Home/End, Page Up/Down)
104 * Mostly used for 40-60% layouts, on a function layer
105 */
106#define PGU_SFT RSFT_T(KC_PGUP) // Tap Right Shift for Page Up
107#define HOM_OPT ROPT_T(KC_HOME) // Tap Right Option for Home
108#define HOM_CMD RCMD_T(KC_HOME) // Tap Right Command for Home
109#define PGD_OPT ROPT_T(KC_PGDN) // Tap Right Option for Page Down
110#define PGD_FN1 LT(1, KC_PGDN) // Tap Fn for Page Down
111#define PGD_LWR PGD_FN1 // Tap Lower for Page Down
112#define PGD_FN2 LT(2, KC_PGDN) // Tap Fn2 for Page Down
113#define PGD_RAI PGD_FN2 // Tap Raise for Page Down
114#define END_OPT ROPT_T(KC_END) // Tap Right Option for End
115#define END_CTL RCTL_T(KC_END) // Tap Right Control for End
116
117/**
118 * MacOS
119 * Common shortcuts used in macOS
120 * Reference: https://support.apple.com/en-us/HT201236
121 */
122#define MC_POWR KC_POWER // Power (KC_POWER)
123#define MC_SLEP LOPT(LCMD(KC_POWER)) // Sleep (Option-Command-Power)
124#define MC_SLPD LCTL(LSFT(KC_POWER)) // Sleep Display (Control-Shift-Power)
125#define MC_LOCK LCTL(LCMD(KC_Q)) // Lock Screen (Control-Command-Q)
126#define MC_MSSN KC_FIND // Mission Control: Configure karabiner for find -> mission_control
127#define MC_LHPD KC_MENU // Launchpad: Configure karabiner for menu -> launchpad
128#define MC_CMTB LCMD(KC_TAB) // Command-Tab
129#define MC_BACK LCMD(KC_LBRC) // Back (Command–Left Bracket)
130#define MC_FWRD LCMD(KC_RBRC) // Forward (Command–Right Bracket)
131#define CLS_TAB LCMD(KC_W) // Close Tab (Command–W)
132#define REO_TAB LSFT(LCMD(KC_T)) // Reopen Last Tab (Shift-Command-T)
133#define NXT_TAB LCTL(KC_TAB) // Next Tab (Control-Tab)
134#define PRV_TAB LSFT(LCTL(KC_TAB)) // Previous Tab (Shift-Control-Tab)
135#define NXT_WIN LCMD(KC_GRV) // Next Window (Control-Grave)
136#define PRV_WIN LCMD(KC_TILD) // Previous Window (Shift-Control-Grave)
137#define MC_PLYR LCMD(KC_F8) // Focuses current Media Player
138#define MC_UNDO LCMD(KC_Z) // Undo (Command-Z)
139#define MC_REDO LSFT(LCMD(KC_Z)) // Redo (Shift-Command-Z)
140#define OP_AFLL HYPR(KC_BSLS) // 1Password Autofill (Shift-Control-Option-Command-\)
141#define PX_AFLL LSFT(LOPT(KC_X)) // 1PasswordX Autofill (Shift-Option-X)
142// Reverse scrolling for using with macOS Natural Scrolling.
143#define MC_WH_U KC_WH_D // Mouse Wheel Up
144#define MC_WH_D KC_WH_U // Mouse Wheel Down
145#define MC_WH_L KC_WH_R // Mouse Wheel Left
146#define MC_WH_R KC_WH_L // Mouse Wheel Right
147
148// RGB Theme
149#define RGB_THM RGB_THEME_FORWARD // Cycle next RGB_THEME
150#define RGB_RTHM RGB_THEME_REVERSE // Cycle previous RGB_THEME
151
152void send_make_command(bool flash_bootloader);
diff --git a/users/brandonschlack/readme.md b/users/brandonschlack/readme.md
new file mode 100644
index 000000000..84f216f9f
--- /dev/null
+++ b/users/brandonschlack/readme.md
@@ -0,0 +1,48 @@
1# Overview
2
3My QMK home. I feel as though I stand on the shoulders of giants, for a lot of my code here is borrowed and adapted from so many contributors here, and that I hope my code here can help or inspire others.
4
5## Layers, Handlers, and Macros
6### Layers
7
8I have some predefined layer names for keyboards:
9* **_BASE**: Default Layer, QWERTY layout.
10* **_FN1**: Function Layer for 60% and above, and additional macros and shortcuts on 50% and below.
11* **_LOWER** and **_RAISE**: Function layers for 40%
12
13and macropads:
14* **_REEDER**: Shortcuts for [Reeder.app](https://reederapp.com/), my RSS feed reader
15* **_MEDIA**: Media controls
16* **_NAVI**: Navigation macros, for changing tabs and scrolling
17* **_KARABINER**: Generic macro keys, meant to be customized per app with [Karabiner](https://pqrs.org/osx/karabiner/)
18
19#### Protected Layers
20I have some named "protected" layers, meant to be at the end of the layer list for changing keyboard settings and features.
21
22* **KEYMAP_LAYERS**: Add additional layers in keymap.
23* **_AUDIO**: Audio feature controls.
24* **_LIGHT**: RGB Light/Matrix feature controls.
25* **_ADJUST**: General keyboard settings and toggles. Can also contain RGB and Audio controls on larger boards that don't need and extra layer for those controls.
26
27### EEPROM User Config
28
29I have a custom userspace config implemented to save settings on the board to persist across shutdowns. I currently store:
30
31* rgb_layer_change - a toggle for using RGB themes for layer indication
32* rgb_theme - a pointer to the currently set RGB Theme
33
34### Process Handlers
35
36### Keycode Aliases
37
38I am a macOS user and so a lot of my aliases are
39
40### Macros
41
42
43## Tap Dances
44
45### Tap Dance Trigger Layer
46
47## RGB
48### RGB Theme
diff --git a/users/brandonschlack/rgb_bs.c b/users/brandonschlack/rgb_bs.c
new file mode 100644
index 000000000..1abf785b4
--- /dev/null
+++ b/users/brandonschlack/rgb_bs.c
@@ -0,0 +1,146 @@
1/* Copyright 2020 Brandon Schlack
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 "brandonschlack.h"
17#include "rgb_theme.h"
18#include "rgb_bs.h"
19
20#if defined(RGBLIGHT_ENABLE)
21extern rgblight_config_t rgblight_config;
22#elif defined(RGB_MATRIX_ENABLE)
23extern rgb_config_t rgb_matrix_config;
24extern bool g_suspend_state;
25extern led_config_t g_led_config;
26#endif
27
28#if defined(RGB_THEME_ENABLE)
29// Should be rgb_theme.c
30#define RGB_THEME(name) const rgb_theme_t RGB_##name
31#define RGB_THEME_IMPLS
32#include "rgb_theme_user.inc"
33#undef RGB_THEME_IMPLS
34#undef RGB_THEME
35
36#define RGB_THEME(name) [RGB_THEME_##name] = &RGB_##name,
37const rgb_theme_t *themes[] = {
38 #include "rgb_theme_user.inc"
39};
40#undef RGB_THEME
41
42// Userspace loose colors
43rgb_theme_color_t default_adjust = { HSV_SPRINGGREEN };
44#endif
45
46void keyboard_post_init_rgb(void) {
47 layer_state_set_user(layer_state);
48}
49
50#if defined(RGB_THEME_ENABLE)
51void set_rgb_theme(uint8_t index) {
52 if (!user_config.rgb_layer_change) {
53 user_config.rgb_layer_change = true;
54 }
55 user_config.rgb_theme = index;
56 dprintf("rgb theme [EEPROM]: %u\n", user_config.rgb_theme);
57 eeconfig_update_user(user_config.raw);
58}
59
60rgb_theme_t get_rgb_theme(void) {
61 return *themes[user_config.rgb_theme];
62}
63
64void rgb_theme_step(void) {
65 uint8_t current = user_config.rgb_theme;
66 current = (current + 1) % RGB_THEME_MAX;
67 set_rgb_theme(current);
68}
69
70void rgb_theme_step_reverse(void) {
71 uint8_t current = user_config.rgb_theme;
72 current = (current - 1) % RGB_THEME_MAX;
73 set_rgb_theme(current);
74}
75
76rgb_theme_color_t get_rgb_theme_color(uint8_t index) {
77 rgb_theme_t theme = get_rgb_theme();
78 size_t rgb_theme_color_max = sizeof theme.colors / sizeof *theme.colors;
79
80 if (index == _ADJUST) {
81 return default_adjust;
82 } else {
83 return **(theme.colors + (index % rgb_theme_color_max));
84 }
85};
86
87void rgb_theme_layer(layer_state_t state) {
88 uint8_t rgb_color_index = get_highest_layer(state);
89 HSV color = get_rgb_theme_color(rgb_color_index);
90#if defined(RGBLIGHT_ENABLE)
91 color.v = rgblight_config.val;
92#elif defined(RGB_MATRIX_ENABLE)
93 color.v = rgb_matrix_config.hsv.v;
94#endif
95 rgb_layer_helper( color.h, color.s, color.v );
96}
97#endif
98
99#ifdef RGB_MATRIX_ENABLE
100void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type) {
101 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
102 if (!HAS_ANY_FLAGS(g_led_config.flags[i], led_type)) {
103 rgb_matrix_set_color( i, red, green, blue );
104 }
105 }
106}
107
108void rgb_matrix_cycle_flag (void) {
109 switch (rgb_matrix_get_flags()) {
110 case LED_FLAG_ALL:
111 rgb_matrix_set_flags(LED_FLAG_KEYS);
112 rgb_matrix_set_color_all(0, 0, 0);
113 break;
114 case LED_FLAG_KEYS:
115 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
116 rgb_matrix_set_color_all(0, 0, 0);
117 break;
118 case LED_FLAG_UNDERGLOW:
119 rgb_matrix_set_flags(LED_FLAG_NONE);
120 rgb_matrix_set_color_all(0, 0, 0);
121 break;
122 default:
123 rgb_matrix_set_flags(LED_FLAG_ALL);
124 rgb_matrix_enable();
125 break;
126 }
127}
128#endif
129
130void rgb_layer_helper(uint8_t hue, uint8_t sat, uint8_t val) {
131#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
132 rgblight_sethsv_noeeprom(hue, sat, val);
133#ifdef RGB_MATRIX_ENABLE
134 rgb_matrix_layer_helper(0, 0, 0, rgb_matrix_get_flags());
135#endif
136}
137#endif
138
139layer_state_t layer_state_set_rgb(layer_state_t state) {
140#if defined(RGB_THEME_ENABLE)
141 if (user_config.rgb_layer_change) {
142 rgb_theme_layer(state);
143 }
144#endif // RGBLIGHT_ENABLE
145 return state;
146}
diff --git a/users/brandonschlack/rgb_bs.h b/users/brandonschlack/rgb_bs.h
new file mode 100644
index 000000000..c5cbd5969
--- /dev/null
+++ b/users/brandonschlack/rgb_bs.h
@@ -0,0 +1,35 @@
1/* Copyright 2020 Brandon Schlack
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#include "quantum.h"
18#ifdef RGB_THEME_ENABLE
19# include "rgb_theme.h"
20#endif
21#ifdef RGB_MATRIX_ENABLE
22# include "rgb_matrix.h"
23#endif
24
25#ifdef RGB_MATRIX_ENABLE
26#define LED_FLAG_KEYS (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER)
27
28void rgb_matrix_layer_helper(uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type);
29void rgb_matrix_cycle_flag(void);
30#endif
31
32void keyboard_post_init_rgb(void);
33void rgb_layer_helper(uint8_t hue, uint8_t sat, uint8_t val);
34
35layer_state_t layer_state_set_rgb(layer_state_t state);
diff --git a/users/brandonschlack/rgb_theme.h b/users/brandonschlack/rgb_theme.h
new file mode 100644
index 000000000..7c8b2923f
--- /dev/null
+++ b/users/brandonschlack/rgb_theme.h
@@ -0,0 +1,51 @@
1/* Copyright 2020 Brandon Schlack
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 "brandonschlack.h"
19#include "color.h"
20#include "rgblight_list.h"
21
22/*TODO Update as RGBLIGHT Mode */
23#ifndef RGB_THEME_COLORS_MAX
24#define RGB_THEME_COLORS_MAX 5
25#endif
26
27enum rgb_themes {
28#define RGB_THEME(name) RGB_THEME_##name,
29 #include "rgb_theme_user.inc"
30#undef RGB_THEME
31 RGB_THEME_MAX
32};
33
34// RGB Theme Color
35typedef const HSV rgb_theme_color_t;
36#define RGB_THEME_COLOR(tname, tcolor,...) rgb_theme_color_t tname ## _ ## tcolor = { __VA_ARGS__ }
37
38// RGB Theme
39typedef struct {
40 const HSV *colors[RGB_THEME_COLORS_MAX];
41} rgb_theme_t;
42extern const rgb_theme_t *themes[];
43
44void set_rgb_theme(uint8_t index);
45rgb_theme_t get_rgb_theme(void);
46
47void rgb_theme_step(void);
48void rgb_theme_step_reverse(void);
49
50rgb_theme_color_t get_rgb_theme_color(uint8_t index);
51void rgb_theme_layer(layer_state_t state);
diff --git a/users/brandonschlack/rgb_theme_user.inc b/users/brandonschlack/rgb_theme_user.inc
new file mode 100644
index 000000000..a07e62b78
--- /dev/null
+++ b/users/brandonschlack/rgb_theme_user.inc
@@ -0,0 +1,95 @@
1// Basic Theme
2#ifndef DISABLE_RGB_THEME_BASIC
3#ifndef RGB_THEME_IMPLS
4RGB_THEME(BASIC)
5#else
6RGB_THEME_COLOR(BASIC, WHITE, HSV_WHITE);
7RGB_THEME_COLOR(BASIC, BLUE, HSV_BLUE);
8RGB_THEME_COLOR(BASIC, RED, HSV_RED);
9RGB_THEME_COLOR(BASIC, GREEN, HSV_GREEN);
10RGB_THEME_COLOR(BASIC, YELLOW, HSV_YELLOW);
11RGB_THEME(BASIC) = { { &BASIC_WHITE, &BASIC_BLUE, &BASIC_RED, &BASIC_GREEN, &BASIC_YELLOW } };
12#endif // RGB_THEME_IMPLS
13#endif // DISABLE_RGB_THEME_BASIC
14
15// Laser Theme
16#ifndef DISABLE_RGB_THEME_LASER
17#ifndef RGB_THEME_IMPLS
18RGB_THEME(LASER)
19#else
20RGB_THEME_COLOR(LASER, PURPLE, 191, 255, 255);
21RGB_THEME_COLOR(LASER, PINK, 237, 255, 255);
22RGB_THEME_COLOR(LASER, BLUE, 165, 255, 255);
23RGB_THEME_COLOR(LASER, CYAN, 133, 255, 255);
24RGB_THEME_COLOR(LASER, MAGENTA, 213, 255, 255);
25RGB_THEME(LASER) = { { &LASER_PURPLE, &LASER_PINK, &LASER_BLUE, &LASER_CYAN, &LASER_MAGENTA } };
26#endif // RGB_THEME_IMPLS
27#endif // DISABLE_RGB_THEME_LASER
28
29// Metropolis Theme
30#ifndef DISABLE_RGB_THEME_METROPOLIS
31#ifndef RGB_THEME_IMPLS
32RGB_THEME(METROPOLIS)
33#else
34RGB_THEME_COLOR(METROPOLIS, TEAL, 96, 207, 255);
35RGB_THEME_COLOR(METROPOLIS, RED, HSV_RED);
36RGB_THEME_COLOR(METROPOLIS, YELLOW, 24, 255, 255);
37RGB_THEME_COLOR(METROPOLIS, BLUE, 168, 255, 255);
38RGB_THEME_COLOR(METROPOLIS, WHITE, HSV_WHITE);
39RGB_THEME(METROPOLIS) = { { &METROPOLIS_TEAL, &METROPOLIS_RED, &METROPOLIS_YELLOW, &METROPOLIS_BLUE, &METROPOLIS_WHITE } };
40#endif // RGB_THEME_IMPLS
41#endif // DISABLE_RGB_THEME_METROPOLIS
42
43// Canvas Theme
44#ifndef DISABLE_RGB_THEME_CANVAS
45#ifndef RGB_THEME_IMPLS
46RGB_THEME(CANVAS)
47#else
48RGB_THEME_COLOR(CANVAS, WHITE, HSV_WHITE);
49RGB_THEME_COLOR(CANVAS, ORANGE, 10, 255, 255);
50RGB_THEME_COLOR(CANVAS, RED, 0, 231, 255);
51RGB_THEME_COLOR(CANVAS, GREEN, 74, 207, 255);
52RGB_THEME_COLOR(CANVAS, BLUE, 170, 135, 255);
53RGB_THEME(CANVAS) = { { &CANVAS_WHITE, &CANVAS_ORANGE, &CANVAS_RED, &CANVAS_GREEN, &CANVAS_BLUE } };
54#endif // RGB_THEME_IMPLS
55#endif // DISABLE_RGB_THEME_CANVAS
56
57// Jamon Theme
58#ifndef DISABLE_RGB_THEME_JAMON
59#ifndef RGB_THEME_IMPLS
60RGB_THEME(JAMON)
61#else
62RGB_THEME_COLOR(JAMON, RED, HSV_RED);
63RGB_THEME_COLOR(JAMON, LIGHTRED, 4, 255, 255);
64RGB_THEME_COLOR(JAMON, WHITE, HSV_WHITE);
65RGB_THEME_COLOR(JAMON, YELLOW, HSV_GOLD);
66RGB_THEME(JAMON) = { { &JAMON_RED, &JAMON_LIGHTRED, &JAMON_WHITE, &JAMON_YELLOW } };
67#endif // RGB_THEME_IMPLS
68#endif // DISABLE_RGB_THEME_JAMON
69
70// Striker Theme
71#ifndef DISABLE_RGB_THEME_STRIKER
72#ifndef RGB_THEME_IMPLS
73RGB_THEME(STRIKER)
74#else
75RGB_THEME_COLOR(STRIKER, BLUE, HSV_BLUE);
76RGB_THEME_COLOR(STRIKER, AZURE, HSV_AZURE);
77RGB_THEME_COLOR(STRIKER, WHITE, HSV_WHITE);
78RGB_THEME_COLOR(STRIKER, RED, HSV_RED);
79RGB_THEME(STRIKER) = { { &STRIKER_BLUE, &STRIKER_AZURE, &STRIKER_WHITE, &STRIKER_RED } };
80#endif // RGB_THEME_IMPLS
81#endif // DISABLE_RGB_THEME_STRIKER
82
83// Oblique Theme
84#ifndef DISABLE_RGB_THEME_OBLIQUE
85#ifndef RGB_THEME_IMPLS
86RGB_THEME(OBLIQUE)
87#else
88RGB_THEME_COLOR(OBLIQUE, WHITE, HSV_WHITE);
89RGB_THEME_COLOR(OBLIQUE, PURPLE, 186, 143, 255);
90RGB_THEME_COLOR(OBLIQUE, RED, 10, 200, 255);
91RGB_THEME_COLOR(OBLIQUE, ORANGE, 26, 215, 255);
92RGB_THEME_COLOR(OBLIQUE, GREEN, 58, 199, 255);
93RGB_THEME(OBLIQUE) = { { &OBLIQUE_WHITE, &OBLIQUE_PURPLE, &OBLIQUE_RED, &OBLIQUE_ORANGE, &OBLIQUE_GREEN } };
94#endif // RGB_THEME_IMPLS
95#endif // DISABLE_RGB_THEME_OBLIQUE
diff --git a/users/brandonschlack/rules.mk b/users/brandonschlack/rules.mk
new file mode 100644
index 000000000..2dfc332ab
--- /dev/null
+++ b/users/brandonschlack/rules.mk
@@ -0,0 +1,34 @@
1SRC += brandonschlack.c \
2 process_records.c
3
4SPACE_CADET_ENABLE = no
5
6# Use LTO except for ChibiOS
7ifneq ($(PLATFORM),CHIBIOS)
8 LTO_ENABLE = yes
9endif
10
11ifeq ($(strip $(IS_MACROPAD)), yes)
12 OPT_DEFS += -DIS_MACROPAD
13endif
14
15ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
16 SRC += rgb_bs.c
17endif
18
19RGB_MATRIX_ENABLE ?= no
20ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
21 SRC += rgb_bs.c
22endif
23
24ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
25 SRC += tap_dances.c
26endif
27
28ifeq ($(strip $(FLASH_BOOTLOADER)), yes)
29 OPT_DEFS += -DFLASH_BOOTLOADER
30endif
31
32ifneq ($(FORCE_LAYOUT),)
33 OPT_DEFS += -DFORCE_LAYOUT=\"$(FORCE_LAYOUT)\"
34endif
diff --git a/users/brandonschlack/tap_dances.c b/users/brandonschlack/tap_dances.c
new file mode 100644
index 000000000..861b31805
--- /dev/null
+++ b/users/brandonschlack/tap_dances.c
@@ -0,0 +1,91 @@
1/* Copyright 2020 Brandon Schlack
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#include "process_keycode/process_tap_dance.h"
18
19int cur_dance (qk_tap_dance_state_t *state) {
20 if (state->count == 1) {
21 if (state->interrupted || !state->pressed) return SINGLE_TAP;
22 else return SINGLE_HOLD;
23 } else if (state->count == 2) {
24 if (state->interrupted) return DOUBLE_SINGLE_TAP;
25 else if (state->pressed) return DOUBLE_HOLD;
26 else return DOUBLE_TAP;
27 }
28 if (state->count == 3) {
29 if (state->interrupted || !state->pressed) return TRIPLE_TAP;
30 else return TRIPLE_HOLD;
31 }
32 else return 8;
33}
34
35__attribute__ ((weak))
36void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) { };
37
38void td_trigger_layer_finished (qk_tap_dance_state_t *state, void *user_data) {
39 qk_tap_dance_trigger_layer_t *data = (qk_tap_dance_trigger_layer_t *)user_data;
40 data->state = cur_dance(state);
41
42 if (data->state == data->trigger) {
43 layer_on(data->layer);
44 } else {
45 process_tap_dance_keycode(false, data->layer);
46 }
47
48}
49void td_trigger_layer_reset (qk_tap_dance_state_t *state, void *user_data) {
50 qk_tap_dance_trigger_layer_t *data = (qk_tap_dance_trigger_layer_t *)user_data;
51 if (data->state == data->trigger) {
52 switch (data->trigger) {
53 case SINGLE_HOLD:
54 case DOUBLE_HOLD:
55 case TRIPLE_HOLD:
56 layer_off(data->layer);
57 break;
58 }
59 } else {
60 process_tap_dance_keycode(true, data->layer);
61 }
62 data->state = 0;
63}
64
65/* Tap Dance: Layer Mod. Toggles Layer when tapped, Mod when held. */
66void td_layer_mod_each(qk_tap_dance_state_t *state, void *user_data) {
67 qk_tap_dance_dual_role_t *data = (qk_tap_dance_dual_role_t *)user_data;
68
69 // Single tap → toggle layer, Single hold → mod
70 if (state->pressed) {
71 register_code(data->kc);
72 } else if (state->count == 1) {
73 state->finished = true;
74 }
75}
76
77void td_layer_mod_finished(qk_tap_dance_state_t *state, void *user_data) {
78 qk_tap_dance_dual_role_t *data = (qk_tap_dance_dual_role_t *)user_data;
79
80 if (state->count == 1 && !state->pressed) {
81 layer_invert(data->layer);
82 }
83}
84
85void td_layer_mod_reset(qk_tap_dance_state_t *state, void *user_data) {
86 qk_tap_dance_dual_role_t *data = (qk_tap_dance_dual_role_t *)user_data;
87
88 if (state->count == 1) {
89 unregister_code(data->kc);
90 }
91}
diff --git a/users/brandonschlack/tap_dances.h b/users/brandonschlack/tap_dances.h
new file mode 100644
index 000000000..3747619a5
--- /dev/null
+++ b/users/brandonschlack/tap_dances.h
@@ -0,0 +1,52 @@
1/* Copyright 2020 Brandon Schlack
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#include "brandonschlack.h"
18#ifdef TAP_DANCE_ENABLE
19# include "process_keycode/process_tap_dance.h"
20#endif
21
22enum tap_dance_states {
23 SINGLE_TAP = 1,
24 SINGLE_HOLD = 2,
25 DOUBLE_TAP = 3,
26 DOUBLE_HOLD = 4,
27 DOUBLE_SINGLE_TAP = 5,
28 TRIPLE_TAP = 6,
29 TRIPLE_HOLD = 7
30};
31
32int cur_dance (qk_tap_dance_state_t *state);
33void process_tap_dance_keycode (bool reset, uint8_t toggle_layer);
34
35/* Tap Dance: Trigger Layer
36 *
37 * Toggles Layer based on given trigger (Single Hold, Double Tap, Double Hold, etc).
38 * Uses process_tap_dance_keycode() to allow keycode defines based on layer
39 */
40typedef struct {
41 uint8_t trigger;
42 uint8_t layer;
43 uint8_t state;
44} qk_tap_dance_trigger_layer_t;
45
46#define ACTION_TAP_DANCE_TRIGGER_LAYER(trigger, layer) { \
47 .fn = { NULL, td_trigger_layer_finished, td_trigger_layer_reset }, \
48 .user_data = (void *)&((qk_tap_dance_trigger_layer_t) { trigger, layer, 0 }), \
49}
50
51void td_trigger_layer_finished (qk_tap_dance_state_t *state, void *user_data);
52void td_trigger_layer_reset (qk_tap_dance_state_t *state, void *user_data);