aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/preonic/keymaps/shwilliam/config.h19
-rw-r--r--keyboards/preonic/keymaps/shwilliam/keymap.c299
-rw-r--r--keyboards/preonic/keymaps/shwilliam/readme.md40
-rw-r--r--keyboards/preonic/keymaps/shwilliam/rules.mk1
4 files changed, 359 insertions, 0 deletions
diff --git a/keyboards/preonic/keymaps/shwilliam/config.h b/keyboards/preonic/keymaps/shwilliam/config.h
new file mode 100644
index 000000000..959f94fe2
--- /dev/null
+++ b/keyboards/preonic/keymaps/shwilliam/config.h
@@ -0,0 +1,19 @@
1#pragma once
2
3#ifdef AUDIO_ENABLE
4 #define STARTUP_SONG SONG(PREONIC_SOUND)
5 // #define STARTUP_SONG SONG(NO_SOUND)
6#endif
7
8#define MUSIC_MASK (keycode != KC_NO)
9
10/* prevent use of disabled MIDI features in the keymap */
11//#define MIDI_ENABLE_STRICT 1
12
13#define MIDI_BASIC
14
15/* enable advanced MIDI features */
16//#define MIDI_ADVANCED
17
18/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
19//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/preonic/keymaps/shwilliam/keymap.c b/keyboards/preonic/keymaps/shwilliam/keymap.c
new file mode 100644
index 000000000..c9d6cbab4
--- /dev/null
+++ b/keyboards/preonic/keymaps/shwilliam/keymap.c
@@ -0,0 +1,299 @@
1/* Copyright 2020 William Lindvall
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
19enum custom_keycodes {
20 LIQUOT = SAFE_RANGE,
21 RIQUOT,
22 LQUOT,
23 RQUOT,
24 LTITLE,
25 RTITLE,
26 TBULLET,
27 FBULLET,
28 FN_ARROW,
29 MAIL,
30 GITHUB,
31 HEART,
32 E_LCRY,
33 E_FLOWER,
34 E_SHEART,
35 E_KISS,
36 E_PHEART,
37 E_NOGOOD,
38 E_PARTY,
39 E_ROCKET,
40 E_SHRUG,
41 E_WIZARD,
42 E_OKBUST,
43 E_OKHAND,
44 E_SLEEP,
45 E_HUNNED,
46 E_2HEART
47};
48
49bool process_record_user(uint16_t keycode, keyrecord_t *record) {
50 switch (keycode) {
51 case LIQUOT:
52 if (record->event.pressed) {
53 SEND_STRING(SS_LALT("300a"));
54 }
55 return false;
56 case RIQUOT:
57 if (record->event.pressed) {
58 SEND_STRING(SS_LALT("300b"));
59 }
60 return false;
61 case LQUOT:
62 if (record->event.pressed) {
63 SEND_STRING(SS_LALT("300c"));
64 }
65 return false;
66 case RQUOT:
67 if (record->event.pressed) {
68 SEND_STRING(SS_LALT("300d"));
69 }
70 return false;
71 case LTITLE:
72 if (record->event.pressed) {
73 SEND_STRING(SS_LALT("3010"));
74 }
75 return false;
76 case RTITLE:
77 if (record->event.pressed) {
78 SEND_STRING(SS_LALT("3011"));
79 }
80 return false;
81 case TBULLET:
82 if (record->event.pressed) {
83 SEND_STRING(SS_LALT("2023"));
84 }
85 return false;
86 case FBULLET:
87 if (record->event.pressed) {
88 SEND_STRING(SS_LALT("2055"));
89 }
90 return false;
91 case MAIL:
92 if (record->event.pressed) {
93 SEND_STRING("w-lindvall@outlook.com");
94 }
95 return false;
96 case GITHUB:
97 if (record->event.pressed) {
98 SEND_STRING("https://github.com/shwilliam");
99 }
100 return false;
101 case FN_ARROW:
102 if (record->event.pressed) {
103 SEND_STRING("=>");
104 }
105 return false;
106 case HEART:
107 if (record->event.pressed) {
108 SEND_STRING(SS_LALT("2661"));
109 }
110 return false;
111 case E_LCRY:
112 if (record->event.pressed) {
113 SEND_STRING(SS_LALT("D83D+DE02"));
114 }
115 return false;
116 case E_FLOWER:
117 if (record->event.pressed) {
118 SEND_STRING(SS_LALT("D83C+DF38"));
119 }
120 return false;
121 case E_SHEART:
122 if (record->event.pressed) {
123 SEND_STRING(SS_LALT("D83D+DC96"));
124 }
125 return false;
126 case E_KISS:
127 if (record->event.pressed) {
128 SEND_STRING(SS_LALT("D83D+DE18"));
129 }
130 return false;
131 case E_PHEART:
132 if (record->event.pressed) {
133 SEND_STRING(SS_LALT("D83D+DC9C"));
134 }
135 return false;
136 case E_NOGOOD:
137 if (record->event.pressed) {
138 SEND_STRING(SS_LALT("D83D+DE45"));
139 }
140 return false;
141 case E_PARTY:
142 if (record->event.pressed) {
143 SEND_STRING(SS_LALT("D83C+DF8A"));
144 }
145 return false;
146 case E_ROCKET:
147 if (record->event.pressed) {
148 SEND_STRING(SS_LALT("D83D+DE80"));
149 }
150 return false;
151 case E_SHRUG:
152 if (record->event.pressed) {
153 SEND_STRING(SS_LALT("D83E+DD37"));
154 }
155 return false;
156 case E_WIZARD:
157 if (record->event.pressed) {
158 SEND_STRING(SS_LALT("D83E+DDD9"));
159 }
160 return false;
161 case E_OKBUST:
162 if (record->event.pressed) {
163 SEND_STRING(SS_LALT("D83D+DE46"));
164 }
165 return false;
166 case E_OKHAND:
167 if (record->event.pressed) {
168 SEND_STRING(SS_LALT("D83D+DC4C"));
169 }
170 return false;
171 case E_SLEEP:
172 if (record->event.pressed) {
173 SEND_STRING(SS_LALT("D83D+DE34"));
174 }
175 return false;
176 case E_HUNNED:
177 if (record->event.pressed) {
178 SEND_STRING(SS_LALT("D83D+DCAF"));
179 }
180 return false;
181 case E_2HEART:
182 if (record->event.pressed) {
183 SEND_STRING(SS_LALT("D83D+DC95"));
184 }
185 return false;
186 }
187 return true;
188};
189
190const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
191
192 /* qwerty
193 * ,-----------------------------------------------------------------------------------.
194 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
195 * |------+------+------+------+------+------+------+------+------+------+------+------|
196 * | Tab | q | w | e | r | t | y | u | i | o | p | Bksp |
197 * |------+------+------+------+------+-------------+------+------+------+------+------|
198 * | H/Esc| a | s | d | f | g | h | j | k | l | ' | Enter|
199 * |------+------+------+------+------+------|------+------+------+------+------+------|
200 * | Shift| z | x | c | v | b | n | m | , | . | / | ; |
201 * |------+------+------+------+------+------+------+------+------+------+------+------|
202 * | PDown| PUp | Alt | OS | Opt | Raise| Space| Lower| Left | Down | Up | Right|
203 * `-----------------------------------------------------------------------------------'
204 */
205
206 [0] = LAYOUT_preonic_grid(
207 KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_DEL,
208 KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSPC,
209 C_S_T(KC_ESC),KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_K ,KC_L ,KC_QUOT ,KC_ENT,
210 KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_SCLN,
211 KC_PGDN ,KC_PGUP ,KC_LALT ,KC_LGUI ,KC_LCTL ,MO(1) ,KC_SPC ,MO(2) ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT
212 ),
213
214 /* raise
215 * ,-----------------------------------------------------------------------------------.
216 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |SRight|
217 * |------+------+------+------+------+------+------+------+------+------+------+------|
218 * | | Q | W | E | R | T | Y | U | I | O | P | SLeft|
219 * |------+------+------+------+------+-------------+------+------+------+------+------|
220 * | | A | S | D | F | G | H | J | K | L | " | \ |
221 * |------+------+------+------+------+------|------+------+------+------+------+------|
222 * | Emoji| Z | X | C | V | B | N | M | < | > | ? | : |
223 * |------+------+------+------+------+------+------+------+------+------+------+------|
224 * | End | Home | ShAlt| ShOS | ShOpt|~~~~~~| Space| | | BDown| BUp | |
225 * `-----------------------------------------------------------------------------------'
226 */
227
228 [1] = LAYOUT_preonic_grid(
229 KC_TILD ,KC_EXLM ,KC_AT ,KC_HASH ,KC_DLR ,KC_PERC ,KC_CIRC ,KC_AMPR ,KC_ASTR ,KC_LPRN ,KC_RPRN ,SGUI(KC_RGHT),
230 KC_NO ,LSFT(KC_Q),LSFT(KC_W) ,LSFT(KC_E) ,LSFT(KC_R) ,LSFT(KC_T),LSFT(KC_Y),LSFT(KC_U),LSFT(KC_I),LSFT(KC_O),LSFT(KC_P),SGUI(KC_LEFT),
231 KC_NO ,LSFT(KC_A),LSFT(KC_S) ,LSFT(KC_D) ,LSFT(KC_F) ,LSFT(KC_G),LSFT(KC_H),LSFT(KC_J),LSFT(KC_K),LSFT(KC_L),KC_DQUO ,KC_BSLS,
232 OSL(3) ,LSFT(KC_Z),LSFT(KC_X) ,LSFT(KC_C) ,LSFT(KC_V) ,LSFT(KC_B),LSFT(KC_N),LSFT(KC_M),KC_LT ,KC_GT ,KC_QUES ,KC_COLN,
233 KC_END ,KC_HOME ,LSFT(KC_LALT),LSFT(KC_LGUI),LSFT(KC_LCTL),KC_TRNS ,KC_SPC ,KC_TRNS ,KC_NO ,KC_BRID ,KC_BRIU ,KC_NO
234 ),
235
236 /* lower
237 * ,-----------------------------------------------------------------------------------.
238 * | ♡ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
239 * |------+------+------+------+------+------+------+------+------+------+------+------|
240 * | ‣ | CLeft| MUp |CRight|MWDown| 【 | - | _ | | | = | + | DLeft|
241 * |------+------+------+------+------+-------------+------+------+------+------+------|
242 * | | MLeft| MDown|MRight| MWUp | 】 | Left | Down | Up | Right| ( | ) |
243 * |------+------+------+------+------+------|------+------+------+------+------+------|
244 * | | 《 | 》 | 「 | 」 | ⁕ | | { | } | [ | ] | => |
245 * |------+------+------+------+------+------+------+------+------+------+------+------|
246 * | Mail |GitHub| | | | | Space|~~~~~~| VMute| VDown| VUp | |
247 * `-----------------------------------------------------------------------------------'
248 */
249
250 [2] = LAYOUT_preonic_grid(
251 HEART ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_NO,
252 TBULLET ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_WH_D ,LTITLE ,KC_MINS ,KC_UNDS ,KC_PIPE ,KC_EQL ,KC_PLUS ,LGUI(KC_BSPC),
253 KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_WH_U ,RTITLE ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT ,KC_LPRN ,KC_RPRN,
254 KC_NO ,LIQUOT ,RIQUOT ,LQUOT ,RQUOT ,FBULLET ,KC_NO ,KC_LCBR ,KC_RCBR ,KC_LBRC ,KC_RBRC ,FN_ARROW,
255 MAIL ,GITHUB ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS ,KC_BSPC ,KC_TRNS ,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_NO
256 ),
257
258 /* emoji
259 * ,-----------------------------------------------------------------------------------.
260 * | | 1 | 2 | | | | | | | | | |
261 * |------+------+------+------+------+------+------+------+------+------+------+------|
262 * | | | w | | r | | y | | | o | p | |
263 * |------+------+------+------+------+-------------+------+------+------+------+------|
264 * | | | s | | f | | h | | k | l | | |
265 * |------+------+------+------+------+------|------+------+------+------+------+------|
266 * | | z | | c | | | n | | | | | |
267 * |------+------+------+------+------+------+------+------+------+------+------+------|
268 * | | | | | | | | | | | | |
269 * `-----------------------------------------------------------------------------------'
270 *
271 * mnemonics:
272 *
273 * 100 - 💯
274 * 2 hearts - 💕
275 * cry - 😂
276 * flower - 🌸
277 * heart - 💖
278 * kiss - 😘
279 * love - 💜
280 * no - 🙅
281 * ok - 🙆
282 * party - 🎊
283 * rocket - 🚀
284 * shrug - 🤷
285 * wizard - 🧙
286 * yes - 👌
287 * zzz - 😴
288 *
289 */
290
291 [3] = LAYOUT_preonic_grid(
292 KC_NO ,E_HUNNED,E_2HEART,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO,
293 KC_NO ,KC_NO ,E_WIZARD,KC_NO ,E_ROCKET,KC_NO ,E_OKHAND,KC_NO ,KC_NO ,E_OKBUST,E_PARTY ,KC_NO,
294 KC_NO ,KC_NO ,E_SHRUG ,KC_NO ,E_FLOWER,KC_NO ,E_SHEART,KC_NO ,E_KISS ,E_PHEART,KC_NO ,KC_NO,
295 KC_NO ,E_SLEEP ,KC_NO ,E_LCRY ,KC_NO ,KC_NO ,E_NOGOOD,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO,
296 KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
297 )
298
299};
diff --git a/keyboards/preonic/keymaps/shwilliam/readme.md b/keyboards/preonic/keymaps/shwilliam/readme.md
new file mode 100644
index 000000000..bb0f2e179
--- /dev/null
+++ b/keyboards/preonic/keymaps/shwilliam/readme.md
@@ -0,0 +1,40 @@
1# [@shwilliam](https://github.com/shwilliam)'s Preonic Layout
2
3![shwilliam's preonic layout image](https://user-images.githubusercontent.com/38357771/84585088-dc536380-adc0-11ea-8378-6fb8ffbc6a8d.png)
4
5## Overview
6
7- Shift, backspace, raise and lower on thumbs
8- Arrows on Vim keys
9- Function arrow key (`=>`)
10- Common parens one key from home-row
11- Brightness/volume control
12- Tap caps-lock for escape, hold for left control and left shift
13- Alternative punctuation
14 - Corner brackets
15 - Double-angle brackets
16 - Lenticular brackets
17- Select to left and right keys
18- Emoji layer
19
20## Layers
21
22### QWERTY
23
24- Base layer; similar to default Preonic keymap
25
26### Raise
27
28- Mostly shifted QWERTY layer with alternative actions
29- Brightness control
30
31### Lower
32
33- Common parentheses
34- Arrows on Vim keys
35- Mouse controls on WASD
36- Volume control
37
38### Emoji
39
40- Emoji layout based on mnemonics
diff --git a/keyboards/preonic/keymaps/shwilliam/rules.mk b/keyboards/preonic/keymaps/shwilliam/rules.mk
new file mode 100644
index 000000000..dcf16bef3
--- /dev/null
+++ b/keyboards/preonic/keymaps/shwilliam/rules.mk
@@ -0,0 +1 @@
SRC += muse.c