summaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2022-12-27 20:15:16 +0000
committerQMK Bot <hello@qmk.fm>2022-12-27 20:15:16 +0000
commit3b80638ac32b348f994f91dcf024fdfc883f2b3a (patch)
tree2aaa86877278f4667361b9b96668332066241238 /keyboards
parent7f2ac4c5765f899d53aef6456a99be910ce3f3b5 (diff)
parent202a708ba7d35cc77fab6c49294f44bea528760e (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/mk65/config.h25
-rw-r--r--keyboards/mk65/info.json127
-rw-r--r--keyboards/mk65/keymaps/default/keymap.c52
-rw-r--r--keyboards/mk65/keymaps/default/rules.mk1
-rw-r--r--keyboards/mk65/keymaps/via/keymap.c61
-rw-r--r--keyboards/mk65/keymaps/via/rules.mk4
-rw-r--r--keyboards/mk65/mk65.c31
-rw-r--r--keyboards/mk65/readme.md26
-rw-r--r--keyboards/mk65/rules.mk1
-rw-r--r--keyboards/preonic/keymaps/snowskeleton/config.h30
-rw-r--r--keyboards/preonic/keymaps/snowskeleton/keymap.c178
-rw-r--r--keyboards/preonic/keymaps/snowskeleton/readme.md20
-rw-r--r--keyboards/preonic/keymaps/snowskeleton/rules.mk3
13 files changed, 559 insertions, 0 deletions
diff --git a/keyboards/mk65/config.h b/keyboards/mk65/config.h
new file mode 100644
index 0000000000..22a135746e
--- /dev/null
+++ b/keyboards/mk65/config.h
@@ -0,0 +1,25 @@
1/* Copyright 2022 DeskDaily
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#pragma once
18
19#include "config_common.h"
20
21/* Encoders */
22
23#define ENCODERS_PAD_A { B1 }
24#define ENCODERS_PAD_B { B2 }
25#define TAP_CODE_DELAY 10 \ No newline at end of file
diff --git a/keyboards/mk65/info.json b/keyboards/mk65/info.json
new file mode 100644
index 0000000000..01d226ce4c
--- /dev/null
+++ b/keyboards/mk65/info.json
@@ -0,0 +1,127 @@
1{
2 "keyboard_name": "MK-65",
3 "manufacturer": "mangooo",
4 "url": "",
5 "maintainer": "DeskDaily",
6 "usb": {
7 "vid": "0x5004",
8 "pid": "0x0001",
9 "device_version": "1.0.0"
10 },
11 "processor": "atmega32u4",
12 "bootloader": "atmel-dfu",
13 "matrix_pins": {
14 "rows": ["D5", "D3", "D2", "D6", "D1"],
15 "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D4", "E6", "B3", "B7"]
16 },
17 "diode_direction": "COL2ROW",
18 "features": {
19 "bootmagic": true,
20 "mousekey": true,
21 "extrakey": true,
22 "console": false,
23 "command": false,
24 "nkro": true,
25 "backlight": false,
26 "rgblight": true,
27 "audio": false,
28 "key_lock": false
29 },
30 "rgblight": {
31 "pin": "B0",
32 "led_count": 7,
33 "hue_steps": 8,
34 "saturation_steps": 8,
35 "brightness_steps": 8,
36 "max_brightness": 255,
37 "sleep": true,
38 "animations": {
39 "alternating": true,
40 "breathing": true,
41 "christmas": true,
42 "knight": true,
43 "rainbow_mood": true,
44 "rainbow_swirl": true,
45 "rgb_test": true,
46 "snake": true,
47 "static_gradient": true,
48 "twinkle": true
49 }
50 },
51 "layouts": {
52 "LAYOUT": {
53 "layout": [
54 {"matrix": [0, 0], "x": 0, "y": 0.25},
55 {"matrix": [0, 1], "x": 1, "y": 0.25},
56 {"matrix": [0, 2], "x": 2, "y": 0.25},
57 {"matrix": [0, 3], "x": 3, "y": 0.25},
58 {"matrix": [0, 4], "x": 4, "y": 0.25},
59 {"matrix": [0, 5], "x": 5, "y": 0.25},
60 {"matrix": [0, 6], "x": 6, "y": 0.25},
61 {"matrix": [0, 7], "x": 7, "y": 0.25},
62 {"matrix": [0, 8], "x": 8, "y": 0.25},
63 {"matrix": [0, 9], "x": 9, "y": 0.25},
64 {"matrix": [0, 10], "x": 10, "y": 0.25},
65 {"matrix": [0, 11], "x": 11, "y": 0.25},
66 {"matrix": [0, 12], "x": 12, "y": 0.25},
67 {"matrix": [0, 13], "x": 13, "y": 0.25},
68 {"matrix": [0, 14], "x": 14, "y": 0.25},
69 {"matrix": [0, 15], "x": 15.5, "y": 0},
70 {"matrix": [1, 0], "x": 0, "y": 1.25, "w": 1.5},
71 {"matrix": [1, 1], "x": 1.5, "y": 1.25},
72 {"matrix": [1, 2], "x": 2.5, "y": 1.25},
73 {"matrix": [1, 3], "x": 3.5, "y": 1.25},
74 {"matrix": [1, 4], "x": 4.5, "y": 1.25},
75 {"matrix": [1, 5], "x": 5.5, "y": 1.25},
76 {"matrix": [1, 6], "x": 6.5, "y": 1.25},
77 {"matrix": [1, 7], "x": 7.5, "y": 1.25},
78 {"matrix": [1, 8], "x": 8.5, "y": 1.25},
79 {"matrix": [1, 9], "x": 9.5, "y": 1.25},
80 {"matrix": [1, 10], "x": 10.5, "y": 1.25},
81 {"matrix": [1, 11], "x": 11.5, "y": 1.25},
82 {"matrix": [1, 12], "x": 12.5, "y": 1.25},
83 {"matrix": [1, 13], "x": 13.5, "y": 1.25, "w": 1.5},
84 {"matrix": [1, 15], "x": 15.5, "y": 1.25},
85 {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.75},
86 {"matrix": [2, 1], "x": 1.75, "y": 2.25},
87 {"matrix": [2, 2], "x": 2.75, "y": 2.25},
88 {"matrix": [2, 3], "x": 3.75, "y": 2.25},
89 {"matrix": [2, 4], "x": 4.75, "y": 2.25},
90 {"matrix": [2, 5], "x": 5.75, "y": 2.25},
91 {"matrix": [2, 6], "x": 6.75, "y": 2.25},
92 {"matrix": [2, 7], "x": 7.75, "y": 2.25},
93 {"matrix": [2, 8], "x": 8.75, "y": 2.25},
94 {"matrix": [2, 9], "x": 9.75, "y": 2.25},
95 {"matrix": [2, 10], "x": 10.75, "y": 2.25},
96 {"matrix": [2, 11], "x": 11.75, "y": 2.25},
97 {"matrix": [2, 13], "x": 12.75, "y": 2.25, "w": 2.25},
98 {"matrix": [2, 15], "x": 15.5, "y": 2.25},
99 {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.25},
100 {"matrix": [3, 1], "x": 1.25, "y": 3.25},
101 {"matrix": [3, 2], "x": 2.25, "y": 3.25},
102 {"matrix": [3, 3], "x": 3.25, "y": 3.25},
103 {"matrix": [3, 4], "x": 4.25, "y": 3.25},
104 {"matrix": [3, 5], "x": 5.25, "y": 3.25},
105 {"matrix": [3, 6], "x": 6.25, "y": 3.25},
106 {"matrix": [3, 7], "x": 7.25, "y": 3.25},
107 {"matrix": [3, 8], "x": 8.25, "y": 3.25},
108 {"matrix": [3, 9], "x": 9.25, "y": 3.25},
109 {"matrix": [3, 10], "x": 10.25, "y": 3.25},
110 {"matrix": [3, 11], "x": 11.25, "y": 3.25},
111 {"matrix": [3, 12], "x": 12.25, "y": 3.25, "w": 1.75},
112 {"matrix": [3, 15], "x": 15.5, "y": 3.25},
113 {"matrix": [3, 14], "x": 14.25, "y": 3.5},
114 {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
115 {"matrix": [4, 1], "x": 1.25, "y": 4.25, "w": 1.25},
116 {"matrix": [4, 2], "x": 2.5, "y": 4.25, "w": 1.25},
117 {"matrix": [4, 6], "x": 3.75, "y": 4.25, "w": 6.25},
118 {"matrix": [4, 10], "x": 10, "y": 4.25},
119 {"matrix": [4, 11], "x": 11, "y": 4.25},
120 {"matrix": [4, 12], "x": 12, "y": 4.25},
121 {"matrix": [4, 13], "x": 13.25, "y": 4.5},
122 {"matrix": [4, 14], "x": 14.25, "y": 4.5},
123 {"matrix": [4, 15], "x": 15.25, "y": 4.5}
124 ]
125 }
126 }
127} \ No newline at end of file
diff --git a/keyboards/mk65/keymaps/default/keymap.c b/keyboards/mk65/keymaps/default/keymap.c
new file mode 100644
index 0000000000..a4f87c0e0d
--- /dev/null
+++ b/keyboards/mk65/keymaps/default/keymap.c
@@ -0,0 +1,52 @@
1/* Copyright 2022 DeskDaily
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
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 [0] = LAYOUT(
22 KC_GRV, 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_BSPC, KC_MUTE,
23 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_DEL,
24 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_PGUP,
25 KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_PGDN, KC_UP,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28
29 [1] = LAYOUT(
30 QK_BOOT, 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,
31 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,
32 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,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_TOG, KC_TRNS, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
35 ),
36
37 [2] = LAYOUT(
38 QK_BOOT, 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, 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_TRNS, KC_TRNS,
41 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
43 ),
44
45 [3] = LAYOUT(
46 QK_BOOT, 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, 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, KC_TRNS,
49 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,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
51 ),
52};
diff --git a/keyboards/mk65/keymaps/default/rules.mk b/keyboards/mk65/keymaps/default/rules.mk
new file mode 100644
index 0000000000..5af1ba8536
--- /dev/null
+++ b/keyboards/mk65/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_ENABLE = yes
diff --git a/keyboards/mk65/keymaps/via/keymap.c b/keyboards/mk65/keymaps/via/keymap.c
new file mode 100644
index 0000000000..4c74523b71
--- /dev/null
+++ b/keyboards/mk65/keymaps/via/keymap.c
@@ -0,0 +1,61 @@
1/* Copyright 2022 DeskDaily
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
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 [0] = LAYOUT(
22 KC_GRV, 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_BSPC, KC_MUTE,
23 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_DEL,
24 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_PGUP,
25 KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_PGDN, KC_UP,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28
29 [1] = LAYOUT(
30 QK_BOOT, 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,
31 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,
32 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,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_TOG, KC_TRNS, KC_TRNS,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
35 ),
36
37 [2] = LAYOUT(
38 QK_BOOT, 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, 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_TRNS, KC_TRNS,
41 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
43 ),
44
45 [3] = LAYOUT(
46 QK_BOOT, 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, 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, KC_TRNS,
49 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,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
51 ),
52};
53
54#if defined(ENCODER_MAP_ENABLE)
55const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
56 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
57 [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
58 [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
59 [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
60 };
61#endif
diff --git a/keyboards/mk65/keymaps/via/rules.mk b/keyboards/mk65/keymaps/via/rules.mk
new file mode 100644
index 0000000000..a97fe75625
--- /dev/null
+++ b/keyboards/mk65/keymaps/via/rules.mk
@@ -0,0 +1,4 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3ENCODER_ENABLE = yes
4ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mk65/mk65.c b/keyboards/mk65/mk65.c
new file mode 100644
index 0000000000..8afb0ac415
--- /dev/null
+++ b/keyboards/mk65/mk65.c
@@ -0,0 +1,31 @@
1/* Copyright 2022 DeskDaily
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
19#ifdef ENCODER_ENABLE
20bool encoder_update_kb(uint8_t index, bool clockwise) {
21 if (!encoder_update_user(index, clockwise)) { return false; }
22 if (index == 0) {
23 if (clockwise) {
24 tap_code_delay(KC_VOLU, 10);
25 } else {
26 tap_code_delay(KC_VOLD, 10);
27 }
28 }
29 return true;
30}
31#endif \ No newline at end of file
diff --git a/keyboards/mk65/readme.md b/keyboards/mk65/readme.md
new file mode 100644
index 0000000000..0d622ecd5b
--- /dev/null
+++ b/keyboards/mk65/readme.md
@@ -0,0 +1,26 @@
1# MK-65
2
3![MK-65](https://i.imgur.com/PMeyjArh.png)
4
5An exploded 65% with encoder and an rgb accent piece
6
7* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily)
8* Hardware Supported: Atmega32u4
9
10Make example for this keyboard (after setting up your build environment):
11
12 make mk65:default
13
14Flashing example for this keyboard:
15
16 make mk65:default:flash
17
18## Bootloader
19
20Enter the bootloader in 3 ways:
21
22* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the upper left key/esc) and plug in the keyboard
23* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
24* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
25
26See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mk65/rules.mk b/keyboards/mk65/rules.mk
new file mode 100644
index 0000000000..7ff128fa69
--- /dev/null
+++ b/keyboards/mk65/rules.mk
@@ -0,0 +1 @@
# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/snowskeleton/config.h b/keyboards/preonic/keymaps/snowskeleton/config.h
new file mode 100644
index 0000000000..7ad61e44c8
--- /dev/null
+++ b/keyboards/preonic/keymaps/snowskeleton/config.h
@@ -0,0 +1,30 @@
1/* Copyright 2015-2021 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#pragma once
18
19#ifdef AUDIO_ENABLE
20#define STARTUP_SONG SONG(PREONIC_SOUND)
21// #define STARTUP_SONG SONG(NO_SOUND) // uncomment to silence startup sounds
22
23#endif
24#define MUSIC_MASK (keycode != KC_NO)
25#define MIDI_BASIC
26
27
28#define ENCODERS_PAD_A { B12 }
29#define ENCODERS_PAD_B { B13 }
30#define ENCODER_RESOLUTION 4
diff --git a/keyboards/preonic/keymaps/snowskeleton/keymap.c b/keyboards/preonic/keymaps/snowskeleton/keymap.c
new file mode 100644
index 0000000000..030adf8cbb
--- /dev/null
+++ b/keyboards/preonic/keymaps/snowskeleton/keymap.c
@@ -0,0 +1,178 @@
1/* Copyright 2015-2021 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 QMK_KEYBOARD_H
18#include "muse.h"
19
20enum preonic_layers {
21 _QWERTY_MACOS,
22 _LOWER,
23 _RAISE,
24 _ADJUST
25};
26
27enum preonic_keycodes {
28 QWERTY_MACOS = SAFE_RANGE,
29 LOWER,
30 RAISE,
31 BACKLIT
32};
33
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35
36/* Qwerty Mac
37 * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
38 * │ Esc │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ Bksp │
39 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
40 * │ ` │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ \ │
41 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
42 * │ Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │
43 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
44 * │ Shft │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shft │
45 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
46 * │ Play │ Ctrl │ Alt │ Gui │Lower │ Space │Raise │ Left │ Down │ Up │ Right│
47 * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
48 */
49[_QWERTY_MACOS] = LAYOUT_preonic_grid(
50 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC,
51 KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
52 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
53 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
54 KC_MPLY, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
55),
56
57
58/* RAISE
59 * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
60 * │ │ F11 │ F12 │ F13 │ F14 │ F15 │ F16 │ F17 │ F18 │ F19 │ F20 │ │
61 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
62 * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ Del │
63 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
64 * │ Del │ │ │ │ │ │ Left │ Down │ Up │ Right│ │ \ │
65 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
66 * │ Shft │ │ │ │ │ │ │ │ │ │ │Enter │
67 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
68 * │ │ │ │ │ │ │ │ │ │ │ │ │
69 * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
70 */
71[_RAISE] = LAYOUT_preonic_grid(
72 _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______,
73 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE,
74 KC_DEL, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_BSLS,
75 KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENTER,
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
77),
78
79
80/* LOWER
81 * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
82 * │ │ │ │ │ │ │ │ │ │ │ │ │
83 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
84 * │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ Del │
85 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
86 * │ Del │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ - │ │ [ │ ] │ \ │
87 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
88 * │Enter │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ + │ = │ { │ } │ Shft │
89 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
90 * │ │ │ │ │ │ │ │ │ │ │ │ │
91 * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
92 */
93[_LOWER] = LAYOUT_preonic_grid(
94 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
95 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELETE,
96 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_UNDS, KC_LBRC, KC_RBRC, KC_BSLS,
97 KC_ENTER, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PLUS, KC_EQL, KC_LCBR, KC_RCBR, KC_RSFT,
98 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
99),
100
101/* ADJUST
102 * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
103 * │ │ │ │ │ │ │ │ │ │ │ │ │
104 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
105 * │ │BOOT │DBTOGG│AUTOGG│ │ │ │ │ Ins │ │ │ Del │
106 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
107 * │ Caps │ │ │ │ │AGTOGG│ │ │ │ │ │ │
108 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
109 * │ │ │ Del │ │ │ │ │ │ │ │ │ │
110 * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
111 * │ │ │ │ │ │ │ │ │ │ │ │ │
112 * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
113 */
114[_ADJUST] = LAYOUT_preonic_grid(
115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
116 _______, QK_BOOT, DB_TOGG, AU_TOGG, _______, _______, _______, _______, KC_INS, _______, _______, KC_DELETE,
117 KC_CAPS, _______, _______, _______, _______, AG_TOGG, _______, _______, _______, _______, _______, _______,
118 _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______,
119 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
120)
121
122
123};
124
125bool process_record_user(uint16_t keycode, keyrecord_t *record) {
126 switch (keycode) {
127 case LOWER:
128 if (record->event.pressed) {
129 layer_on(_LOWER);
130 update_tri_layer(_LOWER, _RAISE, _ADJUST);
131 } else {
132 layer_off(_LOWER);
133 update_tri_layer(_LOWER, _RAISE, _ADJUST);
134 }
135 return false;
136 break;
137 case RAISE:
138 if (record->event.pressed) {
139 layer_on(_RAISE);
140 update_tri_layer(_LOWER, _RAISE, _ADJUST);
141 } else {
142 layer_off(_RAISE);
143 update_tri_layer(_LOWER, _RAISE, _ADJUST);
144 }
145 return false;
146 break;
147 case BACKLIT:
148 if (record->event.pressed) {
149 register_code(KC_RSFT);
150 #ifdef BACKLIGHT_ENABLE
151 backlight_step();
152 #endif
153 #ifdef RGBLIGHT_ENABLE
154 rgblight_step();
155 #endif
156 #ifdef __AVR__
157 writePinLow(E6);
158 #endif
159 } else {
160 unregister_code(KC_RSFT);
161 #ifdef __AVR__
162 writePinHigh(E6);
163 #endif
164 }
165 return false;
166 break;
167 }
168 return true;
169};
170
171#if defined(ENCODER_MAP_ENABLE)
172const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
173 [_QWERTY_MACOS] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
174 [_LOWER] = { ENCODER_CCW_CW(_______, _______) },
175 [_RAISE] = { ENCODER_CCW_CW(KC_BRMU, KC_BRMD) },
176 [_ADJUST] = { ENCODER_CCW_CW(_______, _______) },
177};
178#endif
diff --git a/keyboards/preonic/keymaps/snowskeleton/readme.md b/keyboards/preonic/keymaps/snowskeleton/readme.md
new file mode 100644
index 0000000000..76a1dda003
--- /dev/null
+++ b/keyboards/preonic/keymaps/snowskeleton/readme.md
@@ -0,0 +1,20 @@
1# Snowskeleton Preonic Layout (with Rotery Encoder)
2This layout aims to optimize several corner cases where the default layout falls short.
3This is a opinionated layout, designed for efficient coding in English.
4As such, several internationalizations have been removed,
5and you may wish to add them back in when adjusting to your language.
6
7Special notes:
8
9the Enter key is only accessable through alternate layers,
10but there it is available on both sides of the board (depending on the layer).
11
12Numbers and their coorisponding symbols (1 and !, 2 and @, etc) can be typed several ways.
13Each is available on its own layer,
14while still following Shift key convention.
15
16Vim-like arrow keys on Raise layer.
17
18Instead of having a separate layout for Windows,
19I only support swapping the Gui and Alt keys.
20This provides 99% of the functionality without requiring the maintainence of two separate layouts.
diff --git a/keyboards/preonic/keymaps/snowskeleton/rules.mk b/keyboards/preonic/keymaps/snowskeleton/rules.mk
new file mode 100644
index 0000000000..da6657c8bd
--- /dev/null
+++ b/keyboards/preonic/keymaps/snowskeleton/rules.mk
@@ -0,0 +1,3 @@
1SRC += muse.c
2ENCODER_ENABLE = yes
3ENCODER_MAP_ENABLE = yes