aboutsummaryrefslogtreecommitdiff
path: root/keyboard/preonic
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard/preonic')
-rw-r--r--keyboard/preonic/Makefile55
-rw-r--r--keyboard/preonic/keymaps/default/README.md35
-rw-r--r--keyboard/preonic/keymaps/default/keymap.c337
-rw-r--r--keyboard/preonic/keymaps/default/makefile.mk1
4 files changed, 335 insertions, 93 deletions
diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile
index 664aff732..9199968c3 100644
--- a/keyboard/preonic/Makefile
+++ b/keyboard/preonic/Makefile
@@ -126,27 +126,44 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
126# USBaspLoader 2048 126# USBaspLoader 2048
127OPT_DEFS += -DBOOTLOADER_SIZE=4096 127OPT_DEFS += -DBOOTLOADER_SIZE=4096
128 128
129
130# Build Options 129# Build Options
131# comment out to disable the options. 130# change to "no" to disable the options, or define them in the makefile.mk in
132# 131# the appropriate keymap folder that will get included automatically
133BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) 132#
134MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 133BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
135EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 134MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
136CONSOLE_ENABLE = yes # Console for debug(+400) 135EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
137COMMAND_ENABLE = yes # Commands for debug and configuration 136CONSOLE_ENABLE = yes # Console for debug(+400)
137COMMAND_ENABLE = yes # Commands for debug and configuration
138NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
139BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
140MIDI_ENABLE = no # MIDI controls
141AUDIO_ENABLE = no # Audio output on port C6
142UNICODE_ENABLE = no # Unicode
143BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
144RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
145
138# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 146# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
139# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 147SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
140# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 148
141BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 149ifdef KEYMAP
142MIDI_ENABLE = YES # MIDI controls 150
143AUDIO_ENABLE = YES # Audio output on port C6 151ifeq ("$(wildcard keymaps/$(KEYMAP).c)","")
144# UNICODE_ENABLE = YES # Unicode 152ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","")
145# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID 153 include keymaps/$(KEYMAP)/makefile.mk
146# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. 154endif
147 155endif
148ifdef BACKLIGHT_ENABLE 156
149 SRC += backlight.c 157else
158
159ifneq ("$(wildcard keymaps/default/makefile.mk)","")
160 include keymaps/default/makefile.mk
161endif
162
163endif
164
165ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
166 SRC := backlight.c $(SRC)
150endif 167endif
151 168
152 169
diff --git a/keyboard/preonic/keymaps/default/README.md b/keyboard/preonic/keymaps/default/README.md
index d2f43bbdb..e911968dd 100644
--- a/keyboard/preonic/keymaps/default/README.md
+++ b/keyboard/preonic/keymaps/default/README.md
@@ -1,34 +1 @@
1# The Default Planck Layout # The default Preonic layout - largely based on the Planck's \ No newline at end of file
2
3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [_QW] = { /* Qwerty */
5 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
6 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
7 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
8 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
9 },
10 [_CM] = { /* Colemak */
11 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
12 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
13 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
14 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
15 },
16 [_DV] = { /* Dvorak */
17 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
18 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
19 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
20 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
21 },
22 [_RS] = { /* RAISE */
23 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
24 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
25 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
26 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
27 },
28 [_LW] = { /* LOWER */
29 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
30 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
31 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS},
32 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
33 }
34 }; \ No newline at end of file
diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c
index 784670784..e1f9b6202 100644
--- a/keyboard/preonic/keymaps/default/keymap.c
+++ b/keyboard/preonic/keymaps/default/keymap.c
@@ -1,56 +1,182 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3
4#include "preonic.h" 1#include "preonic.h"
5#ifdef BACKLIGHT_ENABLE 2#include "action_layer.h"
6 #include "backlight.h" 3#include "eeconfig.h"
4#ifdef AUDIO_ENABLE
5 #include "audio.h"
6 #define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \
7 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \
8 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \
9 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \
10 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), }
7#endif 11#endif
8 12
9// Each layer gets a name for readability, which is then used in the keymap matrix below. 13// Each layer gets a name for readability, which is then used in the keymap matrix below.
10// The underscores don't mean anything - you can have a layer called STUFF or any other name. 14// The underscores don't mean anything - you can have a layer called STUFF or any other name.
11// Layer names don't all need to be of the same length, obviously, and you can also skip them 15// Layer names don't all need to be of the same length, obviously, and you can also skip them
12// entirely and just use numbers. 16// entirely and just use numbers.
13#define _QW 0 17#define _QWERTY 0
14#define _CM 1 18#define _COLEMAK 1
15#define _DV 2 19#define _DVORAK 2
16#define _LW 3 20#define _LOWER 3
17#define _RS 4 21#define _RAISE 4
22#define _ADJUST 5
23#define _MUSIC 6
24
25// Macro name shortcuts
26#define QWERTY M(_QWERTY)
27#define COLEMAK M(_COLEMAK)
28#define DVORAK M(_DVORAK)
29#define LOWER M(_LOWER)
30#define RAISE M(_RAISE)
31#define M_BL 5
32#ifdef AUDIO_ENABLE
33 #define AUD_OFF M(6)
34 #define AUD_ON M(7)
35#endif
36#define MUS_OFF M(8)
37#define MUS_ON M(9)
38
39// Fillers to make layering more clear
40#define _______ KC_TRNS
41#define XXXXXXX KC_NO
18 42
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20[_QW] = { /* Qwerty */ 44
45/* Qwerty
46 * ,-----------------------------------------------------------------------------------.
47 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
48 * |------+------+------+------+------+------+------+------+------+------+------+------|
49 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
50 * |------+------+------+------+------+-------------+------+------+------+------+------|
51 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
52 * |------+------+------+------+------+------|------+------+------+------+------+------|
53 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
54 * |------+------+------+------+------+------+------+------+------+------+------+------|
55 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
56 * `-----------------------------------------------------------------------------------'
57 */
58[_QWERTY] = {
21 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 59 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
22 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 60 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL},
23 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, 61 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
24 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, 62 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
25 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 63 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
26}, 64},
27[_CM] = { /* Colemak */ 65
66/* Colemak
67 * ,-----------------------------------------------------------------------------------.
68 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
69 * |------+------+------+------+------+------+------+------+------+------+------+------|
70 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
71 * |------+------+------+------+------+-------------+------+------+------+------+------|
72 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
73 * |------+------+------+------+------+------|------+------+------+------+------+------|
74 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
75 * |------+------+------+------+------+------+------+------+------+------+------+------|
76 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
77 * `-----------------------------------------------------------------------------------'
78 */
79[_COLEMAK] = {
28 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 80 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
29 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, 81 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL},
30 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, 82 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
31 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, 83 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
32 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 84 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
33}, 85},
34[_DV] = { /* Dvorak */ 86
87/* Dvorak
88 * ,-----------------------------------------------------------------------------------.
89 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
90 * |------+------+------+------+------+------+------+------+------+------+------+------|
91 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
92 * |------+------+------+------+------+-------------+------+------+------+------+------|
93 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
94 * |------+------+------+------+------+------|------+------+------+------+------+------|
95 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
96 * |------+------+------+------+------+------+------+------+------+------+------+------|
97 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
98 * `-----------------------------------------------------------------------------------'
99 */
100[_DVORAK] = {
35 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 101 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
36 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, 102 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL},
37 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, 103 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
38 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, 104 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
39 {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 105 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
40}, 106},
41[_RS] = { /* RAISE */ 107
42 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 108/* Lower
43 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 109 * ,-----------------------------------------------------------------------------------.
44 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, 110 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
45 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, 111 * |------+------+------+------+------+-------------+------+------+------+------+------|
46 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} 112 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
113 * |------+------+------+------+------+-------------+------+------+------+------+------|
114 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
115 * |------+------+------+------+------+------|------+------+------+------+------+------|
116 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
117 * |------+------+------+------+------+------+------+------+------+------+------+------|
118 * | | | | | | | | Next | Vol- | Vol+ | Play |
119 * `-----------------------------------------------------------------------------------'
120 */
121[_LOWER] = {
122 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
123 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
124 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
125 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______},
126 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
47}, 127},
48[_LW] = { /* LOWER */ 128
129/* Raise
130 * ,-----------------------------------------------------------------------------------.
131 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
132 * |------+------+------+------+------+------+------+------+------+------+------+------|
133 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
134 * |------+------+------+------+------+-------------+------+------+------+------+------|
135 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
136 * |------+------+------+------+------+------|------+------+------+------+------+------|
137 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
138 * |------+------+------+------+------+------+------+------+------+------+------+------|
139 * | | | | | | | | Next | Vol- | Vol+ | Play |
140 * `-----------------------------------------------------------------------------------'
141 */
142[_RAISE] = {
49 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, 143 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
50 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, 144 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL},
51 {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, 145 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
52 {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, 146 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______},
53 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} 147 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
148},
149
150/* Adjust (Lower + Raise)
151 * ,-----------------------------------------------------------------------------------.
152 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
153 * |------+------+------+------+------+------+------+------+------+------+------+------|
154 * | | Reset| | | | | | | | | | Del |
155 * |------+------+------+------+------+-------------+------+------+------+------+------|
156 * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
157 * |------+------+------+------+------+------|------+------+------+------+------+------|
158 * | | | |Musoff|Mus on| | | | | | | |
159 * |------+------+------+------+------+------+------+------+------+------+------+------|
160 * | | | | | | | | | | | |
161 * `-----------------------------------------------------------------------------------'
162 */
163[_ADJUST] = {
164 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
165 {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
166 {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______},
167 {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______},
168 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
169},
170
171/* Music (reserved for process_action_user)
172 *
173 */
174[_MUSIC] = {
175 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
176 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
177 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
178 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
179 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
54} 180}
55}; 181};
56 182
@@ -58,19 +184,104 @@ const uint16_t PROGMEM fn_actions[] = {
58 184
59}; 185};
60 186
187#ifdef AUDIO_ENABLE
61float start_up[][2] = { 188float start_up[][2] = {
62 {440.0*pow(2.0,(67)/12.0), 600}, 189 {440.0*pow(2.0,(50)/12.0), 20},
63 {440.0*pow(2.0,(64)/12.0), 400}, 190 {440.0*pow(2.0,(62)/12.0), 8},
64 {440.0*pow(2.0,(55)/12.0), 400}, 191 {440.0*pow(2.0,(54)/12.0), 20},
65 {440.0*pow(2.0,(60)/12.0), 400}, 192 {440.0*pow(2.0,(62)/12.0), 8}
66 {440.0*pow(2.0,(64)/12.0), 1000},
67}; 193};
68 194
195float tone_qwerty[][2] = {
196 {440.0*pow(2.0,(59)/12.0), 8},
197 {440.0*pow(2.0,(60)/12.0), 8},
198 {0, 4},
199 {440.0*pow(2.0,(67)/12.0), 16}
200};
201
202float tone_colemak[][2] = {
203 {440.0*pow(2.0,(59)/12.0), 8},
204 {440.0*pow(2.0,(60)/12.0), 8},
205 {0, 4},
206 {440.0*pow(2.0,(67)/12.0), 12},
207 {0, 4},
208 {440.0*pow(2.0,(71)/12.0), 12}
209};
210
211float tone_dvorak[][2] = {
212 {440.0*pow(2.0,(59)/12.0), 8},
213 {440.0*pow(2.0,(60)/12.0), 8},
214 {0, 4},
215 {440.0*pow(2.0,(67)/12.0), 8},
216 {0, 4},
217 {440.0*pow(2.0,(69)/12.0), 8},
218 {0, 4},
219 {440.0*pow(2.0,(67)/12.0), 8}
220};
221
222float tone_music[][2] = {
223 {440.0*pow(2.0,(48)/12.0), 8},
224 {440.0*pow(2.0,(50)/12.0), 8},
225 {440.0*pow(2.0,(52)/12.0), 8},
226 {440.0*pow(2.0,(53)/12.0), 8},
227 {440.0*pow(2.0,(55)/12.0), 8},
228 {440.0*pow(2.0,(57)/12.0), 8},
229 {440.0*pow(2.0,(59)/12.0), 8},
230 {440.0*pow(2.0,(60)/12.0), 8}
231};
232#endif
233
234void persistant_default_layer_set(uint16_t default_layer) {
235 eeconfig_write_default_layer(default_layer);
236 default_layer_set(default_layer);
237}
238
69const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 239const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
70{ 240{
71 // MACRODOWN only works in this function
72 switch(id) { 241 switch(id) {
73 case 0: 242 case _QWERTY:
243 if (record->event.pressed) {
244 #ifdef AUDIO_ENABLE
245 play_notes(&tone_qwerty, 4, false);
246 #endif
247 persistant_default_layer_set(1UL<<_QWERTY);
248 }
249 break;
250 case _COLEMAK:
251 if (record->event.pressed) {
252 #ifdef AUDIO_ENABLE
253 play_notes(&tone_colemak, 6, false);
254 #endif
255 persistant_default_layer_set(1UL<<_COLEMAK);
256 }
257 break;
258 case _DVORAK:
259 if (record->event.pressed) {
260 #ifdef AUDIO_ENABLE
261 play_notes(&tone_dvorak, 8, false);
262 #endif
263 persistant_default_layer_set(1UL<<_DVORAK);
264 }
265 break;
266 case _LOWER:
267 if (record->event.pressed) {
268 layer_on(_LOWER);
269 update_tri_layer(_LOWER, _RAISE, _ADJUST);
270 } else {
271 layer_off(_LOWER);
272 update_tri_layer(_LOWER, _RAISE, _ADJUST);
273 }
274 break;
275 case _RAISE:
276 if (record->event.pressed) {
277 layer_on(_RAISE);
278 update_tri_layer(_LOWER, _RAISE, _ADJUST);
279 } else {
280 layer_off(_RAISE);
281 update_tri_layer(_LOWER, _RAISE, _ADJUST);
282 }
283 break;
284 case M_BL:
74 if (record->event.pressed) { 285 if (record->event.pressed) {
75 register_code(KC_RSFT); 286 register_code(KC_RSFT);
76 #ifdef BACKLIGHT_ENABLE 287 #ifdef BACKLIGHT_ENABLE
@@ -80,13 +291,59 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
80 unregister_code(KC_RSFT); 291 unregister_code(KC_RSFT);
81 } 292 }
82 break; 293 break;
294 case 6:
295 if (record->event.pressed) {
296 #ifdef AUDIO_ENABLE
297 audio_off();
298 #endif
299 }
300 break;
301 case 7:
302 if (record->event.pressed) {
303 #ifdef AUDIO_ENABLE
304 audio_on();
305 play_notes(&start_up, 4, false);
306 #endif
307 }
308 break;
309 case 8:
310 if (record->event.pressed) {
311 #ifdef AUDIO_ENABLE
312 layer_off(_MUSIC);
313 stop_all_notes();
314 #endif
315 }
316 break;
317 case 9:
318 if (record->event.pressed) {
319 #ifdef AUDIO_ENABLE
320 play_notes(&tone_music, 8, false);
321 layer_on(_MUSIC);
322 #endif
323 }
324 break;
83 } 325 }
84 return MACRO_NONE; 326 return MACRO_NONE;
85}; 327};
86 328
329uint8_t starting_note = 0x0C;
330int offset = 7;
331
332void process_action_user(keyrecord_t *record) {
333
334 if (IS_LAYER_ON(_MUSIC)) {
335 if (record->event.pressed) {
336 play_note(((double)261.626)*pow(2.0, -2.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
337 } else {
338 stop_note(((double)261.626)*pow(2.0, -2.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
339 }
340 }
341
342}
343
87void matrix_init_user(void) { 344void matrix_init_user(void) {
88#ifdef AUDIO_ENABLE 345 #ifdef AUDIO_ENABLE
89 init_notes(); 346 init_notes();
90 play_notes(&start_up, 5, false); 347 play_notes(&start_up, 4, false);
91#endif 348 #endif
92} 349}
diff --git a/keyboard/preonic/keymaps/default/makefile.mk b/keyboard/preonic/keymaps/default/makefile.mk
new file mode 100644
index 000000000..628167ff6
--- /dev/null
+++ b/keyboard/preonic/keymaps/default/makefile.mk
@@ -0,0 +1 @@
AUDIO_ENABLE = yes \ No newline at end of file