aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJagdPietr Reneksson <59313824+JagdPietr@users.noreply.github.com>2020-10-17 17:11:51 +0800
committerGitHub <noreply@github.com>2020-10-17 02:11:51 -0700
commitfba7d4e32f4292094934fb47943b22a70a28ce57 (patch)
tree3e45d995bf882b58f146103e75aad9dfe90fbabe
parentcab49809ad43abdbcf9179a73a3c2da078defcb4 (diff)
downloadqmk_firmware-fba7d4e32f4292094934fb47943b22a70a28ce57.tar.gz
qmk_firmware-fba7d4e32f4292094934fb47943b22a70a28ce57.zip
Move Drakon to jagdpietr directory (#10155)
* move drakon to jagdpietr directory * Updates Recommended changes implemented in this commit due to progress loss in last commit * Update vusb * Update keyboards/jagdpietr/drakon/drakon.c
-rw-r--r--keyboards/drakon/drakon.c17
-rw-r--r--keyboards/drakon/keymaps/logo/readme.md1
-rw-r--r--keyboards/drakon/keymaps/wkl/keymap.c248
-rw-r--r--keyboards/jagdpietr/drakon/config.h (renamed from keyboards/drakon/config.h)0
-rw-r--r--keyboards/jagdpietr/drakon/drakon.c (renamed from keyboards/drakon/keymaps/default/keymap.c)48
-rw-r--r--keyboards/jagdpietr/drakon/drakon.h (renamed from keyboards/drakon/drakon.h)0
-rw-r--r--keyboards/jagdpietr/drakon/info.json (renamed from keyboards/drakon/info.json)0
-rw-r--r--keyboards/jagdpietr/drakon/keymaps/default/keymap.c (renamed from keyboards/drakon/keymaps/logo/keymap.c)61
-rw-r--r--keyboards/jagdpietr/drakon/keymaps/default/readme.md (renamed from keyboards/drakon/keymaps/default/readme.md)0
-rw-r--r--keyboards/jagdpietr/drakon/keymaps/wkl/keymap.c50
-rw-r--r--keyboards/jagdpietr/drakon/keymaps/wkl/readme.md (renamed from keyboards/drakon/keymaps/wkl/readme.md)0
-rw-r--r--keyboards/jagdpietr/drakon/readme.md (renamed from keyboards/drakon/readme.md)0
-rw-r--r--keyboards/jagdpietr/drakon/rules.mk (renamed from keyboards/drakon/rules.mk)0
13 files changed, 63 insertions, 362 deletions
diff --git a/keyboards/drakon/drakon.c b/keyboards/drakon/drakon.c
deleted file mode 100644
index 29fe65f46..000000000
--- a/keyboards/drakon/drakon.c
+++ /dev/null
@@ -1,17 +0,0 @@
1/* Copyright 2020 jagdpietr
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 "drakon.h"
diff --git a/keyboards/drakon/keymaps/logo/readme.md b/keyboards/drakon/keymaps/logo/readme.md
deleted file mode 100644
index 419f434ea..000000000
--- a/keyboards/drakon/keymaps/logo/readme.md
+++ /dev/null
@@ -1 +0,0 @@
1# The logo keymap for drakon
diff --git a/keyboards/drakon/keymaps/wkl/keymap.c b/keyboards/drakon/keymaps/wkl/keymap.c
deleted file mode 100644
index ca261f35b..000000000
--- a/keyboards/drakon/keymaps/wkl/keymap.c
+++ /dev/null
@@ -1,248 +0,0 @@
1/* Copyright 2020 jagdpietr
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
18char wpm_str[10];
19
20// Defines names for use in layer keycodes and the keymap
21enum Layer_names {
22_Base,
23_FN,
24_Lyr2
25};
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28 [_Base] = LAYOUT_wkl(
29 KC_GESC, 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_DEL, KC_MUTE,
30 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_MPRV, KC_MPLY, KC_MNXT,
31 KC_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_MSTP,
32 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,
33 KC_LCTL, KC_LALT, KC_SPC, KC_APP, MO(_FN), KC_LEFT, KC_DOWN, KC_RIGHT
34 ),
35
36 [_FN] = LAYOUT_wkl(
37 KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
42 ),
43
44 [_Lyr2] = LAYOUT_wkl(
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
50 )
51
52};
53
54void encoder_update_user(uint8_t index, bool clockwise) {
55 if (clockwise) {
56 tap_code(KC_VOLU);
57 } else {
58 tap_code(KC_VOLD);
59 }
60}
61
62#ifdef OLED_DRIVER_ENABLE
63
64oled_rotation_t oled_init_user(oled_rotation_t rotation) {
65 return OLED_ROTATION_90; // flips the display 90 degrees if offhand
66
67}
68
69void render_status(void) {
70 //Host Keyboard Layer Status
71 oled_set_cursor(0,10);
72 oled_write_P(PSTR("Lyr: "), false);
73
74 switch (get_highest_layer(layer_state)) {
75 case _Base:
76 oled_write_P(PSTR("Base\n"), false);
77 break;
78 case _FN:
79 oled_write_P(PSTR("FN\n"), false);
80 break;
81 case _Lyr2:
82 oled_write_P(PSTR("Lyr2\n"), false);
83 break;
84 default:
85 // Or use the write_ln shortcut over adding '\n' to the end of your string
86 oled_write_ln_P(PSTR("Undefined"), false);
87 }
88 // Host Keyboard LED Status
89 led_t led_state = host_keyboard_led_state();
90 oled_set_cursor(0,12);
91 oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
92
93}
94
95// WPM-responsive animation stuff here
96#define IDLE_FRAMES 5
97#define IDLE_SPEED 40 // below this wpm value your animation will idle
98
99// #define PREP_FRAMES 1 // uncomment if >1
100
101#define TAP_FRAMES 2
102#define TAP_SPEED 60 // above this wpm value typing animation to triggere
103
104#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms
105// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing
106#define ANIM_SIZE 128 // number of bytes in array, minimize for adequate firmware size, max is 1024
107
108uint32_t anim_timer = 0;
109uint32_t anim_sleep = 0;
110uint8_t current_idle_frame = 0;
111// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1
112uint8_t current_tap_frame = 0;
113
114// Images credit j-inc(/James Incandenza) and pixelbenny. Credit to obosob for initial animation approach.
115static void render_anim(void) {
116 static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {
117 {
118 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x60,
119 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
120 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x0c, 0x06, 0x03, 0x81, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
121 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x04, 0x0c, 0x18, 0x10, 0x18, 0x08, 0xf8, 0x00, 0x00, 0x00,
122 0x00, 0x3e, 0x23, 0x20, 0x20, 0x20, 0x30, 0x10, 0x10, 0x10, 0x30, 0x21, 0x21, 0x63, 0x43, 0x42,
123 0xc0, 0x80, 0x88, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x73, 0xc0, 0x00, 0x00,
124 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
125 0x00, 0x00, 0x05, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x06, 0x04, 0x0c, 0x08, 0x0b, 0x08, 0x00
126 },
127 {
128 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
129 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
130 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x60, 0x30, 0x10, 0x08, 0x04, 0x04, 0x06, 0x01, 0x01, 0x06,
131 0x04, 0x0c, 0x08, 0x18, 0x10, 0x30, 0x20, 0x40, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0x00, 0x00,
132 0xe0, 0x98, 0x04, 0x03, 0x01, 0x80, 0x80, 0x80, 0x80, 0x84, 0x86, 0x80, 0x08, 0x18, 0x10, 0x00,
133 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x78, 0x87, 0x00, 0x00,
134 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02,
135 0x02, 0x02, 0x0e, 0x3e, 0x20, 0x20, 0x20, 0x10, 0x10, 0x18, 0x18, 0x10, 0x10, 0x33, 0x3e, 0x00
136 },
137 {
138 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x60,
139 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x0c, 0x06, 0x03, 0x81, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
141 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x04, 0x0c, 0x18, 0x10, 0x18, 0x08, 0xf8, 0x00, 0x00, 0x00,
142 0x00, 0x3e, 0x23, 0x20, 0x20, 0x20, 0x30, 0x10, 0x10, 0x10, 0x30, 0x21, 0x21, 0x63, 0x43, 0x42,
143 0xc0, 0x80, 0x88, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x73, 0xc0, 0x00, 0x00,
144 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
145 0x00, 0x00, 0x05, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x06, 0x04, 0x0c, 0x08, 0x0b, 0x08, 0x00
146 },
147 {
148 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
149 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
150 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x60, 0x30, 0x10, 0x08, 0x04, 0x04, 0x06, 0x01, 0x01, 0x06,
151 0x04, 0x0c, 0x08, 0x18, 0x10, 0x30, 0x20, 0x40, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0x00, 0x00,
152 0xe0, 0x98, 0x04, 0x03, 0x01, 0x80, 0x80, 0x80, 0x80, 0x84, 0x86, 0x80, 0x08, 0x18, 0x10, 0x00,
153 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x78, 0x87, 0x00, 0x00,
154 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02,
155 0x02, 0x02, 0x0e, 0x3e, 0x20, 0x20, 0x20, 0x10, 0x10, 0x18, 0x18, 0x10, 0x10, 0x33, 0x3e, 0x00
156 },
157 {
158 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x60,
159 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
160 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x0c, 0x06, 0x03, 0x81, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
161 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x04, 0x0c, 0x18, 0x10, 0x18, 0x08, 0xf8, 0x00, 0x00, 0x00,
162 0x00, 0x3e, 0x23, 0x20, 0x20, 0x20, 0x30, 0x10, 0x10, 0x10, 0x30, 0x21, 0x21, 0x63, 0x43, 0x42,
163 0xc0, 0x80, 0x88, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x73, 0xc0, 0x00, 0x00,
164 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
165 0x00, 0x00, 0x05, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x06, 0x04, 0x0c, 0x08, 0x0b, 0x08, 0x00
166 }
167 };
168 static const char PROGMEM prep[][ANIM_SIZE] = {
169 {
170 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x30, 0x18, 0x0c, 0x38,
171 0x60, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
172 0x00, 0xf8, 0x18, 0x0c, 0x0c, 0x38, 0x0c, 0x06, 0x03, 0x01, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
173 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x06, 0x04, 0x08, 0x18, 0x30, 0x18, 0x18, 0xf8, 0x00, 0x00,
174 0x00, 0x07, 0x0c, 0x18, 0x18, 0x10, 0x10, 0x10, 0x20, 0x60, 0x61, 0x41, 0x42, 0xc2, 0x86, 0x84,
175 0x80, 0x00, 0x00, 0x18, 0x10, 0xfc, 0x02, 0x02, 0x04, 0x1c, 0x00, 0x00, 0x3e, 0xe1, 0x00, 0x00,
176 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
177 0x01, 0x03, 0x03, 0x02, 0x06, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x10, 0x10, 0x30, 0x20, 0x3f, 0x00
178 }
179 };
180 static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = {
181 {
182 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x30, 0x18, 0x0c, 0x38,
183 0x60, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
184 0xfe, 0xfe, 0x80, 0xc0, 0x60, 0x18, 0x0c, 0x02, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
185 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x04, 0x08, 0x10, 0x10, 0x18, 0x08, 0xfc, 0x00, 0x00,
186 0xf9, 0xff, 0xe3, 0xe0, 0xc0, 0x40, 0x60, 0x20, 0x20, 0x60, 0x41, 0x40, 0xc3, 0x82, 0x86, 0x04,
187 0x00, 0x00, 0x00, 0x18, 0x18, 0xfc, 0x06, 0x06, 0x04, 0x38, 0x00, 0x00, 0x1c, 0xe7, 0x00, 0x00,
188 0xf0, 0xfc, 0x03, 0x00, 0x01, 0x07, 0x7c, 0x78, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
189 0x01, 0x03, 0x02, 0x02, 0x06, 0x07, 0x04, 0x0c, 0x08, 0x08, 0x18, 0x10, 0x30, 0x21, 0x3f, 0x38
190 },
191 {
192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x60, 0x30, 0x18, 0x0c, 0x38,
193 0x60, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
194 0xe0, 0xf8, 0x04, 0x04, 0x0c, 0x3c, 0x06, 0x03, 0x01, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
195 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x0c, 0x18, 0x98, 0x08, 0x0c, 0xfc, 0x00, 0x00,
196 0x03, 0x07, 0x04, 0x0c, 0x08, 0x08, 0x18, 0x10, 0x10, 0x30, 0x20, 0x20, 0x61, 0x43, 0x43, 0xc2,
197 0x80, 0x80, 0x80, 0x8c, 0x80, 0x00, 0x00, 0xe0, 0xf8, 0x7e, 0x3f, 0x1f, 0x1f, 0x7d, 0x80, 0x00,
198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0x70,
199 0x30, 0x38, 0x19, 0x0f, 0x1e, 0x1c, 0x79, 0xf8, 0xe8, 0xc4, 0x84, 0x08, 0x08, 0x18, 0x1f, 0x1c
200 },
201 };
202
203 //assumes 1 frame prep stage
204 void animation_phase(void) {
205 if(get_current_wpm() <=IDLE_SPEED){
206 current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES;
207 oled_write_raw_P(idle[abs((IDLE_FRAMES-1)-current_idle_frame)], ANIM_SIZE);
208 }
209 if(get_current_wpm() >IDLE_SPEED && get_current_wpm() <TAP_SPEED){
210 // oled_write_raw_P(prep[abs((PREP_FRAMES-1)-current_prep_frame)], ANIM_SIZE); // uncomment if IDLE_FRAMES >1
211 oled_write_raw_P(prep[0], ANIM_SIZE); // remove if IDLE_FRAMES >1
212 }
213 if(get_current_wpm() >=TAP_SPEED){
214 current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES;
215 oled_write_raw_P(tap[abs((TAP_FRAMES-1)-current_tap_frame)], ANIM_SIZE);
216 }
217 }
218 if(get_current_wpm() != 000) {
219 oled_on(); // not essential but turns on animation OLED with any alpha keypress
220 if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
221 anim_timer = timer_read32();
222 animation_phase();
223 }
224 anim_sleep = timer_read32();
225 } else {
226 if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
227 oled_off();
228 } else {
229 if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
230 anim_timer = timer_read32();
231 animation_phase();
232 }
233 }
234 }
235}
236void oled_task_user(void) {
237
238 render_anim();
239 oled_set_cursor(0,6);
240 sprintf(wpm_str, " WPM: %03d", get_current_wpm());
241 oled_set_cursor(0,5);
242 oled_write(wpm_str, false);
243
244 render_status();
245
246 }
247
248#endif
diff --git a/keyboards/drakon/config.h b/keyboards/jagdpietr/drakon/config.h
index f9565e41a..f9565e41a 100644
--- a/keyboards/drakon/config.h
+++ b/keyboards/jagdpietr/drakon/config.h
diff --git a/keyboards/drakon/keymaps/default/keymap.c b/keyboards/jagdpietr/drakon/drakon.c
index 04c511f21..ca25ac317 100644
--- a/keyboards/drakon/keymaps/default/keymap.c
+++ b/keyboards/jagdpietr/drakon/drakon.c
@@ -13,43 +13,12 @@
13 * You should have received a copy of the GNU General Public License 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/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#include QMK_KEYBOARD_H
17 16
18char wpm_str[10]; 17#include "drakon.h"
19 18
20// Defines names for use in layer keycodes and the keymap 19char wpm_str[10];
21enum Layer_names {
22_Base,
23_FN,
24_Lyr2
25};
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28 [_Base] = LAYOUT_ansi(
29 KC_GESC, 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_DEL, KC_MUTE,
30 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_MPRV, KC_MPLY, KC_MNXT,
31 KC_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_MSTP,
32 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,
33 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, MO(_FN), KC_LEFT, KC_DOWN, KC_RIGHT
34 ),
35
36 [_FN] = LAYOUT_ansi(
37 KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
42 ),
43
44 [_Lyr2] = LAYOUT_ansi(
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
50 )
51};
52 20
21__attribute__((weak))
53void encoder_update_user(uint8_t index, bool clockwise) { 22void encoder_update_user(uint8_t index, bool clockwise) {
54 if (clockwise) { 23 if (clockwise) {
55 tap_code(KC_VOLU); 24 tap_code(KC_VOLU);
@@ -60,12 +29,20 @@ void encoder_update_user(uint8_t index, bool clockwise) {
60 29
61#ifdef OLED_DRIVER_ENABLE 30#ifdef OLED_DRIVER_ENABLE
62 31
32// Defines names for use in layer keycodes and the keymap
33enum Layer_names {
34_Base,
35_FN,
36_Lyr2
37};
38
39__attribute__((weak))
63oled_rotation_t oled_init_user(oled_rotation_t rotation) { 40oled_rotation_t oled_init_user(oled_rotation_t rotation) {
64 return OLED_ROTATION_90; // flips the display 90 degrees if offhand 41 return OLED_ROTATION_90; // flips the display 90 degrees if offhand
65 42
66} 43}
67 44
68void render_status(void) { 45static void render_status(void) {
69 //Host Keyboard Layer Status 46 //Host Keyboard Layer Status
70 oled_set_cursor(0,10); 47 oled_set_cursor(0,10);
71 oled_write_P(PSTR("Lyr: "), false); 48 oled_write_P(PSTR("Lyr: "), false);
@@ -232,6 +209,7 @@ static void render_anim(void) {
232 } 209 }
233 } 210 }
234} 211}
212__attribute__((weak))
235void oled_task_user(void) { 213void oled_task_user(void) {
236 214
237 render_anim(); 215 render_anim();
diff --git a/keyboards/drakon/drakon.h b/keyboards/jagdpietr/drakon/drakon.h
index 68315914d..68315914d 100644
--- a/keyboards/drakon/drakon.h
+++ b/keyboards/jagdpietr/drakon/drakon.h
diff --git a/keyboards/drakon/info.json b/keyboards/jagdpietr/drakon/info.json
index 328bdba9e..328bdba9e 100644
--- a/keyboards/drakon/info.json
+++ b/keyboards/jagdpietr/drakon/info.json
diff --git a/keyboards/drakon/keymaps/logo/keymap.c b/keyboards/jagdpietr/drakon/keymaps/default/keymap.c
index a20559d9e..70ec6845b 100644
--- a/keyboards/drakon/keymaps/logo/keymap.c
+++ b/keyboards/jagdpietr/drakon/keymaps/default/keymap.c
@@ -47,64 +47,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
48 ) 48 )
49}; 49};
50
51void encoder_update_user(uint8_t index, bool clockwise) {
52 if (clockwise) {
53 tap_code(KC_VOLU);
54 } else {
55 tap_code(KC_VOLD);
56 }
57}
58
59#ifdef OLED_DRIVER_ENABLE
60
61oled_rotation_t oled_init_user(oled_rotation_t rotation) {
62 return OLED_ROTATION_90; // flips the display 90 degrees if offhand
63
64}
65
66void oled_task_user(void) {
67 static const char PROGMEM drakon_logo[] = {
68 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x40, 0x80,
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
70 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x18, 0x18, 0x11, 0x17, 0x11, 0x12, 0x22, 0x24, 0x28, 0x59,
71 0x52, 0xec, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
72 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1e, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8,
73 0x03, 0xfc, 0x01, 0x03, 0x07, 0x1e, 0x78, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
74 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x0b, 0x06, 0x1c, 0x18, 0x10, 0x10, 0x30,
75 0x2e, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x27, 0x3c, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
76 0x00, 0x1c, 0x22, 0x41, 0x41, 0xc1, 0x22, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x41, 0x47, 0x06, 0x38,
77 0x38, 0x00, 0x47, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x41, 0x7f, 0x4d, 0x0c, 0x10, 0x63, 0x41, 0x00,
78 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
79 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
80 };
81 oled_set_cursor(0,4);
82 oled_write_raw_P(drakon_logo, 192);
83
84 // Host Keyboard Layer Status
85 oled_set_cursor(0,10);
86 oled_write_P(PSTR("Lyr: "), false);
87
88 switch (get_highest_layer(layer_state)) {
89 case _Base:
90 oled_write_P(PSTR("Base\n"), false);
91 break;
92 case _FN:
93 oled_write_P(PSTR("FN\n"), false);
94 break;
95 case _Lyr2:
96 oled_write_P(PSTR("Lyr2\n"), false);
97 break;
98 default:
99 // Or use the write_ln shortcut over adding '\n' to the end of your string
100 oled_write_ln_P(PSTR("Undefined"), false);
101 }
102 // Host Keyboard LED Status
103 led_t led_state = host_keyboard_led_state();
104 oled_set_cursor(0,12);
105 oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
106
107
108}
109
110#endif
diff --git a/keyboards/drakon/keymaps/default/readme.md b/keyboards/jagdpietr/drakon/keymaps/default/readme.md
index e56b5a93b..e56b5a93b 100644
--- a/keyboards/drakon/keymaps/default/readme.md
+++ b/keyboards/jagdpietr/drakon/keymaps/default/readme.md
diff --git a/keyboards/jagdpietr/drakon/keymaps/wkl/keymap.c b/keyboards/jagdpietr/drakon/keymaps/wkl/keymap.c
new file mode 100644
index 000000000..79582353c
--- /dev/null
+++ b/keyboards/jagdpietr/drakon/keymaps/wkl/keymap.c
@@ -0,0 +1,50 @@
1/* Copyright 2020 jagdpietr
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
18// Defines names for use in layer keycodes and the keymap
19enum Layer_names {
20_Base,
21_FN,
22_Lyr2
23};
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [_Base] = LAYOUT_wkl(
27 KC_GESC, 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_DEL, KC_MUTE,
28 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_MPRV, KC_MPLY, KC_MNXT,
29 KC_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_MSTP,
30 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,
31 KC_LCTL, KC_LALT, KC_SPC, KC_APP, MO(_FN), KC_LEFT, KC_DOWN, KC_RIGHT
32 ),
33
34 [_FN] = LAYOUT_wkl(
35 KC_TRNS, 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_DEL, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
40 ),
41
42 [_Lyr2] = LAYOUT_wkl(
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
48 )
49
50};
diff --git a/keyboards/drakon/keymaps/wkl/readme.md b/keyboards/jagdpietr/drakon/keymaps/wkl/readme.md
index 46356035b..46356035b 100644
--- a/keyboards/drakon/keymaps/wkl/readme.md
+++ b/keyboards/jagdpietr/drakon/keymaps/wkl/readme.md
diff --git a/keyboards/drakon/readme.md b/keyboards/jagdpietr/drakon/readme.md
index f20bdfdf6..f20bdfdf6 100644
--- a/keyboards/drakon/readme.md
+++ b/keyboards/jagdpietr/drakon/readme.md
diff --git a/keyboards/drakon/rules.mk b/keyboards/jagdpietr/drakon/rules.mk
index a74fce289..a74fce289 100644
--- a/keyboards/drakon/rules.mk
+++ b/keyboards/jagdpietr/drakon/rules.mk