aboutsummaryrefslogtreecommitdiff
path: root/keyboards/keebio/levinson/keymaps/jyh/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/keebio/levinson/keymaps/jyh/keymap.c')
-rw-r--r--keyboards/keebio/levinson/keymaps/jyh/keymap.c215
1 files changed, 215 insertions, 0 deletions
diff --git a/keyboards/keebio/levinson/keymaps/jyh/keymap.c b/keyboards/keebio/levinson/keymaps/jyh/keymap.c
new file mode 100644
index 000000000..d8cfa7e06
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/jyh/keymap.c
@@ -0,0 +1,215 @@
1#include QMK_KEYBOARD_H
2
3extern keymap_config_t keymap_config;
4
5// Each layer gets a name for readability, which is then used in the keymap matrix below.
6// The underscores don't mean anything - you can have a layer called STUFF or any other name.
7// Layer names don't all need to be of the same length, obviously, and you can also skip them
8// entirely and just use numbers.
9#define _QWERTY 0
10#define _LOWER 3 /* Symbols, Media */
11#define _RAISE 4 /* Numbers, Arrows */
12#define _FUNC 5 /* Function Keys */
13#define _NUMS 6 /* Numpad */
14#define _ADJUST 16
15
16enum custom_keycodes {
17 QWERTY = SAFE_RANGE,
18 LOWER,
19 RAISE,
20 ADJUST,
21};
22
23// Fillers to make layering more clear
24#define KC_ KC_TRNS
25
26// tap toggle numpad on
27#define NUMPAD TT(_NUMS)
28
29// Mod Tap Definitions
30// -------------------
31 // Tap Hold
32 // ------------------
33#define CTL_ESC MT(MOD_LCTL, KC_ESC) // Esc Left Control
34#define SFT_ENT MT(MOD_RSFT, KC_ENT) // Enter Right Shift
35#define CTL_SPC MT(MOD_LCTL, KC_SPC) // Space Left Control
36#define ALT_SPC MT(MOD_LALT, KC_SPC) // Space Left Alt
37#define ALT_BSP MT(MOD_LALT, KC_BSPC) // Bkspace Left Alt
38#define HPR_TAB MT(MOD_HYPR, KC_TAB) // Tab Hyper (Super+Ctrl+Alt+Shift)
39#define HPR_GRV MT(MOD_HYPR, KC_GRV) // ` Hyper
40#define HPR_TIL MT(MOD_HYPR, KC_TILD) // ~ Hyper
41#define MEH_TIL MT(MOD_MEH, KC_GRV) // ` Meh (Ctrl+Alt+Shift)
42#define SFT_MIN MT(MOD_LSFT, KC_MINS) // - Left Shift
43#define NPD_UND LT(_NUMS, KC_UNDS) // _ Layer Numpad
44#define FNC_PIP LT(_FUNC, KC_PIPE) // | Layer Function Keys
45
46#define CTL_DEL MT(MOD_LCTL, KC_DEL) // Del Left Control
47#define CTL_QOT MT(MOD_RCTL, KC_QUOT) // ' Right Control
48#define CTL_BSL MT(MOD_RCTL, KC_BSLS) // \ Right Control
49#define CTL_PIP MT(MOD_RCTL, KC_PIPE) // | Right Control
50
51// Redefine for LAYOUT_kc
52#define KC_CTL_BSL CTL_BSL
53#define KC_CTL_PIP CTL_PIP
54#define KC_CTL_DEL CTL_DEL
55#define KC_HPR_TIL HPR_TIL
56#define KC_HPR_GRV HPR_GRV
57
58
59const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
60
61/* Qwerty
62 *
63 * ,-----------------------------------------. ,-----------------------------------------.
64 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
65 * |------+------+------+------+------+------| |------+------+------+------+------+------|
66 * | Esc | A | S | D | F | G | | H | J | K | L | ; | ' |
67 * |------+------+------+------+------+------| |------+------+------+------+------+------|
68 * | - | Z | X | C | V | B | | N | M | , | . | / | Enter|
69 * |------+------+------+------+------+------| |------+------+------+------+------+------|
70 * | Numpd| Meh | Meta | Alt | Lower| Space| | Space| Raise| Alt | Meta | Hyper| Func |
71 * `-----------------------------------------' `-----------------------------------------'
72 *
73 * with Hold (Emacs-oriented)
74 * ,-----------------------------------------. ,-----------------------------------------.
75 * | Hyper| | | | | | | | | | | | |
76 * |------+------+------+------+------+------| |------+------+------+------+------+------|
77 * | Ctrl | | | | | | | | | | | | Ctrl |
78 * |------+------+------+------+------+------| |------+------+------+------+------+------|
79 * | Shift| | | | | | | | | | | | Shift|
80 * |------+------+------+------+------+------| |------+------+------+------+------+------|
81 * | | | | | | | | | | | | | |
82 * `-----------------------------------------' `-----------------------------------------'
83 */
84 [_QWERTY] = LAYOUT_ortho_4x12(
85 HPR_TAB, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC,
86 CTL_ESC, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, CTL_QOT,
87 SFT_MIN, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, SFT_ENT,
88 NUMPAD , KC_MEH , KC_LGUI, KC_LALT, LOWER, CTL_SPC, KC_SPC, RAISE, KC_RALT, KC_RGUI, KC_HYPR, MO(_FUNC)
89 ),
90
91
92/* Raise
93 * ,-----------------------------------------. ,-----------------------------------------.
94 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
95 * |------+------+------+------+------+------| |------+------+------+------+------+------|
96 * | | Left | Up | Down | Right| ( | | ) | - | = | [ | ] | | |
97 * |------+------+------+------+------+------| |------+------+------+------+------+------|
98 * | | ; | ' | * | , | { | | } | _ | + | . | / | |
99 * |------+------+------+------+------+------| |------+------+------+------+------+------|
100 * | | | | | | | | | | | | | |
101 * `-----------------------------------------' `-----------------------------------------'
102 */
103 [_RAISE] = LAYOUT_kc_ortho_4x12(
104 HPR_GRV, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , ,
105 ,LEFT, UP ,DOWN,RGHT,LPRN, RPRN,MINS, EQL,LBRC,RBRC,CTL_PIP,
106 ,COLN,QUOT,ASTR,COMM,LCBR, RCBR,UNDS,PLUS, , , ,
107 , , , , , , , , , , ,
108 ),
109
110/* Lower
111 * ,-----------------------------------------. ,-----------------------------------------.
112 * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
113 * |------+------+------+------+------+------| |------+------+------+------+------+------|
114 * | Del | Vol+ | Mute | Play | PgUp | : | | ' | - | = | [ | ] | \ |
115 * |------+------+------+------+------+------| |------+------+------+------+------+------|
116 * | | Vol- | < M | M > | PgDn | ; | | " | | | , | . | / | |
117 * |------+------+------+------+------+------| |------+------+------+------+------+------|
118 * | | | | | | | | | | | | | |
119 * `-----------------------------------------' `-----------------------------------------'
120 */
121 [_LOWER] = LAYOUT_kc_ortho_4x12(
122 HPR_TIL,EXLM, AT ,HASH,DLR , PERC , CIRC,AMPR,ASTR,LPRN,RPRN, ,
123 CTL_DEL,VOLU,MUTE,MPLY,PGUP, COLN , QUOT,MINS, EQL,LBRC,RBRC,CTL_BSL,
124 ,VOLD,MPRV,MNXT,PGDN, SCLN , DQUO,PIPE,COMM, DOT,SLSH, ,
125 , , , , , , , , , , ,
126 ),
127
128 [_FUNC] = LAYOUT_kc_ortho_4x12(
129// ,----+----+----+----+----+----. ,----+----+----+----+----+----.
130 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10, ,
131// |----+----+----+----+----+----| |----+----+----+----+----+----|
132 , F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, ,
133// |----+----+----+----+----+----| |----+----+----+----+----+----|
134 , F21, F22, F23, F24, NO , NO , NO , NO , NO , NO , ,
135// |----+----+----+----+----+----| |----+----+----+----+----+----|
136 , , , , , , , , , , ,
137// `----+----+----+----+----+----' `----+----+----+----+----+----'
138 ),
139
140 [_NUMS] = LAYOUT_kc_ortho_4x12(
141// ,----+----+----+----+----+----. ,----+----+----+----+----+----.
142 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ,SLSH, ,
143// |----+----+----+----+----+----| |----+----+----+----+----+----|
144 ,CAPS, INS,HOME,PGUP,LPRN, RPRN, 4 , 5 , 6 ,ASTR, ,
145// |----+----+----+----+----+----| |----+----+----+----+----+----|
146 ,NLCK, DEL, END,PGDN,SCLN, COMM, 1 , 2 , 3 ,MINS, ,
147// |----+----+----+----+----+----| |----+----+----+----+----+----|
148 , , , , , , , 0 ,DOT ,EQL ,PLUS,
149// `----+----+----+----+----+----' `----+----+----+----+----+----'
150 ),
151
152 [_ADJUST] = LAYOUT_ortho_4x12(
153// ,-------+--------+--------+--------+--------+--------. ,-------+--------+--------+--------+--------+--------.
154 RESET , XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL , \
155// |-------+--------+--------+--------+--------+--------| |-------+--------+--------+--------+--------+--------|
156 _______, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, BL_TOGG, BL_STEP, XXXXXXX, XXXXXXX, XXXXXXX, _______, \
157// |-------+--------+--------+--------+--------+--------| |-------+--------+--------+--------+--------+--------|
158 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, \
159// |-------+--------+--------+--------+--------+--------| |-------+--------+--------+--------+--------+--------|
160 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
161// `-------+--------+--------+--------+--------+--------' `-------+--------+--------+--------+--------+--------,
162 )
163
164/*
165 * ,-----------------------------------------. ,-----------------------------------------.
166 * | | | | | | | | | | | | | |
167 * |------+------+------+------+------+------| |------+------+------+------+------+------|
168 * | | | | | | | | | | | | | |
169 * |------+------+------+------+------+------| |------+------+------+------+------+------|
170 * | | | | | | | | | | | | | |
171 * |------+------+------+------+------+------| |------+------+------+------+------+------|
172 * | | | | | | | | | | | | | |
173 * `-----------------------------------------' `-----------------------------------------'
174 */
175};
176
177bool process_record_user(uint16_t keycode, keyrecord_t *record) {
178 switch (keycode) {
179 case QWERTY:
180 if (record->event.pressed) {
181 set_single_persistent_default_layer(_QWERTY);
182 }
183 return false;
184 break;
185 case LOWER:
186 if (record->event.pressed) {
187 layer_on(_LOWER);
188 update_tri_layer(_LOWER, _RAISE, _ADJUST);
189 } else {
190 layer_off(_LOWER);
191 update_tri_layer(_LOWER, _RAISE, _ADJUST);
192 }
193 return false;
194 break;
195 case RAISE:
196 if (record->event.pressed) {
197 layer_on(_RAISE);
198 update_tri_layer(_LOWER, _RAISE, _ADJUST);
199 } else {
200 layer_off(_RAISE);
201 update_tri_layer(_LOWER, _RAISE, _ADJUST);
202 }
203 return false;
204 break;
205 case ADJUST:
206 if (record->event.pressed) {
207 layer_on(_ADJUST);
208 } else {
209 layer_off(_ADJUST);
210 }
211 return false;
212 break;
213 }
214 return true;
215}