Skip to content

Commit d7f46f3

Browse files
dudeofawesomeskullydazed
authored andcommitted
layout(preonic): dudeofawesome's layout (qmk#2449)
* πŸŽ‰ duplicate default Preonic keymap * ✨ add Workman layout * 🚚 swap backspace and delete * ✨ enable hold enter for shift * 🚚 swap media play and next * πŸ’„ use Planck startup sound * πŸ’„ add Workman layer sound * ✨ add numpad layer * πŸ’„ add new workman sound * πŸ“ add README * 🎨 fix layout formatting * πŸ“ add image of numpad layer * πŸ“¦ changing chibios submodule version to match upstream/master's version * ✨ add caps lock key on adjust layer * ✨ reworking numpad layer to match a real numpad * ✨ add double tap to activate numpad * πŸ“ fix layout comments * πŸ“ update numpad layer render * ✨ adding operator keys to left hand on numpad * 🎨 shorten numpad keycodes
1 parent 452d23d commit d7f46f3

File tree

4 files changed

+350
-0
lines changed

4 files changed

+350
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#ifndef CONFIG_USER_H
2+
#define CONFIG_USER_H
3+
4+
#include "config_common.h"
5+
6+
#define TAPPING_TOGGLE 2
7+
8+
#ifdef AUDIO_ENABLE
9+
#define STARTUP_SONG SONG(PLANCK_SOUND)
10+
// #define STARTUP_SONG SONG(NO_SOUND)
11+
12+
#define WORKMAN_SOUND \
13+
E__NOTE(_GS7), \
14+
ED_NOTE(_E7), \
15+
S__NOTE(_REST), \
16+
E__NOTE(_A6), \
17+
S__NOTE(_REST), \
18+
ED_NOTE(_GS6),
19+
20+
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
21+
SONG(WORKMAN_SOUND), \
22+
SONG(COLEMAK_SOUND), \
23+
SONG(DVORAK_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+
#endif
Lines changed: 275 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,275 @@
1+
/* Copyright 2015-2017 Jack Humbert
2+
*
3+
* This program is free software: you can redistribute it and/or modify
4+
* it under the terms of the GNU General Public License as published by
5+
* the Free Software Foundation, either version 2 of the License, or
6+
* (at your option) any later version.
7+
*
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
*
13+
* You should have received a copy of the GNU General Public License
14+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15+
*/
16+
17+
#include "preonic.h"
18+
#include "action_layer.h"
19+
20+
enum preonic_layers {
21+
_QWERTY,
22+
_WORKMAN,
23+
_COLEMAK,
24+
_DVORAK,
25+
_LOWER,
26+
_RAISE,
27+
_ADJUST,
28+
_NUMPAD
29+
};
30+
31+
enum preonic_keycodes {
32+
QWERTY = SAFE_RANGE,
33+
WORKMAN,
34+
COLEMAK,
35+
DVORAK,
36+
LOWER,
37+
RAISE,
38+
BACKLIT
39+
};
40+
41+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42+
43+
/* Qwerty
44+
* ,-----------------------------------------------------------------------------------.
45+
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
46+
* |------+------+------+------+------+------+------+------+------+------+------+------|
47+
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
48+
* |------+------+------+------+------+-------------+------+------+------+------+------|
49+
* | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
50+
* |------+------+------+------+------+------|------+------+------+------+------+------|
51+
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
52+
* |------+------+------+------+------+------+------+------+------+------+------+------|
53+
* | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
54+
* `-----------------------------------------------------------------------------------'
55+
*/
56+
[_QWERTY] = {
57+
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
58+
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
59+
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
60+
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)},
61+
{TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
62+
},
63+
64+
/* Workman
65+
* ,-----------------------------------------------------------------------------------.
66+
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
67+
* |------+------+------+------+------+------+------+------+------+------+------+------|
68+
* | Tab | Q | W | R | W | B | J | F | U | P | ; | Bksp |
69+
* |------+------+------+------+------+-------------+------+------+------+------+------|
70+
* | Esc | A | S | H | T | G | Y | N | E | O | I | ' |
71+
* |------+------+------+------+------+------|------+------+------+------+------+------|
72+
* | Shift| Z | X | M | C | V | K | L | , | . | / | Enter|
73+
* |------+------+------+------+------+------+------+------+------+------+------+------|
74+
* | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
75+
* `-----------------------------------------------------------------------------------'
76+
*/
77+
[_WORKMAN] = {
78+
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
79+
{KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC},
80+
{KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT},
81+
{KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)},
82+
{TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
83+
},
84+
85+
/* Colemak
86+
* ,-----------------------------------------------------------------------------------.
87+
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
88+
* |------+------+------+------+------+------+------+------+------+------+------+------|
89+
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
90+
* |------+------+------+------+------+-------------+------+------+------+------+------|
91+
* | Esc | A | R | S | T | D | H | N | E | I | O | ' |
92+
* |------+------+------+------+------+------|------+------+------+------+------+------|
93+
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
94+
* |------+------+------+------+------+------+------+------+------+------+------+------|
95+
* | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
96+
* `-----------------------------------------------------------------------------------'
97+
*/
98+
[_COLEMAK] = {
99+
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
100+
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
101+
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
102+
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT)},
103+
{TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
104+
},
105+
106+
/* Dvorak
107+
* ,-----------------------------------------------------------------------------------.
108+
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
109+
* |------+------+------+------+------+------+------+------+------+------+------+------|
110+
* | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp |
111+
* |------+------+------+------+------+-------------+------+------+------+------+------|
112+
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
113+
* |------+------+------+------+------+------|------+------+------+------+------+------|
114+
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
115+
* |------+------+------+------+------+------+------+------+------+------+------+------|
116+
* | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
117+
* `-----------------------------------------------------------------------------------'
118+
*/
119+
[_DVORAK] = {
120+
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
121+
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
122+
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
123+
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT)},
124+
{TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
125+
},
126+
127+
/* Lower
128+
* ,-----------------------------------------------------------------------------------.
129+
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
130+
* |------+------+------+------+------+-------------+------+------+------+------+------|
131+
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
132+
* |------+------+------+------+------+-------------+------+------+------+------+------|
133+
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
134+
* |------+------+------+------+------+------|------+------+------+------+------+------|
135+
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
136+
* |------+------+------+------+------+------+------+------+------+------+------+------|
137+
* | | | | | | | | Play | Vol- | Vol+ | Next |
138+
* `-----------------------------------------------------------------------------------'
139+
*/
140+
[_LOWER] = {
141+
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______},
142+
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______},
143+
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
144+
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______},
145+
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT}
146+
},
147+
148+
/* Raise
149+
* ,-----------------------------------------------------------------------------------.
150+
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
151+
* |------+------+------+------+------+------+------+------+------+------+------+------|
152+
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
153+
* |------+------+------+------+------+-------------+------+------+------+------+------|
154+
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
155+
* |------+------+------+------+------+------|------+------+------+------+------+------|
156+
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
157+
* |------+------+------+------+------+------+------+------+------+------+------+------|
158+
* | | | | | | | | Play | Vol- | Vol+ | Next |
159+
* `-----------------------------------------------------------------------------------'
160+
*/
161+
[_RAISE] = {
162+
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
163+
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
164+
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
165+
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______},
166+
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT}
167+
},
168+
169+
/* Adjust (Lower + Raise)
170+
* ,-----------------------------------------------------------------------------------.
171+
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
172+
* |------+------+------+------+------+------+------+------+------+------+------+------|
173+
* | | Reset| | | | | | | | | | Del |
174+
* |------+------+------+------+------+-------------+------+------+------+------+------|
175+
* |CPSLCK| | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Workmn|Dvorak|Colemk| |
176+
* |------+------+------+------+------+------|------+------+------+------+------+------|
177+
* | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
178+
* |------+------+------+------+------+------+------+------+------+------+------+------|
179+
* | | | | | | | | | | | |
180+
* `-----------------------------------------------------------------------------------'
181+
*/
182+
[_ADJUST] = {
183+
{KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
184+
{_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL},
185+
{KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______},
186+
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
187+
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
188+
},
189+
190+
/* Numpad
191+
* ,-----------------------------------------------------------------------------------.
192+
* | | βœ— | βœ— | βœ— | βœ— | βœ— | βœ— | βœ— | / | * | - | |
193+
* |------+------+------+------+------+------+------+------+------+------+------+------|
194+
* | | βœ— | Home | Up | End | PgUp | βœ— | 7 | 8 | 9 | + | |
195+
* |------+------+------+------+------+-------------+------+------+------+------+------|
196+
* | | βœ— | Left | Down | Right| PgDn | βœ— | 4 | 5 | 6 | + | βœ— |
197+
* |------+------+------+------+------+------|------+------+------+------+------+------|
198+
* | | / | * | - | + | Enter| βœ— | 1 | 2 | 3 | Enter| Enter|
199+
* |------+------+------+------+------+------+------+------+------+------+------+------|
200+
* | | | | | βœ— | | 0 | 0 | . | Enter| = |
201+
* `-----------------------------------------------------------------------------------'
202+
*/
203+
[_NUMPAD] = {
204+
{_______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, _______},
205+
{_______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______},
206+
{_______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO},
207+
{_______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT},
208+
{_______, _______, _______, _______, KC_NO, _______, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PEQL}
209+
}
210+
211+
212+
};
213+
214+
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
215+
switch (keycode) {
216+
case QWERTY:
217+
if (record->event.pressed) {
218+
set_single_persistent_default_layer(_QWERTY);
219+
}
220+
return false;
221+
break;
222+
case WORKMAN:
223+
if (record->event.pressed) {
224+
set_single_persistent_default_layer(_WORKMAN);
225+
}
226+
return false;
227+
break;
228+
case COLEMAK:
229+
if (record->event.pressed) {
230+
set_single_persistent_default_layer(_COLEMAK);
231+
}
232+
return false;
233+
break;
234+
case DVORAK:
235+
if (record->event.pressed) {
236+
set_single_persistent_default_layer(_DVORAK);
237+
}
238+
return false;
239+
break;
240+
case LOWER:
241+
if (record->event.pressed) {
242+
layer_on(_LOWER);
243+
update_tri_layer(_LOWER, _RAISE, _ADJUST);
244+
} else {
245+
layer_off(_LOWER);
246+
update_tri_layer(_LOWER, _RAISE, _ADJUST);
247+
}
248+
return false;
249+
break;
250+
case RAISE:
251+
if (record->event.pressed) {
252+
layer_on(_RAISE);
253+
update_tri_layer(_LOWER, _RAISE, _ADJUST);
254+
} else {
255+
layer_off(_RAISE);
256+
update_tri_layer(_LOWER, _RAISE, _ADJUST);
257+
}
258+
return false;
259+
break;
260+
case BACKLIT:
261+
if (record->event.pressed) {
262+
register_code(KC_RSFT);
263+
#ifdef BACKLIGHT_ENABLE
264+
backlight_step();
265+
#endif
266+
PORTE &= ~(1<<6);
267+
} else {
268+
unregister_code(KC_RSFT);
269+
PORTE |= (1<<6);
270+
}
271+
return false;
272+
break;
273+
}
274+
return true;
275+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# DudeOfAwesome's Preonic layout
2+
3+
![Preonic Layout](https://i.imgur.com/EC42Pnw.png)
4+
5+
## Features
6+
7+
- Base Layers
8+
- QWERTY
9+
- Workman
10+
- Dvorak
11+
- Colemak
12+
- Numpad layer
13+
![numpad layer](https://i.imgur.com/V5iGHZg.png)
14+
- Audio
15+
16+
## Building and flashing
17+
18+
1. Put your board in DFU mode with either the button on the bottom, or with a software key in your current firmware
19+
1. Flash:
20+
```bash
21+
$ make preonic/rev2:dudeofawesome:dfu
22+
```

β€Žkeyboards/preonic/keymaps/dudeofawesome/rules.mkβ€Ž

Whitespace-only changes.

0 commit comments

Comments
Β (0)