aboutsummaryrefslogtreecommitdiff
path: root/keyboards/ffkeebs
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ffkeebs')
-rw-r--r--keyboards/ffkeebs/puca/info.json88
-rw-r--r--keyboards/ffkeebs/puca/keymaps/default/keymap.c52
-rw-r--r--keyboards/ffkeebs/puca/keymaps/default_numpad/keymap.c38
-rw-r--r--keyboards/ffkeebs/puca/keymaps/default_ortho/keymap.c38
-rw-r--r--keyboards/ffkeebs/puca/puca.c14
-rw-r--r--keyboards/ffkeebs/puca/puca.h96
-rw-r--r--keyboards/ffkeebs/puca/readme.md2
-rw-r--r--keyboards/ffkeebs/puca/rules.mk6
8 files changed, 271 insertions, 63 deletions
diff --git a/keyboards/ffkeebs/puca/info.json b/keyboards/ffkeebs/puca/info.json
index 0b5b957e6..204f0ca49 100644
--- a/keyboards/ffkeebs/puca/info.json
+++ b/keyboards/ffkeebs/puca/info.json
@@ -2,35 +2,105 @@
2 "keyboard_name": "Puca", 2 "keyboard_name": "Puca",
3 "url": "https://ffkeebs.com/collections/puca/", 3 "url": "https://ffkeebs.com/collections/puca/",
4 "maintainer": "Sleepdealr", 4 "maintainer": "Sleepdealr",
5 "layout_aliases": {
6 "LAYOUT": "LAYOUT_all"
7 },
5 "layouts": { 8 "layouts": {
6 "LAYOUT": { 9 "LAYOUT_all": {
7 "layout": [ 10 "layout": [
8 { "label": "Rotary", "x": 0.5, "y": 0 }, 11 { "label": "Rotary", "x": 0.5, "y": 0 },
9 { "label": "Pg Up", "x": 2, "y": 0 }, 12 { "label": "Pg Up", "x": 2, "y": 0 },
10 { "label": "Pg Dn", "x": 3, "y": 0 }, 13 { "label": "Pg Dn", "x": 3, "y": 0 },
14
11 { "label": "Layer Toggle", "x": 0, "y": 1.25 }, 15 { "label": "Layer Toggle", "x": 0, "y": 1.25 },
12 { "label": "/", "x": 1, "y": 1.25 }, 16 { "label": "/", "x": 1, "y": 1.25 },
13 { "label": "*", "x": 2, "y": 1.25 }, 17 { "label": "*", "x": 2, "y": 1.25 },
14 { "label": "-", "x": 3, "y": 1.25 }, 18 { "label": "-", "x": 3, "y": 1.25 },
19
15 { "label": "7", "x": 0, "y": 2.25 }, 20 { "label": "7", "x": 0, "y": 2.25 },
16 { "label": "8", "x": 1, "y": 2.25 }, 21 { "label": "8", "x": 1, "y": 2.25 },
17 { "label": "9", "x": 2, "y": 2.25 }, 22 { "label": "9", "x": 2, "y": 2.25 },
18 { "label": "+", "x": 3, "y": 2.25, "h": 2 }, 23 { "label": "+", "x": 3, "y": 2.25 },
19 { "label": "+", "x": 4, "y": 2.25 }, 24 { "label": "+", "x": 4, "y": 2.25, "h": 2 },
25
26 { "label": "4", "x": 0, "y": 3.25 },
27 { "label": "5", "x": 1, "y": 3.25 },
28 { "label": "6", "x": 2, "y": 3.25 },
29 { "label": "|", "x": 3, "y": 3.25 },
30
31 { "label": "1", "x": 0, "y": 4.25 },
32 { "label": "2", "x": 1, "y": 4.25 },
33 { "label": "3", "x": 2, "y": 4.25 },
34 { "label": "Enter", "x": 3, "y": 4.25 },
35 { "label": "Enter", "x": 4, "y": 4.25, "h": 2 },
36
37 { "label": "0", "x": 0, "y": 5.25 },
38 { "label": "00", "x": 1, "y": 5.25 },
39 { "label": ".", "x": 2, "y": 5.25 },
40 { "label": ".", "x": 3, "y": 5.25 },
41
42 { "label": "0", "x": 0, "y": 6.25, "w": 2 }
43 ]
44 },
45 "LAYOUT_numpad": {
46 "layout": [
47 { "label": "Rotary", "x": 0.5, "y": 0 },
48 { "label": "Pg Up", "x": 2, "y": 0 },
49 { "label": "Pg Dn", "x": 3, "y": 0 },
50
51 { "label": "Layer Toggle", "x": 0, "y": 1.25 },
52 { "label": "/", "x": 1, "y": 1.25 },
53 { "label": "*", "x": 2, "y": 1.25 },
54 { "label": "-", "x": 3, "y": 1.25 },
55
56 { "label": "7", "x": 0, "y": 2.25 },
57 { "label": "8", "x": 1, "y": 2.25 },
58 { "label": "9", "x": 2, "y": 2.25 },
59
20 { "label": "4", "x": 0, "y": 3.25 }, 60 { "label": "4", "x": 0, "y": 3.25 },
21 { "label": "5", "x": 1, "y": 3.25 }, 61 { "label": "5", "x": 1, "y": 3.25 },
22 { "label": "6", "x": 2, "y": 3.25 }, 62 { "label": "6", "x": 2, "y": 3.25 },
23 { "label": "|", "x": 4, "y": 3.25 }, 63 { "label": "+", "x": 3, "y": 2.25, "h": 2 },
64
24 { "label": "1", "x": 0, "y": 4.25 }, 65 { "label": "1", "x": 0, "y": 4.25 },
25 { "label": "2", "x": 1, "y": 4.25 }, 66 { "label": "2", "x": 1, "y": 4.25 },
26 { "label": "3", "x": 2, "y": 4.25 }, 67 { "label": "3", "x": 2, "y": 4.25 },
27 { "label": "Enter", "x": 3, "y": 4.25, "h": 2 }, 68
28 { "label": "Enter", "x": 4, "y": 4.25 },
29 { "label": "0", "x": 0, "y": 5.25, "w": 2 }, 69 { "label": "0", "x": 0, "y": 5.25, "w": 2 },
30 { "label": ".", "x": 2, "y": 5.25 }, 70 { "label": ".", "x": 2, "y": 5.25 },
31 { "label": ".", "x": 4, "y": 5.25 }, 71 { "label": "Enter", "x": 3, "y": 4.25, "h": 2 }
32 { "label": "0", "x": 0, "y": 6.25 }, 72 ]
33 { "label": "00", "x": 1, "y": 6.25 } 73 },
74 "LAYOUT_ortho": {
75 "layout": [
76 { "label": "Rotary", "x": 0.5, "y": 0 },
77 { "label": "Pg Up", "x": 2, "y": 0 },
78 { "label": "Pg Dn", "x": 3, "y": 0 },
79
80 { "label": "Layer Toggle", "x": 0, "y": 1.25 },
81 { "label": "/", "x": 1, "y": 1.25 },
82 { "label": "*", "x": 2, "y": 1.25 },
83 { "label": "-", "x": 3, "y": 1.25 },
84
85 { "label": "7", "x": 0, "y": 2.25 },
86 { "label": "8", "x": 1, "y": 2.25 },
87 { "label": "9", "x": 2, "y": 2.25 },
88 { "label": "+", "x": 3, "y": 2.25 },
89
90 { "label": "4", "x": 0, "y": 3.25 },
91 { "label": "5", "x": 1, "y": 3.25 },
92 { "label": "6", "x": 2, "y": 3.25 },
93 { "label": "|", "x": 3, "y": 3.25 },
94
95 { "label": "1", "x": 0, "y": 4.25 },
96 { "label": "2", "x": 1, "y": 4.25 },
97 { "label": "3", "x": 2, "y": 4.25 },
98 { "label": "Enter", "x": 3, "y": 4.25 },
99
100 { "label": "0", "x": 0, "y": 5.25 },
101 { "label": "00", "x": 1, "y": 5.25 },
102 { "label": ".", "x": 2, "y": 5.25 },
103 { "label": "Enter", "x": 3, "y": 5.25 }
34 ] 104 ]
35 } 105 }
36 } 106 }
diff --git a/keyboards/ffkeebs/puca/keymaps/default/keymap.c b/keyboards/ffkeebs/puca/keymaps/default/keymap.c
index fb8a6bc7c..12c20c014 100644
--- a/keyboards/ffkeebs/puca/keymaps/default/keymap.c
+++ b/keyboards/ffkeebs/puca/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
1/* Copyright 2021 Sleepdealer 1/* Copyright 2021 Sleepdealer, James Young for QMK (@noroadsleft)
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 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 4 * it under the terms of the GNU General Public License as published by
@@ -15,38 +15,26 @@
15 */ 15 */
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
17 17
18// 00 Functionality 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19enum custom_keycodes {
20 MC_00 = SAFE_RANGE,
21};
22
23bool process_record_user(uint16_t keycode, keyrecord_t *record) {
24 switch (keycode) {
25 case MC_00:
26 if (record->event.pressed) {
27 SEND_STRING("00");
28 }
29 break;
30 }
31 return true;
32};
33 19
20 [0] = LAYOUT_all(
21 KC_MUTE, KC_PGUP, KC_PGDN,
22 TG(1), KC_PSLS, KC_PAST, KC_PMNS,
23 KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PPLS,
24 KC_P4, KC_P5, KC_P6, KC_PIPE,
25 KC_P1, KC_P2, KC_P3, KC_ENTER, KC_ENTER,
26 KC_P0, MC_00, KC_PDOT, KC_PDOT,
27 KC_P0
28 ),
34 29
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 30 [1] = LAYOUT_all(
36 LAYOUT(
37 KC_MUTE, KC_PGUP, KC_PGDN,
38 TG(1), KC_PSLS, KC_PAST, KC_PMNS,
39 KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PPLS,
40 KC_P4, KC_P5, KC_P6, KC_PIPE,
41 KC_P1, KC_P2, KC_P3, KC_ENTER, KC_ENTER,
42 KC_P0, MC_00, KC_PDOT, KC_PDOT,
43 KC_P0),
44 LAYOUT(
45 KC_TRNS, RGB_HUI, RGB_VAI, 31 KC_TRNS, RGB_HUI, RGB_VAI,
46 TG(1), RGB_TOG, RGB_HUD, RGB_VAD, 32 TG(1), RGB_TOG, RGB_HUD, RGB_VAD,
47 KC_PGUP, KC_UP, KC_PGDN, RGB_MOD, RGB_MOD, 33 KC_PGUP, KC_UP, KC_PGDN, RGB_MOD, RGB_MOD,
48 KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, 34 KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
49 KC_INS, KC_HOME, KC_END, RGB_RMOD, RGB_RMOD, 35 KC_INS, KC_HOME, KC_END, RGB_RMOD, RGB_RMOD,
50 KC_ESC, KC_TRNS, KC_DEL, KC_TRNS, 36 KC_ESC, KC_TRNS, KC_DEL, KC_TRNS,
51 KC_ESC) 37 KC_ESC
38 ),
39
52}; 40};
diff --git a/keyboards/ffkeebs/puca/keymaps/default_numpad/keymap.c b/keyboards/ffkeebs/puca/keymaps/default_numpad/keymap.c
new file mode 100644
index 000000000..fe6767861
--- /dev/null
+++ b/keyboards/ffkeebs/puca/keymaps/default_numpad/keymap.c
@@ -0,0 +1,38 @@
1/* Copyright 2021 Sleepdealer, James Young for QMK (@noroadsleft)
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
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19
20 [0] = LAYOUT_numpad(
21 KC_MUTE, KC_PGUP, KC_PGDN,
22 TG(1), KC_PSLS, KC_PAST, KC_PMNS,
23 KC_P7, KC_P8, KC_P9,
24 KC_P4, KC_P5, KC_P6, KC_PPLS,
25 KC_P1, KC_P2, KC_P3,
26 KC_P0, KC_PDOT, KC_ENTER
27 ),
28
29 [1] = LAYOUT_numpad(
30 _______, RGB_HUI, RGB_VAI,
31 TG(1), RGB_TOG, RGB_HUD, RGB_VAD,
32 KC_PGUP, KC_UP, KC_PGDN,
33 KC_LEFT, KC_DOWN, KC_RGHT, RGB_MOD,
34 KC_INS, KC_HOME, KC_END,
35 KC_ESC, KC_DEL, RGB_RMOD
36 ),
37
38};
diff --git a/keyboards/ffkeebs/puca/keymaps/default_ortho/keymap.c b/keyboards/ffkeebs/puca/keymaps/default_ortho/keymap.c
new file mode 100644
index 000000000..e734e6974
--- /dev/null
+++ b/keyboards/ffkeebs/puca/keymaps/default_ortho/keymap.c
@@ -0,0 +1,38 @@
1/* Copyright 2021 Sleepdealer, James Young for QMK (@noroadsleft)
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
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19
20 [0] = LAYOUT_ortho(
21 KC_MUTE, KC_PGUP, KC_PGDN,
22 TG(1), KC_PSLS, KC_PAST, KC_PMNS,
23 KC_P7, KC_P8, KC_P9, KC_PPLS,
24 KC_P4, KC_P5, KC_P6, KC_PIPE,
25 KC_P1, KC_P2, KC_P3, KC_ENTER,
26 KC_P0, MC_00, KC_PDOT, KC_ENTER
27 ),
28
29 [1] = LAYOUT_ortho(
30 _______, RGB_HUI, RGB_VAI,
31 TG(1), RGB_TOG, RGB_HUD, RGB_VAD,
32 KC_PGUP, KC_UP, KC_PGDN, RGB_MOD,
33 KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX,
34 KC_INS, KC_HOME, KC_END, RGB_RMOD,
35 KC_ESC, XXXXXXX, KC_DEL, XXXXXXX
36 )
37
38};
diff --git a/keyboards/ffkeebs/puca/puca.c b/keyboards/ffkeebs/puca/puca.c
index d131b97f7..21944a9e5 100644
--- a/keyboards/ffkeebs/puca/puca.c
+++ b/keyboards/ffkeebs/puca/puca.c
@@ -15,6 +15,20 @@
15 */ 15 */
16#include "puca.h" 16#include "puca.h"
17 17
18bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
19 if (!process_record_user(keycode, record)) {
20 return false;
21 }
22 switch (keycode) {
23 case MC_00:
24 if (record->event.pressed) {
25 SEND_STRING("00");
26 }
27 break;
28 }
29 return true;
30}
31
18bool encoder_update_kb(uint8_t index, bool clockwise) { 32bool encoder_update_kb(uint8_t index, bool clockwise) {
19 if (!encoder_update_user(index, clockwise)) { return false; } 33 if (!encoder_update_user(index, clockwise)) { return false; }
20 if (clockwise) { 34 if (clockwise) {
diff --git a/keyboards/ffkeebs/puca/puca.h b/keyboards/ffkeebs/puca/puca.h
index bc17c9f36..ab4dc3791 100644
--- a/keyboards/ffkeebs/puca/puca.h
+++ b/keyboards/ffkeebs/puca/puca.h
@@ -16,26 +16,86 @@
16 16
17#pragma once 17#pragma once
18 18
19// K24 is 2U Plus 19#include "quantum.h"
20// K44 is 2u Enter 20
21// K54 is 2u 0 21/* Keycodes defined here can be used by any keymap. If you wish to
22 * define additional keycodes for your personal keymap only, assign
23 * your first custom keycode to `= NEW_SAFE_RANGE`.
24 *
25 * See `process_record_kb()` in `puca.c`.
26 */
27enum keyboard_keycodes {
28 MC_00 = SAFE_RANGE,
29 NEW_SAFE_RANGE,
30};
22 31
32#define XXX KC_NO
23 33
24#include "quantum.h" 34/*
35 * ┌───┐ ┌───┬───┐
36 * │00 │ │02 │03 │
37 * └───┘ └───┴───┘
38 * ┌───┬───┬───┬───┐
39 * │10 │11 │12 │13 │
40 * ├───┼───┼───┼───┤ ┌───┐
41 * │20 │21 │22 │23 │ │ │
42 * ├───┼───┼───┼───┤ │24 │ 2u Plus
43 * │30 │31 │32 │33 │ │ │
44 * ├───┼───┼───┼───┤ ├───┤
45 * │40 │41 │42 │43 │ │ │
46 * ├───┼───┼───┼───┤ │44 │ 2u Enter
47 * │50 │51 │52 │53 │ │ │
48 * └───┴───┴───┴───┘ └───┘
49 * ┌───────┐
50 * │54 │ 2u 0
51 * └───────┘
52 */
53
54#define LAYOUT_all( \
55 K00, K02, K03, \
56 K10, K11, K12, K13, \
57 K20, K21, K22, K23, K24,\
58 K30, K31, K32, K33, \
59 K40, K41, K42, K43, K44,\
60 K50, K51, K52, K53, \
61 K54 \
62) { \
63 { K00, XXX, K02, K03, XXX }, \
64 { K10, K11, K12, K13, XXX }, \
65 { K20, K21, K22, K23, K24 }, \
66 { K30, K31, K32, K33, XXX }, \
67 { K40, K41, K42, K43, K44 }, \
68 { K50, K51, K52, K53, K54 }, \
69}
70
71#define LAYOUT_numpad( \
72 K00, K02, K03, \
73 K10, K11, K12, K13, \
74 K20, K21, K22, \
75 K30, K31, K32, K24, \
76 K40, K41, K42, \
77 K54, K52, K44 \
78) { \
79 { K00, XXX, K02, K03, XXX }, \
80 { K10, K11, K12, K13, XXX }, \
81 { K20, K21, K22, XXX, K24 }, \
82 { K30, K31, K32, XXX, XXX }, \
83 { K40, K41, K42, XXX, K44 }, \
84 { XXX, XXX, K52, XXX, K54 }, \
85}
25 86
26#define LAYOUT( \ 87#define LAYOUT_ortho( \
27 K00, K02, K03, \ 88 K00, K02, K03, \
28 K10, K11, K12, K13, \ 89 K10, K11, K12, K13, \
29 K20, K21, K22, K23, K24,\ 90 K20, K21, K22, K23, \
30 K30, K31, K32, K33, \ 91 K30, K31, K32, K33, \
31 K40, K41, K42, K43, K44,\ 92 K40, K41, K42, K43, \
32 K50, K51, K52, K53, \ 93 K50, K51, K52, K53 \
33 K54 \
34) { \ 94) { \
35 { K00, KC_NO, K02, K03, KC_NO }, \ 95 { K00, XXX, K02, K03, XXX }, \
36 { K10, K11, K12, K13, KC_NO }, \ 96 { K10, K11, K12, K13, XXX }, \
37 { K20, K21, K22, K23, K24 }, \ 97 { K20, K21, K22, K23, XXX }, \
38 { K30, K31, K32, K33, KC_NO }, \ 98 { K30, K31, K32, K33, XXX }, \
39 { K40, K41, K42, K43, K44 }, \ 99 { K40, K41, K42, K43, XXX }, \
40 { K50, K51, K52, K53, K54 }, \ 100 { K50, K51, K52, K53, XXX }, \
41} 101}
diff --git a/keyboards/ffkeebs/puca/readme.md b/keyboards/ffkeebs/puca/readme.md
index ff0b2c49a..ca4e0f93f 100644
--- a/keyboards/ffkeebs/puca/readme.md
+++ b/keyboards/ffkeebs/puca/readme.md
@@ -2,7 +2,7 @@
2 2
3* Keyboard Maintainer: [Sleepdealer](https://github.com/Sleepdealr) 3* Keyboard Maintainer: [Sleepdealer](https://github.com/Sleepdealr)
4* Hardware Supported: Puca Pad 4* Hardware Supported: Puca Pad
5* Hardware Availability: Puca GB 5* Hardware Availability: [Puca GB](https://ffkeebs.com/collections/puca)
6 6
7## Bootloader 7## Bootloader
8 8
diff --git a/keyboards/ffkeebs/puca/rules.mk b/keyboards/ffkeebs/puca/rules.mk
index b27ecc458..ede448ac2 100644
--- a/keyboards/ffkeebs/puca/rules.mk
+++ b/keyboards/ffkeebs/puca/rules.mk
@@ -19,7 +19,7 @@ NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21 21
22ENCODER_ENABLE = yes #Rotary encoder 22ENCODER_ENABLE = yes # Enable rotary encoder support
23OLED_ENABLE = yes # Enable OLED support
23 24
24OLED_ENABLE = yes #OLED 25LTO_ENABLE = yes # Enable Link Time Optimization to reduce firmware size
25LTO_ENABLE = yes # Enable Link Time Optimization to reduce firmware size