aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkeyboards/crkbd/keymaps/tominabox1/keymap.c46
-rw-r--r--keyboards/hhkb/keymaps/tominabox1/.gitignore3
-rw-r--r--keyboards/hhkb/keymaps/tominabox1/keymap.c12
-rw-r--r--keyboards/lazydesigners/dimple/keymaps/tominabox1/keymap.c109
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c74
-rw-r--r--users/tominabox1/.gitignore2
-rw-r--r--users/tominabox1/config.h80
-rw-r--r--users/tominabox1/dimple_rgb.c433
-rw-r--r--users/tominabox1/doug.c243
-rw-r--r--users/tominabox1/readme.md5
-rw-r--r--users/tominabox1/rules.mk26
-rw-r--r--users/tominabox1/tominabox1.c281
-rw-r--r--users/tominabox1/tominabox1.h56
-rw-r--r--users/tominabox1/wrappers.h142
14 files changed, 1512 insertions, 0 deletions
diff --git a/keyboards/crkbd/keymaps/tominabox1/keymap.c b/keyboards/crkbd/keymaps/tominabox1/keymap.c
new file mode 100755
index 000000000..d58911194
--- /dev/null
+++ b/keyboards/crkbd/keymaps/tominabox1/keymap.c
@@ -0,0 +1,46 @@
1#include QMK_KEYBOARD_H
2#include "tominabox1.h"
3
4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5 [_BASE] = LAYOUT_wrapper(
6 ___________________CRKBD1__________________,
7 ___________________CRKBD2__________________,
8 ___________________CRKBD3__________________,
9 ___________________CRKBD4__________________
10 ),
11
12 [_RAISE] = LAYOUT_wrapper(
13 ___________________RAISE1__________________,
14 ___________________RAISE2__________________,
15 ___________________CRKBD_RAISE3____________,
16 ___________________CRKBD_RAISE4____________
17 ),
18
19 [_LOWER] = LAYOUT_wrapper(
20 _________________LOWER_1___________________,
21 _________________LOWER_2___________________,
22 ___________________CRKBD_LOW3______________,
23 ___________________CRKBD_LOW4______________
24 ),
25
26 [_ADJUST] = LAYOUT_wrapper(
27 ___________________ADJST1__________________,
28 ___________________CRKBD_ADJST2____________,
29 ___________________CRKBD_ADJST3____________,
30 ___________________CRKBD_ADJST4____________
31 ),
32
33 [_ARROW] = LAYOUT_wrapper(
34 ___________________ARROW1__________________,
35 ___________________ARROW2__________________,
36 ___________________ARROW3__________________,
37 ___________________ARROW4__________________
38 ),
39 [_FKEY] = LAYOUT_wrapper(
40 ___________________FKEY1___________________,
41 ___________________FKEY2___________________,
42 ___________________CRKBD_FKEY3_____________,
43 ___________________CRKBD_FKEY4_____________
44 )
45
46};
diff --git a/keyboards/hhkb/keymaps/tominabox1/.gitignore b/keyboards/hhkb/keymaps/tominabox1/.gitignore
new file mode 100644
index 000000000..4b8c99bfb
--- /dev/null
+++ b/keyboards/hhkb/keymaps/tominabox1/.gitignore
@@ -0,0 +1,3 @@
1*.h
2matrix.c
3rules.mk
diff --git a/keyboards/hhkb/keymaps/tominabox1/keymap.c b/keyboards/hhkb/keymaps/tominabox1/keymap.c
new file mode 100644
index 000000000..d7aea9773
--- /dev/null
+++ b/keyboards/hhkb/keymaps/tominabox1/keymap.c
@@ -0,0 +1,12 @@
1#include QMK_KEYBOARD_H
2#include "tominabox1.h"
3
4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5 [0] = LAYOUT(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_BSLS, KC_DEL, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, TD(TD_SFT_CPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(2)),
6
7 [1] = LAYOUT(KC_ESC, 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_INS, KC_DEL, KC_CAPS, KC_MFFD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC__MUTE, KC__VOLDOWN, KC__VOLUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
8
9 [2] = LAYOUT(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS),
10
11 [3] = LAYOUT(KC_GESC, KC_EXLM, KC_EML, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGDN, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS)
12};
diff --git a/keyboards/lazydesigners/dimple/keymaps/tominabox1/keymap.c b/keyboards/lazydesigners/dimple/keymaps/tominabox1/keymap.c
new file mode 100644
index 000000000..cdaade987
--- /dev/null
+++ b/keyboards/lazydesigners/dimple/keymaps/tominabox1/keymap.c
@@ -0,0 +1,109 @@
1#include QMK_KEYBOARD_H
2#include "tominabox1.h"
3
4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5
6/* Base COLEMAK layer
7 * ,---------------------------------------------------------------.
8 * |GEsc| Q | W | F | P | G | J | L | U | Y | : | Bspc |
9 * |---------------------------------------------------------------|
10 * |Tab-Ctl| A | R | S | T | D | H | N | E | I | O |Quote|
11 * |---------------------------------------------------------------|
12 * |Shft/Cap| Z | X | C | V | B | K | M | , | Up | . |
13 * |---------------------------------------------------------------|
14 * |Ctrl|Gui |Alt | Spc/Lwr | Spc/Rse |Left|Down|Rght|
15 * `-----------------------------------------------------'
16 */
17
18 [_BASE] = LAYOUT_wrapper(
19 __________________DIMPLE1__________________,
20 __________________DIMPLE2__________________,
21 __________________DIMPLE3L_________________,__________________DIMPLE3R_________________,
22 __________________DIMPLE4__________________
23 ),
24
25/* Lower Symbol Layer
26 * ,---------------------------------------------------------------.
27 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
28 * |---------------------------------------------------------------|
29 * | Del | | | | | | | _ | + | { | } | | |
30 * |---------------------------------------------------------------|
31 * | | | | | | | | | ; |PgUp| ? |
32 * |---------------------------------------------------------------|
33 * | | | | | |Home|PgDn|End |
34 * `-----------------------------------------------------'
35 */
36
37 [_LOWER] = LAYOUT_wrapper(
38 _________________LOWER_1___________________,
39 _________________LOWER_2___________________,
40 _________________LOWER_3___________________,
41 _________________LOWER_4___________________
42 ),
43
44/* Raise Number Layer
45 * ,---------------------------------------------------------------.
46 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bspc |
47 * |---------------------------------------------------------------|
48 * | Ins | | | | | | | - | = | [ | ] | \ |
49 * |---------------------------------------------------------------|
50 * | | | | | | | | | | . | / |
51 * |---------------------------------------------------------------|
52 * |VolD|Mute|VolU| | | | | |
53 * `-----------------------------------------------------'
54 */
55
56 [_RAISE] = LAYOUT_wrapper(
57 ___________________RAISE1__________________,
58 ___________________RAISE2__________________,
59 ___________________RAISE3__________________,
60 ___________________RAISE4__________________
61
62 ),
63
64/* Adjust Layer
65 * ,---------------------------------------------------------------.
66 * |RST |EEP | | | | | | | | | | |
67 * |---------------------------------------------------------------|
68 * | MP | | | | | | | | | | | |
69 * |---------------------------------------------------------------|
70 * | MODE | HUI| HUD|M_SN| | | | | | | |
71 * |---------------------------------------------------------------|
72 * |RGB-|RGB |RGB+| | | | | |
73 * `-----------------------------------------------------'
74 */
75
76 [_ADJUST] = LAYOUT_wrapper(
77 ___________________ADJST1__________________,
78 ___________________ADJST2__________________,
79 ___________________ADJST3__________________,
80 ___________________ADJST4__________________
81
82 ),
83/* Fkey Layer
84* ,---------------------------------------------------------------.
85* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| |
86* |---------------------------------------------------------------|
87* | | | | | | | | | | F11| F12| |
88* |---------------------------------------------------------------|
89* | | | | | | | | | | | |
90* |---------------------------------------------------------------|
91* | | | | | |FKEY| | |
92* `-----------------------------------------------------'
93*/
94
95 [_FKEY] = LAYOUT_wrapper(
96 ___________________FKEY1___________________,
97 ___________________FKEY2___________________,
98 ___________________FKEY3___________________,
99 ___________________FKEY4___________________
100 ),
101};
102
103void led_set_user(uint8_t usb_led) {
104if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
105 writePinLow(E6);
106 } else {
107 writePinHigh(E6);
108 }
109}
diff --git a/keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c
new file mode 100644
index 000000000..a465da3bd
--- /dev/null
+++ b/keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c
@@ -0,0 +1,74 @@
1#include QMK_KEYBOARD_H
2#include "tominabox1.h"
3
4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5 /*
6 * |GESC| Q | W | F | P | G | J | L | U | Y | ; | BSPC |
7 * | TAB | A | R | S | T | D | H | N | E | I | O | ' |
8 * |SHIFT | Z | X | C | V | B | K | M | , | UP | . | / |
9 * |CTRL | WIN | ALT | ENTR | SPACE | LFT |DOWN|RGHT|FKEY|
10 */
11
12 [_BASE] = LAYOUT_arrow_wrapper(
13 __________________MINIVAN1_________________,
14 __________________MINIVAN2_________________,
15 __________________MINIVAN3_________________,
16 __________________MINIVAN4_________________
17 ),
18
19 /*
20 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | DEL |
21 * | | | | | | | | _ | + | { | } | PIPE|
22 * |SHIFT | | | | | | | |PGDN| UP | ? | / |
23 * |CTRL | WIN | ALT | ENTR | SPACE | LFT |DOWN|RGHT|FKEY|
24 */
25
26 [_LOWER] = LAYOUT_arrow_wrapper(
27 _________________LOWER_1___________________,
28 _________________LOWER_2___________________,
29 __________________MININUM3_________________,
30 __________________MININUM4_________________
31 ),
32
33 /*
34 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BSPC |
35 * | INS | | | | | | | - | = | [ | ] | \ |
36 * | | | | | | | | | | | / | |
37 * |CTRL | WIN | ALT | ENTR | SPACE | LFT |DOWN|RGHT|FKEY|
38 */
39
40 [_RAISE] = LAYOUT_arrow_wrapper(
41 ___________________RAISE1__________________,
42 ___________________RAISE2__________________,
43 ___________________RVAN_3__________________,
44 ___________________RVAN_4__________________
45 ),
46
47 /*
48 * |REST|EERS| | | | | | | | | | |
49 * | | | | | | | | | | | | |
50 * | | | | | | | | | | | | |
51 * | | | | ENTR | SPACE | | | | |
52 */
53
54 [_ADJUST] = LAYOUT_arrow_wrapper(
55 ___________________ADJST1__________________,
56 ___________________ADJST2__________________,
57 ___________________ADJVAN3_________________,
58 ___________________ADJVAN4_________________
59 ),
60
61 /*
62 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| |
63 * | | | | | | | | | |F11 | F12| |
64 * | | | | | | | | | | | | |
65 * | | | | | | FKEY | | | |
66 */
67
68 [_FKEY] = LAYOUT_arrow_wrapper(
69 ___________________FKEY1___________________,
70 ___________________FKEY2___________________,
71 ___________________FVAN_3__________________,
72 ___________________FVAN_4__________________
73 ),
74 };
diff --git a/users/tominabox1/.gitignore b/users/tominabox1/.gitignore
new file mode 100644
index 000000000..62a866698
--- /dev/null
+++ b/users/tominabox1/.gitignore
@@ -0,0 +1,2 @@
1*.bmp
2*.py
diff --git a/users/tominabox1/config.h b/users/tominabox1/config.h
new file mode 100644
index 000000000..2a8c1e943
--- /dev/null
+++ b/users/tominabox1/config.h
@@ -0,0 +1,80 @@
1#pragma once
2
3// Tapping term settings
4#define TAPPING_TERM_PER_KEY
5#define TAP_HOLD_CAPS_DELAY 350
6#define BOOTMAGIC_KEY_SALT KC_BSPACE
7#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q
8
9// OLED settings
10#define OLED_FONT_H "users/tominabox1/doug.c"
11#define OLED_DISABLE_TIMEOUT
12
13#define DEBOUNCE 5
14
15// Setup RGB settings for the Dimple.
16#ifdef KEYBOARD_lazydesigners_dimple
17 #ifdef RGBLIGHT_ENABLE
18 #undef RGBLED_NUM
19 #define RGBLED_NUM 50
20 #define RGBLIGHT_ANIMATIONS
21 #define RGBLIGHT_SLEEP
22 #endif // RGBLIGHT_ENABLE
23
24 #ifdef RGB_MATRIX_ENABLE
25 #undef RGBLED_NUM
26 #define RGBLED_NUM 50
27 #define DRIVER_LED_TOTAL RGBLED_NUM
28 #endif // RGBL_MATRIX_ENABLE
29#endif // KEYBOARD_lazydesigners_dimple
30
31// RGB_Matrix settings
32#ifdef RGB_MATRIX_ENABLE
33 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
34 #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
35 #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
36 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
37 #define RGB_MATRIX_HUE_STEP 8
38 #define RGB_MATRIX_SAT_STEP 8
39 #define RGB_MATRIX_VAL_STEP 8
40 #define RGB_MATRIX_SPD_STEP 10
41 #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
42 /* Disable the animations you don't want/need. You will need to disable a good number of these
43 because they take up a lot of space. Disable until you can successfully compile your firmware. */
44 // #define DISABLE_RGB_MATRIX_ALPHAS_MODS
45 // #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
46 #define DISABLE_RGB_MATRIX_BREATHING
47 // #define DISABLE_RGB_MATRIX_CYCLE_ALL
48 // #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
49 // #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
50 // #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
51 // #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
52 #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
53 #define DISABLE_RGB_MATRIX_DUAL_BEACON
54 #define DISABLE_RGB_MATRIX_RAINBOW_BEACON
55 #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
56 // #define DISABLE_RGB_MATRIX_RAINDROPS
57 #define DISABLE_RGB_MATRIX_JELLYBEN_RAINDROPS
58 // # define DISABLE_RGB_MATRIX_TYPING_HEATMAP
59 #define DISABLE_RGB_MATRIX_DIGITAL_RAIN
60 #define DISABLE_RGB_MATRIX_SOLID_REACTIVE
61 #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
62 // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
63 // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
64 // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
65 #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
66 #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
67 #define DISABLE_RGB_MATRIX_SPLASH
68 #define DISABLE_RGB_MATRIX_MULTISPLASH
69 #define DISABLE_RGB_MATRIX_SOLID_SPLASH
70 #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
71#endif //RGB_MATRIX_ENABLE
72
73// Hex size reduction options
74#ifndef NO_DEBUG
75 #define NO_DEBUG
76#endif // !NO_DEBUG
77#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE)
78 #define NO_PRINT
79#endif // !NO_PRINT
80#define NO_ACTION_ONESHOT
diff --git a/users/tominabox1/dimple_rgb.c b/users/tominabox1/dimple_rgb.c
new file mode 100644
index 000000000..49d95eb43
--- /dev/null
+++ b/users/tominabox1/dimple_rgb.c
@@ -0,0 +1,433 @@
1#include "dz60rgb.h"
2#include "config.h"
3#if defined (dzrgb60_iso)
4const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
5 {0, K_14, J_14, L_14},
6 {0, K_13, J_13, L_13},
7 {0, K_12, J_12, L_12},
8 {0, K_11, J_11, L_11},
9 {0, K_10, J_10, L_10},
10 {0, K_9, J_9, L_9},
11 {0, K_8, J_8, L_8},
12 {0, K_7, J_7, L_7},
13 {0, K_6, J_6, L_6},
14 {0, K_5, J_5, L_5},
15 {0, K_4, J_4, L_4},
16 {0, K_3, J_3, L_3},
17 {0, K_2, J_2, L_2},
18 {0, K_1, J_1, L_1},
19 {0, H_15, G_15, I_15},
20 {0, H_13, G_13, I_13},
21 {0, H_12, G_12, I_12},
22 {0, H_11, G_11, I_11},
23 {0, H_10, G_10, I_10},
24 {0, H_9, G_9, I_9},
25 {0, H_8, G_8, I_8},
26 {0, H_7, G_7, I_7},
27 {0, H_6, G_6, I_6},
28 {0, H_5, G_5, I_5},
29 {0, H_4, G_4, I_4},
30 {0, H_3, G_3, I_3},
31 {0, H_2, G_2, I_2},
32 {0, H_1, G_1, I_1},
33 {0, B_14, A_14, C_14},
34 {0, E_12, D_12, F_12},
35 {0, E_11, D_11, F_11},
36 {0, E_10, D_10, F_10},
37 {0, E_9, D_9, F_9},
38 {0, E_8, D_8, F_8},
39 {0, E_7, D_7, F_7},
40 {0, E_6, D_6, F_6},
41 {0, E_5, D_5, F_5},
42 {0, E_4, D_4, F_4},
43 {0, E_3, D_3, F_3},
44 {0, E_2, D_2, F_2},
45 {0, E_1, D_1, F_1},
46 {0, B_13, A_13, C_13},
47 {0, B_11, A_11, C_11},
48 {0, B_10, A_10, C_10},
49 {0, B_9, A_9, C_9},
50 {0, B_8, A_8, C_8},
51 {0, B_7, A_7, C_7},
52 {0, B_6, A_6, C_6},
53 {0, B_5, A_5, C_5},
54 {0, B_4, A_4, C_4},
55 {0, B_3, A_3, C_3},
56 {0, B_2, A_2, C_2},
57 {0, B_1, A_1, C_1},
58 {0, B_15, A_15, C_15},
59 {0, E_13, D_13, F_13},
60 {0, B_12, A_12, C_12},
61 {0, E_15, D_15, F_15},
62 {0, B_16, A_16, C_16},
63 {0, E_16, D_16, F_16},
64 {0, H_16, G_16, I_16},
65 {0, K_16, J_16, L_16},
66};
67
68led_config_t g_led_config = { {
69 { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
70 { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 28 },
71 { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 14 },
72 { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
73 { 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 }
74}, {
75 { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
76 { 220, 24 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
77 { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 210, 48 },
78 { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 222, 64 }, { 202, 64 }, { 182, 64 },
79 { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
80}, {
81 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
82 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
83 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
84 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
85 1, 4, 1, 1, 1
86} };
87
88#elif defined (dzrgb60_hhkb)
89const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
90 {0, H_15, G_15, I_15},
91 {0, K_14, J_14, L_14},
92 {0, K_13, J_13, L_13},
93 {0, K_12, J_12, L_12},
94 {0, K_11, J_11, L_11},
95 {0, K_10, J_10, L_10},
96 {0, K_9, J_9, L_9},
97 {0, K_8, J_8, L_8},
98 {0, K_7, J_7, L_7},
99 {0, K_6, J_6, L_6},
100 {0, K_5, J_5, L_5},
101 {0, K_4, J_4, L_4},
102 {0, K_3, J_3, L_3},
103 {0, K_2, J_2, L_2},
104 {0, K_1, J_1, L_1},
105 {0, H_14, G_14, I_14},
106 {0, H_13, G_13, I_13},
107 {0, H_12, G_12, I_12},
108 {0, H_11, G_11, I_11},
109 {0, H_10, G_10, I_10},
110 {0, H_9, G_9, I_9},
111 {0, H_8, G_8, I_8},
112 {0, H_7, G_7, I_7},
113 {0, H_6, G_6, I_6},
114 {0, H_5, G_5, I_5},
115 {0, H_4, G_4, I_4},
116 {0, H_3, G_3, I_3},
117 {0, H_2, G_2, I_2},
118 {0, H_1, G_1, I_1},
119 {0, E_14, D_14, F_14},
120 {0, E_12, D_12, F_12},
121 {0, E_11, D_11, F_11},
122 {0, E_10, D_10, F_10},
123 {0, E_9, D_9, F_9},
124 {0, E_8, D_8, F_8},
125 {0, E_7, D_7, F_7},
126 {0, E_6, D_6, F_6},
127 {0, E_5, D_5, F_5},
128 {0, E_4, D_4, F_4},
129 {0, E_3, D_3, F_3},
130 {0, E_2, D_2, F_2},
131 {0, E_1, D_1, F_1},
132 {0, B_14, A_14, C_14},
133 {0, B_13, A_13, C_13},
134 {0, B_11, A_11, C_11},
135 {0, B_10, A_10, C_10},
136 {0, B_9, A_9, C_9},
137 {0, B_8, A_8, C_8},
138 {0, B_7, A_7, C_7},
139 {0, B_6, A_6, C_6},
140 {0, B_5, A_5, C_5},
141 {0, B_4, A_4, C_4},
142 {0, B_3, A_3, C_3},
143 {0, B_2, A_2, C_2},
144 {0, B_1, A_1, C_1},
145 {0, B_15, A_15, C_15},
146 {0, E_13, D_13, F_13},
147 {0, B_12, A_12, C_12},
148 {0, B_16, A_16, C_16},
149 {0, E_16, D_16, F_16},
150 {0, H_16, G_16, I_16},
151 {0, K_16, J_16, L_16},
152};
153
154led_config_t g_led_config = { {
155 { 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
156 { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
157 { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 29 },
158 { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 },
159 { 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 }
160}, {
161 { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 },
162 { 0, 0 }, { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 },
163 { 4, 16 }, { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
164 { 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 218, 64 },
165 { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 }
166}, {
167 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
168 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
169 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
170 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
171 1, 1, 4, 1, 1, 1
172} };
173
174#elif defined (dzrgb60_hhkb_iso)
175const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
176 {0, H_15, G_15, I_15},
177 {0, K_14, J_14, L_14},
178 {0, K_13, J_13, L_13},
179 {0, K_12, J_12, L_12},
180 {0, K_11, J_11, L_11},
181 {0, K_10, J_10, L_10},
182 {0, K_9, J_9, L_9},
183 {0, K_8, J_8, L_8},
184 {0, K_7, J_7, L_7},
185 {0, K_6, J_6, L_6},
186 {0, K_5, J_5, L_5},
187 {0, K_4, J_4, L_4},
188 {0, K_3, J_3, L_3},
189 {0, K_2, J_2, L_2},
190 {0, K_1, J_1, L_1},
191 {0, K_15, J_15, L_15},
192 {0, H_13, G_13, I_13},
193 {0, H_12, G_12, I_12},
194 {0, H_11, G_11, I_11},
195 {0, H_10, G_10, I_10},
196 {0, H_9, G_9, I_9},
197 {0, H_8, G_8, I_8},
198 {0, H_7, G_7, I_7},
199 {0, H_6, G_6, I_6},
200 {0, H_5, G_5, I_5},
201 {0, H_4, G_4, I_4},
202 {0, H_3, G_3, I_3},
203 {0, H_2, G_2, I_2},
204 {0, H_1, G_1, I_1},
205 {0, E_15, D_15, F_15},
206 {0, E_12, D_12, F_12},
207 {0, E_11, D_11, F_11},
208 {0, E_10, D_10, F_10},
209 {0, E_9, D_9, F_9},
210 {0, E_8, D_8, F_8},
211 {0, E_7, D_7, F_7},
212 {0, E_6, D_6, F_6},
213 {0, E_5, D_5, F_5},
214 {0, E_4, D_4, F_4},
215 {0, E_3, D_3, F_3},
216 {0, E_2, D_2, F_2},
217 {0, E_1, D_1, F_1},
218 {0, B_14, A_14, C_14},
219 {0, B_13, A_13, C_13},
220 {0, B_11, A_11, C_11},
221 {0, B_10, A_10, C_10},
222 {0, B_9, A_9, C_9},
223 {0, B_8, A_8, C_8},
224 {0, B_7, A_7, C_7},
225 {0, B_6, A_6, C_6},
226 {0, B_5, A_5, C_5},
227 {0, B_4, A_4, C_4},
228 {0, B_3, A_3, C_3},
229 {0, B_2, A_2, C_2},
230 {0, B_1, A_1, C_1},
231 {0, B_15, A_15, C_15},
232 {0, E_13, D_13, F_13},
233 {0, B_12, A_12, C_12},
234 {0, B_16, A_16, C_16},
235 {0, E_16, D_16, F_16},
236 {0, H_16, G_16, I_16},
237 {0, K_16, J_16, L_16},
238};
239
240led_config_t g_led_config = { {
241 { 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
242 { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 29 },
243 { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 15 },
244 { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 },
245 { 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 }
246}, {
247 { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 },
248 { 0, 0 }, { 220, 24 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 },
249 { 4, 16 }, { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
250 { 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 218, 64 },
251 { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 }
252}, {
253 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
254 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
255 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
256 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
257 1, 1, 4, 1, 1, 1
258} };
259
260#elif defined (dzrgb60_ansi)
261const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
262 {0, K_14, J_14, L_14},
263 {0, K_13, J_13, L_13},
264 {0, K_12, J_12, L_12},
265 {0, K_11, J_11, L_11},
266 {0, K_10, J_10, L_10},
267 {0, K_9, J_9, L_9},
268 {0, K_8, J_8, L_8},
269 {0, K_7, J_7, L_7},
270 {0, K_6, J_6, L_6},
271 {0, K_5, J_5, L_5},
272 {0, K_4, J_4, L_4},
273 {0, K_3, J_3, L_3},
274 {0, K_2, J_2, L_2},
275 {0, K_1, J_1, L_1},
276 {0, H_14, G_14, I_14},
277 {0, H_13, G_13, I_13},
278 {0, H_12, G_12, I_12},
279 {0, H_11, G_11, I_11},
280 {0, H_10, G_10, I_10},
281 {0, H_9, G_9, I_9},
282 {0, H_8, G_8, I_8},
283 {0, H_7, G_7, I_7},
284 {0, H_6, G_6, I_6},
285 {0, H_5, G_5, I_5},
286 {0, H_4, G_4, I_4},
287 {0, H_3, G_3, I_3},
288 {0, H_2, G_2, I_2},
289 {0, H_1, G_1, I_1},
290 {0, E_14, D_14, F_14},
291 {0, E_12, D_12, F_12},
292 {0, E_11, D_11, F_11},
293 {0, E_10, D_10, F_10},
294 {0, E_9, D_9, F_9},
295 {0, E_8, D_8, F_8},
296 {0, E_7, D_7, F_7},
297 {0, E_6, D_6, F_6},
298 {0, E_5, D_5, F_5},
299 {0, E_4, D_4, F_4},
300 {0, E_3, D_3, F_3},
301 {0, E_2, D_2, F_2},
302 {0, E_1, D_1, F_1},
303 {0, B_13, A_13, C_13},
304 {0, B_11, A_11, C_11},
305 {0, B_10, A_10, C_10},
306 {0, B_9, A_9, C_9},
307 {0, B_8, A_8, C_8},
308 {0, B_7, A_7, C_7},
309 {0, B_6, A_6, C_6},
310 {0, B_5, A_5, C_5},
311 {0, B_4, A_4, C_4},
312 {0, B_3, A_3, C_3},
313 {0, B_2, A_2, C_2},
314 {0, B_1, A_1, C_1},
315 {0, B_15, A_15, C_15},
316 {0, E_13, D_13, F_13},
317 {0, B_12, A_12, C_12},
318 {0, E_15, D_15, F_15},
319 {0, B_16, A_16, C_16},
320 {0, E_16, D_16, F_16},
321 {0, H_16, G_16, I_16},
322 {0, K_16, J_16, L_16},
323};
324
325led_config_t g_led_config = { {
326 { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
327 { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
328 { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
329 { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
330 { 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 }
331}, {
332 { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
333 { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
334 { 214, 24 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 210, 48 },
335 { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 222, 64 }, { 202, 64 }, { 182, 64 },
336 { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
337}, {
338 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
339 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
340 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
341 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
342 1, 4, 1, 1, 1
343} };
344
345#else
346const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
347 {0, K_14, J_14, L_14},
348 {0, K_13, J_13, L_13},
349 {0, K_12, J_12, L_12},
350 {0, K_11, J_11, L_11},
351 {0, K_10, J_10, L_10},
352 {0, K_9, J_9, L_9},
353 {0, K_8, J_8, L_8},
354 {0, K_7, J_7, L_7},
355 {0, K_6, J_6, L_6},
356 {0, K_5, J_5, L_5},
357 {0, K_4, J_4, L_4},
358 {0, K_3, J_3, L_3},
359 {0, K_2, J_2, L_2},
360 {0, K_1, J_1, L_1},
361 {0, H_14, G_14, I_14},
362 {0, H_13, G_13, I_13},
363 {0, H_12, G_12, I_12},
364 {0, H_11, G_11, I_11},
365 {0, H_10, G_10, I_10},
366 {0, H_9, G_9, I_9},
367 {0, H_8, G_8, I_8},
368 {0, H_7, G_7, I_7},
369 {0, H_6, G_6, I_6},
370 {0, H_5, G_5, I_5},
371 {0, H_4, G_4, I_4},
372 {0, H_3, G_3, I_3},
373 {0, H_2, G_2, I_2},
374 {0, H_1, G_1, I_1},
375 {0, E_14, D_14, F_14},
376 {0, E_12, D_12, F_12},
377 {0, E_11, D_11, F_11},
378 {0, E_10, D_10, F_10},
379 {0, E_9, D_9, F_9},
380 {0, E_8, D_8, F_8},
381 {0, E_7, D_7, F_7},
382 {0, E_6, D_6, F_6},
383 {0, E_5, D_5, F_5},
384 {0, E_4, D_4, F_4},
385 {0, E_3, D_3, F_3},
386 {0, E_2, D_2, F_2},
387 {0, E_1, D_1, F_1},
388 {0, B_14, A_14, C_14},
389 {0, B_13, A_13, C_13},
390 {0, B_11, A_11, C_11},
391 {0, B_10, A_10, C_10},
392 {0, B_9, A_9, C_9},
393 {0, B_8, A_8, C_8},
394 {0, B_7, A_7, C_7},
395 {0, B_6, A_6, C_6},
396 {0, B_5, A_5, C_5},
397 {0, B_4, A_4, C_4},
398 {0, B_3, A_3, C_3},
399 {0, B_2, A_2, C_2},
400 {0, B_1, A_1, C_1},
401 {0, B_15, A_15, C_15},
402 {0, E_13, D_13, F_13},
403 {0, B_12, A_12, C_12},
404 {0, E_15, D_15, F_15},
405 {0, H_15, G_15, I_15},
406 {0, B_16, A_16, C_16},
407 {0, E_16, D_16, F_16},
408 {0, H_16, G_16, I_16},
409 {0, K_16, J_16, L_16},
410};
411
412led_config_t g_led_config = { {
413 { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
414 { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
415 { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
416 { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 },
417 { 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 }
418}, {
419 { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
420 { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
421 { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 224, 48 },
422 { 208, 48 }, { 186, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 36, 48 }, { 9, 48 }, { 224, 64 }, { 208, 64 },
423 { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
424}, {
425 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
426 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
427 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
428 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
429 1, 1, 1, 4, 1, 1, 1
430} };
431
432
433#endif
diff --git a/users/tominabox1/doug.c b/users/tominabox1/doug.c
new file mode 100644
index 000000000..d1f92ecf3
--- /dev/null
+++ b/users/tominabox1/doug.c
@@ -0,0 +1,243 @@
1// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
2// See gfxfont.h for newer custom bitmap font info.
3
4#ifndef FONT5X7_H
5#define FONT5X7_H
6
7#ifdef __AVR__
8 #include <avr/io.h>
9 #include <avr/pgmspace.h>
10#elif defined(ESP8266)
11 #include <pgmspace.h>
12#else
13 #define PROGMEM
14#endif
15
16// Standard ASCII 5x7 font
17const unsigned char font[] PROGMEM = {
18 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
190x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
200x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
210x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
220x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
230x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
240x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
250x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
260xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
270x00, 0x18, 0x24, 0x18, 0x00, 0x00,
280xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
290x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
300x26, 0x29, 0x79, 0x29, 0x26, 0x00,
310x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
320x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
330x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
340x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
350x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
360x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
370x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
380x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
390x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
400x60, 0x60, 0x60, 0x60, 0x60, 0x00,
410x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
420x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
430x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
440x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
450x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
460x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
470x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
480x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
490x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
500x00, 0x00, 0x00, 0x00, 0x00, 0x00,
510x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
520x00, 0x07, 0x00, 0x07, 0x00, 0x00,
530x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
540x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
550x23, 0x13, 0x08, 0x64, 0x62, 0x00,
560x36, 0x49, 0x56, 0x20, 0x50, 0x00,
570x00, 0x08, 0x07, 0x03, 0x00, 0x00,
580x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
590x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
600x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
610x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
620x00, 0x80, 0x70, 0x30, 0x00, 0x00,
630x08, 0x08, 0x08, 0x08, 0x08, 0x00,
640x00, 0x00, 0x60, 0x60, 0x00, 0x00,
650x20, 0x10, 0x08, 0x04, 0x02, 0x00,
660x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
670x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
680x72, 0x49, 0x49, 0x49, 0x46, 0x00,
690x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
700x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
710x27, 0x45, 0x45, 0x45, 0x39, 0x00,
720x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
730x41, 0x21, 0x11, 0x09, 0x07, 0x00,
740x36, 0x49, 0x49, 0x49, 0x36, 0x00,
750x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
760x00, 0x00, 0x14, 0x00, 0x00, 0x00,
770x00, 0x40, 0x34, 0x00, 0x00, 0x00,
780x00, 0x08, 0x14, 0x22, 0x41, 0x00,
790x14, 0x14, 0x14, 0x14, 0x14, 0x00,
800x00, 0x41, 0x22, 0x14, 0x08, 0x00,
810x02, 0x01, 0x59, 0x09, 0x06, 0x00,
820x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
830x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
840x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
850x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
860x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
870x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
880x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
890x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
900x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
910x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
920x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
930x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
940x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
950x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
960x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
970x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
980x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
990x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
1000x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
1010x26, 0x49, 0x49, 0x49, 0x32, 0x00,
1020x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
1030x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
1040x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
1050x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
1060x63, 0x14, 0x08, 0x14, 0x63, 0x00,
1070x03, 0x04, 0x78, 0x04, 0x03, 0x00,
1080x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
1090x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
1100x02, 0x04, 0x08, 0x10, 0x20, 0x00,
1110x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
1120x04, 0x02, 0x01, 0x02, 0x04, 0x00,
1130x40, 0x40, 0x40, 0x40, 0x40, 0x00,
1140x00, 0x03, 0x07, 0x08, 0x00, 0x00,
1150x20, 0x54, 0x54, 0x78, 0x40, 0x00,
1160x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
1170x38, 0x44, 0x44, 0x44, 0x28, 0x00,
1180x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
1190x38, 0x54, 0x54, 0x54, 0x18, 0x00,
1200x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
1210x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00,
1220x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
1230x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
1240x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
1250x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
1260x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
1270x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
1280x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
1290x38, 0x44, 0x44, 0x44, 0x38, 0x00,
1300xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
1310x18, 0x24, 0x24, 0x18, 0xFC, 0x00,
1320x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
1330x48, 0x54, 0x54, 0x54, 0x24, 0x00,
1340x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
1350x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
1360x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
1370x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
1380x44, 0x28, 0x10, 0x28, 0x44, 0x00,
1390x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
1400x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
1410x00, 0x08, 0x36, 0x41, 0x00, 0x00,
1420x00, 0x00, 0x77, 0x00, 0x00, 0x00,
1430x00, 0x41, 0x36, 0x08, 0x00, 0x00,
1440x02, 0x01, 0x02, 0x04, 0x02, 0x00,
1450x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
1460x00, 0x2C, 0x2C, 0x2C, 0x34, 0x34,
1470x34, 0x24, 0x2C, 0x2C, 0x2C, 0x00,
1480x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1490x00, 0x00, 0x00, 0x00, 0x18, 0x14,
1500x14, 0x3C, 0x20, 0x00, 0x00, 0x04,
1510x0C, 0x00, 0x00, 0x20, 0x00, 0xC0,
1520x00, 0x00, 0x00, 0xA0, 0x20, 0x30,
1530x7C, 0x78, 0x0C, 0x0C, 0x18, 0x18,
1540x18, 0x14, 0x14, 0x14, 0x00, 0x00,
1550x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1560x00, 0x80, 0x5C, 0x5C, 0x24, 0x20,
1570xA0, 0xA0, 0xA0, 0x20, 0x60, 0x20,
1580xBC, 0x00, 0x00, 0x00, 0x00, 0x00,
1590x00, 0x00, 0x00, 0x14, 0x94, 0x94,
1600x14, 0x94, 0x94, 0x94, 0x94, 0x14,
1610x1C, 0x1C, 0x1C, 0x88, 0x08, 0x00,
1620x00, 0x00, 0x00, 0x00, 0x18, 0x08,
1630x84, 0x84, 0x84, 0x84, 0x80, 0x98,
1640x80, 0x9C, 0x9C, 0x90, 0x80, 0x00,
1650x10, 0x1C, 0x1C, 0x00, 0x00, 0x00,
1660x00, 0x00, 0x00, 0x10, 0x10, 0x00,
1670xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
1680xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
1690x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
1700x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
1710x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
1720x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
1730xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
1740xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
1750x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1760x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1770x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1780x80, 0x80, 0x40, 0x00, 0x80, 0x80,
1790x00, 0x00, 0x00, 0x00, 0x80, 0x80,
1800x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1810x50, 0xA0, 0x40, 0x80, 0x80, 0x40,
1820xA0, 0x50, 0x00, 0x00, 0xF0, 0x00,
1830x01, 0x08, 0x08, 0x88, 0x08, 0x08,
1840x00, 0x00, 0x00, 0x00, 0x0A, 0x0C,
1850x0E, 0x0A, 0x00, 0x00, 0x00, 0x00,
1860x00, 0x00, 0x02, 0x82, 0x80, 0x80,
1870x00, 0x00, 0x80, 0x80, 0x00, 0x00,
1880x00, 0xC0, 0x00, 0x00, 0x00, 0x01,
1890x00, 0x00, 0x00, 0x40, 0x00, 0x40,
1900x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1910x00, 0x00, 0x00, 0x00, 0x03, 0x00,
1920x01, 0x01, 0x01, 0x60, 0x60, 0x40,
1930xF1, 0xB3, 0x03, 0x00, 0x00, 0x00,
1940x00, 0x00, 0x90, 0x90, 0xD0, 0xC0,
1950xE0, 0xE0, 0x00, 0x00, 0x00, 0x01,
1960x00, 0x90, 0xA0, 0xA0, 0x63, 0x60,
1970x40, 0x40, 0xC0, 0x00, 0x00, 0x00,
1980x00, 0x02, 0x02, 0x02, 0x03, 0x00,
1990x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
2000x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
2010x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
2020x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
2030x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
2040x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
2050x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
2060x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
2070x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2080x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2090x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2100x07, 0x06, 0x00, 0x70, 0x10, 0x10,
2110x31, 0x11, 0x16, 0x06, 0x07, 0x01,
2120x00, 0x08, 0x08, 0x08, 0x70, 0x70,
2130x40, 0x40, 0x41, 0x46, 0x46, 0x41,
2140x40, 0x40, 0x00, 0x00, 0x07, 0x00,
2150x00, 0x00, 0x00, 0x75, 0x75, 0x15,
2160x77, 0x77, 0x35, 0x15, 0x75, 0x75,
2170x75, 0x00, 0x00, 0x00, 0x00, 0x00,
2180x00, 0x70, 0x70, 0x56, 0x56, 0x56,
2190x51, 0x11, 0x26, 0x00, 0x00, 0x00,
2200x00, 0x17, 0x10, 0x10, 0x70, 0x00,
2210x00, 0x00, 0x30, 0x20, 0x27, 0x77,
2220x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2230x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2240xE0, 0xE0, 0xA0, 0xA0, 0xA0, 0xA0,
2250xA0, 0xA0, 0x00, 0x00, 0x00, 0x00,
2260x00, 0x00, 0x90, 0x90, 0x90, 0x90,
2270x90, 0xF0, 0x00, 0x00, 0x00, 0x00,
2280x00, 0x00, 0x00, 0x00, 0x20, 0x40,
2290xF0, 0x30, 0x10, 0x00, 0x00, 0x00,
2300x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2310x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2320x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2330x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2340x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2350x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2360x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2370x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2380x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2390x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2400x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2410x00, 0x00, 0x00, 0x00, 0x00, 0x00,
242};
243#endif // FONT5X7_H
diff --git a/users/tominabox1/readme.md b/users/tominabox1/readme.md
new file mode 100644
index 000000000..99a3542bc
--- /dev/null
+++ b/users/tominabox1/readme.md
@@ -0,0 +1,5 @@
1# Overview
2
3My user-space code covers the [Minivan](../../keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c), [Dimple](../../keyboards/lazydesigners/dimple/keymaps/tominabox1/keymap.c), [CRKBD](../../keyboards/crkbd/keymaps/tominabox1/keymap.c), and [Teensy based HHKB converter](../../keyboards/hhkb/keymaps/tominabox1/). My code makes extensive use of @Drashna's code and much love and praise goes to him for figuring a lot of this stuff out!
4
5My usercode utilizes the layout wrappers contained in [wrappers.h](wrappers.h). All of the keymaps are derivative of the Dimple keymap and utilize its wrappers in the definition of additional wrappers.
diff --git a/users/tominabox1/rules.mk b/users/tominabox1/rules.mk
new file mode 100644
index 000000000..b70b128cf
--- /dev/null
+++ b/users/tominabox1/rules.mk
@@ -0,0 +1,26 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5CONSOLE_ENABLE = no
6TAP_DANCE_ENABLE = yes
7NKRO_ENABLE = yes
8BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
9
10ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
11RGB_MATRIX_ENABLE = WS2812
12EXTRAFLAGS += -flto
13BOOTLOADER = qmk-dfu
14OLED_DRIVER_ENABLE = yes
15endif
16
17ifeq ($(strip $(KEYBOARD)), lazydesigners/dimple)
18MOUSEKEY_ENABLE = no # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control
20BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
21RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
22# RGB_MATRIX_ENABLE = WS2812
23endif
24
25
26SRC += tominabox1.c
diff --git a/users/tominabox1/tominabox1.c b/users/tominabox1/tominabox1.c
new file mode 100644
index 000000000..95e6ee780
--- /dev/null
+++ b/users/tominabox1/tominabox1.c
@@ -0,0 +1,281 @@
1#include "tominabox1.h"
2
3#ifdef KEYBOARD_lazydesigners_dimple
4#ifdef RGBLIGHT_ENABLE
5__attribute__ ((weak))
6void keyboard_post_init_keymap(void) {}
7
8void keyboard_post_init_user(void) { // sets the backlighting to come on upon successful load then turn off
9 rgblight_enable_noeeprom();
10 rgblight_sethsv_noeeprom(RGB_RED);
11 rgblight_mode_noeeprom(0);
12 wait_ms(700);
13 rgblight_disable_noeeprom();
14}
15#endif // RGBLIGHT
16#endif // Dimple
17
18
19#ifdef RGB_MATRIX_ENABLE
20void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type);
21static bool is_suspended;
22static bool rgb_matrix_enabled;
23
24__attribute__ ((weak))
25void suspend_power_down_keymap(void) {}
26
27void suspend_power_down_user(void) {
28 rgb_matrix_set_suspend_state(true);
29 if (!is_suspended) {
30 is_suspended = true;
31 rgb_matrix_enabled = (bool)rgb_matrix_config.enable;
32 rgb_matrix_disable_noeeprom();
33 }
34}
35
36__attribute__ ((weak))
37void suspend_wakeup_init_keymap(void) {}
38
39void suspend_wakeup_init_user(void) {
40 rgb_matrix_set_suspend_state(false);
41 is_suspended = false;
42 if (rgb_matrix_enabled) {
43 rgb_matrix_enable_noeeprom();
44 }
45}
46
47# include "lib/lib8tion/lib8tion.h"
48extern led_config_t g_led_config;
49void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type) {
50 HSV hsv = {hue, sat, val};
51 if (hsv.v > rgb_matrix_config.hsv.v) {
52 hsv.v = rgb_matrix_config.hsv.v;
53 }
54
55 switch (mode) {
56 case 1: // breathing
57 {
58 uint16_t time = scale16by8(g_rgb_counters.tick, speed / 8);
59 hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
60 RGB rgb = hsv_to_rgb(hsv);
61 for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) {
62 if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
63 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
64 }
65 }
66 break;
67 }
68 default: // Solid Color
69 {
70 RGB rgb = hsv_to_rgb(hsv);
71 for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) {
72 if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
73 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
74 }
75 }
76 break;
77 }
78 }
79}
80#endif //RGB_MATRIX_ENABLE
81
82void dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) {
83 if (state->count == 1) {
84 register_code16(S(KC_2));
85 } else {
86 SEND_STRING("tom.campie@gmail.com");
87 }
88}
89
90void dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) {
91 if (state->count == 1) {
92 unregister_code16(S(KC_2));
93 } else {
94 }
95}
96
97qk_tap_dance_action_t tap_dance_actions[] = {
98 [KC_EMAIL] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset),
99 [TD_SFT_CPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS),
100};
101
102#define TAPPING_TERM 200
103#define IGNORE_MOD_TAP_INTERRUPT
104
105#ifdef KEYBOARD_crkbd_rev1
106
107#endif // CRKBD
108
109uint16_t get_tapping_term(uint16_t keycode) {
110 switch (keycode) {
111 case LSFT_T(KC_CAPS):
112 return 250;
113 case KC_ENT_LOW:
114 return 150;
115 case KC_SPC_RSE:
116 return(250);
117 case LCTL_T(KC_TAB):
118 return 300;
119 default:
120 return TAPPING_TERM;
121 }
122};
123
124__attribute__ ((weak))
125layer_state_t layer_state_set_keymap (layer_state_t state) {
126 return state;
127}
128
129uint32_t layer_state_set_user(uint32_t state) {
130 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
131 switch (biton32(state)) {
132 case _LOWER:
133 break;
134 case _RAISE:
135 break;
136 case _ADJUST:
137 break;
138 default:
139 break;
140 }
141 return state;
142}
143
144#ifdef KEYBOARD_crkbd_rev1
145
146__attribute__((weak))
147void matrix_scan_keymap(void) {}
148
149extern bool oled_initialized;
150void matrix_scan_user(void) {
151 if(!oled_initialized) {
152 wait_ms(200);
153 oled_init(0);
154 return;
155 }
156 matrix_scan_keymap();
157 }
158
159extern uint8_t is_master;
160#endif // CRKBD
161
162uint16_t oled_timer;
163
164__attribute__ ((weak))
165bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
166 return true;
167}
168
169bool process_record_user(uint16_t keycode, keyrecord_t *record) {
170 #ifdef CONSOLE_ENABLE
171 uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
172 #endif
173
174 if (record->event.pressed) {
175 #ifdef OLED_DRIVER_ENABLE
176 oled_timer = timer_read();
177 oled_on();
178 #endif // OLED_DRIVER_ENABLE
179 switch (keycode) {
180 case KC_BBB:
181 if (record->event.pressed) {
182 SEND_STRING(":b:");
183 } else {}
184 break;
185 case KC_BEPIS:
186 if (record->event.pressed) {
187 SEND_STRING("BEPIS");
188 } else {}
189 break;
190 }
191 }
192 return true;
193
194}
195#ifdef KEYBOARD_crkbd_rev1
196#ifdef OLED_DRIVER_ENABLE
197void render_logo(void) {
198 static const char PROGMEM logo[] = {
199 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
200 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
201 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
202 0};
203 oled_write_P(logo, false);
204}
205
206void render_status_main(void) {
207 // Host Keyboard USB Status
208 oled_write_P(PSTR("USB: "), false);
209 switch (USB_DeviceState) {
210 case DEVICE_STATE_Unattached:
211 oled_write_P(PSTR("Unattached\n"), false);
212 break;
213 case DEVICE_STATE_Suspended:
214 oled_write_P(PSTR("Suspended\n"), false);
215 break;
216 case DEVICE_STATE_Configured:
217 oled_write_P(PSTR("Connected\n"), false);
218 break;
219 case DEVICE_STATE_Powered:
220 oled_write_P(PSTR("Powered\n"), false);
221 break;
222 case DEVICE_STATE_Default:
223 oled_write_P(PSTR("Default\n"), false);
224 break;
225 case DEVICE_STATE_Addressed:
226 oled_write_P(PSTR("Addressed\n"), false);
227 break;
228 default:
229 oled_write_P(PSTR("Invalid\n"), false);
230 }
231
232 // Host Keyboard Layer Status
233 oled_write_P(PSTR("Layer: "), false);
234 switch (biton32(layer_state)) {
235 case _BASE:
236 oled_write_P(PSTR("Colemak\n"), false);
237 break;
238 case _RAISE:
239 oled_write_P(PSTR("Numbers\n"), false);
240 break;
241 case _LOWER:
242 oled_write_P(PSTR("Symbols\n"), false);
243 break;
244 case _ADJUST:
245 oled_write_P(PSTR("Adjust\n"), false);
246 break;
247 case _ARROW:
248 oled_write_P(PSTR("Navigation\n"), false);
249 break;
250 case _FKEY:
251 oled_write_P(PSTR("Function\n"), false);
252 break;
253 default:
254 // Or use the write_ln shortcut over adding '\n' to the end of your string
255 oled_write_ln_P(PSTR("Undefined"), false);
256 }
257
258 // Host Keyboard LED Status
259
260 oled_write_ln_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("Caps Lock\n") : PSTR(" \n"), false);
261}
262__attribute__ ((weak))
263void oled_task_keymap(void) {}
264
265void oled_task_user(void) {
266
267 if (timer_elapsed(oled_timer) > 20000) {
268 oled_off();
269 return;
270 }
271 if (is_master) {
272 render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
273 } else {
274 render_logo();
275 oled_scroll_left();
276 }
277 oled_task_keymap();
278 }
279
280#endif // OLED_Driver
281#endif // crkbd
diff --git a/users/tominabox1/tominabox1.h b/users/tominabox1/tominabox1.h
new file mode 100644
index 000000000..00f8e6516
--- /dev/null
+++ b/users/tominabox1/tominabox1.h
@@ -0,0 +1,56 @@
1#pragma once
2#include "quantum.h"
3#include "action.h"
4#include "version.h"
5#include "wrappers.h"
6
7// #define KC_SFT_CPS MT(MOD_LSFT, KC_CAPS) // Act as Shift on hold and as CapsLock on tap
8#define SPC_LOW LT(_LOWER, KC_ENT) // Left space on tap, LOWER on hold
9#define SPC_UPR LT(_RAISE, KC_SPC) // Left space on tap, UPPER on hold
10
11extern keymap_config_t keymap_config;
12
13enum layers {
14 _BASE,
15 _LOWER,
16 _RAISE,
17 _ADJUST,
18 _ARROW,
19 _FKEY
20};
21
22enum custom_keycodes {
23 BASE = SAFE_RANGE,
24 KC_BEPIS,
25 KC_BBB,
26 LOWER,
27 RAISE,
28 ADJUST,
29 ARROW,
30 FKEY,
31 KC_LFT_NUM_F,
32 RGBRST,
33 KC_PASTA
34};
35
36enum tap_dance_indexes {
37 KC_EMAIL,
38 TD_SFT_CPS,
39};
40
41#define KC_ARROW MO(4)
42#define KC_LTOG RGB_TOG
43#define KC_LHUI RGB_HUI
44#define KC_LHUD RGB_HUD
45#define KC_LSAI RGB_SAI
46#define KC_LSAD RGB_SAD
47#define KC_LVAI RGB_VAI
48#define KC_LVAD RGB_VAD
49#define KC_LMOD RGB_MOD
50#define KC_CTLTB CTL_T(KC_TAB) // Tab on tap, ctrl on hold
51#define KC_SFT_CPS TD(TD_SFT_CPS) // Hold for shift, double tap for caps
52#define KC_ENT_LOW LT(_LOWER, KC_ENT) // Return on tap, Lower on hold
53#define KC_SPC_RSE LT(_RAISE, KC_SPC) // Space on tap, raise on hold
54#define KC_EML TD(KC_EMAIL) // Double tap @ for email macro
55#define KC_FKEY LT(_FKEY, KC_ENT) // Return on tap, Fkey on hold
56#define KC_NUMF TD(KC_LFT_NUM_F)
diff --git a/users/tominabox1/wrappers.h b/users/tominabox1/wrappers.h
new file mode 100644
index 000000000..032fad273
--- /dev/null
+++ b/users/tominabox1/wrappers.h
@@ -0,0 +1,142 @@
1#pragma once
2#include "tominabox1.h"
3/*
4Since our quirky block definitions are basically a list of comma separated
5arguments, we need a wrapper in order for these definitions to be
6expanded before being used as arguments to the LAYOUT_xxx macro.
7*/
8#if (!defined(LAYOUT) && defined(KEYMAP))
9# define LAYOUT KEYMAP
10#endif
11
12// clang-format off
13#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
14#define LAYOUT_arrow_wrapper(...) LAYOUT_arrow(__VA_ARGS__)
15
16/*
17 _____ _ _
18 | __ \(_) | |
19 | | | |_ _ __ ___ _ __ | | ___
20 | | | | | '_ ` _ \| '_ \| |/ _ \
21 | |__| | | | | | | | |_) | | __/
22 |_____/|_|_| |_| |_| .__/|_|\___|
23 | |
24 |_|
25*/
26// Dimple Base layer
27#define __________________DIMPLE1__________________ KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC
28#define __________________DIMPLE2__________________ LCTL_T(KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
29#define __________________DIMPLE3L_________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
30#define __________________DIMPLE3R_________________ KC_K, KC_M, KC_COMM, KC_UP, LT(_FKEY,KC_DOT)
31#define __________________DIMPLE4__________________ KC_LCTL, KC_LGUI, KC_LALT, KC_ENT_LOW, KC_SPC_RSE, KC_LEFT, KC_DOWN, KC_RGHT
32
33// Dimple Symbol Layer
34#define _________________LOWER_1___________________ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC
35#define _________________LOWER_2___________________ KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE
36#define _________________LOWER_3___________________ KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_QUES
37#define _________________LOWER_4___________________ LCA(KC_DEL), KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_END
38
39// Dimple Number layer
40#define ___________________RAISE1__________________ KC_TILD, KC_EXLM, TD(KC_EMAIL), KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL
41#define ___________________RAISE2__________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS
42#define ___________________RAISE3__________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_SLSH
43#define ___________________RAISE4__________________ KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO
44
45// Dimple F-key layer
46#define ___________________FKEY1___________________ KC_PASTA, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO
47#define ___________________FKEY2___________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F11, KC_F12, KC_NO
48#define ___________________FKEY3___________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
49#define ___________________FKEY4___________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO
50
51// Dimple Adjust layer
52#define ___________________ADJST1__________________ RESET,RGBRST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
53#define ___________________ADJST2__________________ RGB_M_P, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
54#define ___________________ADJST3__________________ RGB_MOD, RGB_HUI, RGB_HUD, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
55#define ___________________ADJST4__________________ RGB_VAD, RGB_TOG, RGB_VAI, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO
56
57/*
58__ __ _ _
59| \/ (_) (_)
60| \ / |_ _ __ ___ ____ _ _ __
61| |\/| | | '_ \| \ \ / / _` | '_ \
62| | | | | | | | |\ V / (_| | | | |
63|_| |_|_|_| |_|_| \_/ \__,_|_| |_|
64*/
65
66
67// Minivan Base Layer
68#define __________________MINIVAN1_________________ __________________DIMPLE1__________________
69#define __________________MINIVAN2_________________ __________________DIMPLE2__________________
70#define __________________MINIVAN3_________________ __________________DIMPLE3L_________________, __________________DIMPLE3R_________________, KC_RSFT
71#define __________________MINIVAN4_________________ KC_LCTL, KC_LGUI, KC_LALT, KC_ENT_LOW, KC_SPC_RSE, KC_LEFT, KC_DOWN, KC_RGHT, MO(_FKEY)
72
73/* Minivan Symbol Layer
74#define _________________LOWER_1___________________
75#define _________________LOWER_2___________________ */
76#define __________________MININUM3_________________ _________________LOWER_3___________________, KC_SLSH
77#define __________________MININUM4_________________ _________________LOWER_4___________________, KC_END
78
79/* Minvian Number Layer
80#define ___________________RAISE1__________________
81#define ___________________RAISE2__________________ */
82#define ___________________RVAN_3__________________ ___________________RAISE3__________________, KC_NO
83#define ___________________RVAN_4__________________ ___________________RAISE4__________________, KC_NO
84
85/* Minvian F-key layer
86#define ___________________FKEY1___________________
87#define ___________________FKEY2___________________ */
88#define ___________________FVAN_3__________________ ___________________FKEY3___________________, KC_NO
89#define ___________________FVAN_4__________________ ___________________FKEY4___________________, KC_TRNS
90
91/* Minivan Adjust Layer
92#define ___________________ADJST1__________________
93#define ___________________ADJST2__________________ */
94#define ___________________ADJVAN3_________________ ___________________ADJST3__________________, KC_NO
95#define ___________________ADJVAN4_________________ ___________________ADJST4__________________, KC_TRNS
96
97/*
98 _____ _____ _ ______ _____
99 / ____| __ \| |/ / _ \| __ \
100| | | |__) | ' /| |_) | | | |
101| | | _ /| < | _ <| | | |
102| |____| | \ \| . \| |_) | |__| |
103 \_____|_| \_\_|\_\____/|_____/
104*/
105
106// CRKBD Base Layer
107#define ___________________CRKBD1__________________ __________________DIMPLE1__________________
108#define ___________________CRKBD2__________________ __________________DIMPLE2__________________
109#define ___________________CRKBD3__________________ __________________DIMPLE3L_________________, KC_K, KC_M,KC_COMM, KC_DOT, KC_SLSH, KC_BBB
110#define ___________________CRKBD4__________________ KC_LGUI, KC_LALT,KC_ENT_LOW, KC_SPC_RSE, KC_ARROW, KC_FKEY
111
112/* CRKBD Number layer
113#define ___________________RAISE1__________________
114#define ___________________RAISE1__________________ */
115#define ___________________CRKBD_RAISE3____________ ___________________RVAN_3__________________
116#define ___________________CRKBD_RAISE4____________ ___________________CRKBD4__________________
117
118/* CRKBD Symbol Layer
119#define _________________LOWER_1___________________
120#define _________________LOWER_2___________________ */
121#define ___________________CRKBD_LOW3______________ __________________MININUM3_________________
122#define ___________________CRKBD_LOW4______________ ___________________CRKBD4__________________
123
124/* CRKBD F-key layer
125#define ___________________FKEY1___________________
126#define ___________________FKEY2___________________ */
127#define ___________________CRKBD_FKEY3_____________ ___________________FVAN_3__________________
128#define ___________________CRKBD_FKEY4_____________ ___________________CRKBD4__________________
129
130/* CRKBD adjust layer
131#define ___________________ADJST1__________________ */
132#define ___________________CRKBD_ADJST2____________ KC_LTOG,KC_LHUI,KC_LSAI,KC_LVAI,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
133#define ___________________CRKBD_ADJST3____________ KC_LMOD, KC_LHUD, KC_LSAD, KC_LVAD, KC_NO, KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
134#define ___________________CRKBD_ADJST4____________ ___________________CRKBD4__________________
135
136// CRKBD arrow layer
137#define ___________________ARROW1__________________ KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGDN, KC_UP, KC_PGUP, KC_NO, KC_NO
138#define ___________________ARROW2__________________ KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO,KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO
139#define ___________________ARROW3__________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
140#define ___________________ARROW4__________________ ___________________CRKBD4__________________
141
142// clang-format on