diff options
| -rw-r--r-- | keyboards/hotdox76v2/config.h | 46 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/hotdox76v2.c | 309 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/hotdox76v2.h | 9 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/info.json | 224 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/keymaps/default/keymap.c | 35 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/keymaps/via/keymap.c | 179 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/keymaps/via/rules.mk | 3 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/oled_font_lib/ext_font.h | 122 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/oled_font_lib/logo2.h | 14 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/readme.md | 25 | ||||
| -rw-r--r-- | keyboards/hotdox76v2/rules.mk | 1 | 
11 files changed, 967 insertions, 0 deletions
| diff --git a/keyboards/hotdox76v2/config.h b/keyboards/hotdox76v2/config.h new file mode 100644 index 0000000000..8a1bdb0288 --- /dev/null +++ b/keyboards/hotdox76v2/config.h @@ -0,0 +1,46 @@ +// Copyright 2021 JasonRen(biu) +// Copyright 2022 Drashna Jael're (@Drashna Jael're) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" +/* + * Feature disable options + *  These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +#define RGB_MATRIX_SPLIT \ +    { 43, 43 } + +#define RGB_DI_PIN D3 +#define RGBLED_NUM 86 +#define DRIVER_LED_TOTAL RGBLED_NUM + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_CENTER \ +    { 112, 32 } + +#define SPLIT_TRANSPORT_MIRROR +#define SPLIT_MODS_ENABLE +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_OLED_ENABLE +#define SPLIT_TRANSACTION_IDS_KB KEYBOARD_CURRENT_ALPA_SYNC + +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL diff --git a/keyboards/hotdox76v2/hotdox76v2.c b/keyboards/hotdox76v2/hotdox76v2.c new file mode 100644 index 0000000000..15613a36cd --- /dev/null +++ b/keyboards/hotdox76v2/hotdox76v2.c @@ -0,0 +1,309 @@ +// Copyright 2021 JasonRen(biu) +// Copyright 2022 Drashna Jael're (@Drashna Jael're) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include <string.h> +#include <transactions.h> +#include "oled_font_lib/logo2.h" +#include "oled_font_lib/ext_font.h" + + +#ifdef RGB_MATRIX_ENABLE +// clang-format off +led_config_t g_led_config = { +    { +        { NO_LED, 34, 33, 32, 35, 37, 36     }, +        { 27, 28, 29, 30, 31, NO_LED, NO_LED }, +        { 26, 25, 24, 23, 22, 21, 20         }, +        { 14, 15, 16, 17, 18, 19, NO_LED     }, +        { 13, 12, 11, 10,  9,  8,  7         }, +        {   0, 1,  2,   3, 4,  5,  6         }, +        /*right*/ +        { NO_LED, 72, 71, 70, 73, 75, 74     }, +        { 65, 66, 67, 68, 69, NO_LED, NO_LED }, +        { 64, 63, 62, 61, 60, 59, 58         }, +        { 52, 53, 54, 55, 56, 57, NO_LED     }, +        { 51, 50, 49, 48, 47, 46, 45         }, +        { 38, 39, 40, 41, 42, 43, 44         } +    }, +    { +        // LED Index to Physical Position +        {0,0},    {17,0},  {34,0},  {52,0},  {69,0},  {86,0},  {103,0}, \ +        {103,13}, {86,13}, {69,13}, {52,13}, {34,13}, {17,13}, {0,13}, \ +        {0,26},   {17,26}, {34,26}, {52,26}, {69,26}, {86,26}, \ +        {103,38}, {86,38}, {69,38}, {52,38}, {34,38}, {17,38}, {0,38}, \ +        {0,51},   {17,51}, {34,51}, {52,51}, {69,51},  \ +                  {86,64}, {69,64}, {52,64}, {34,64}, {17,64}, {0,64}, \ +                  {69,64}, {52,64}, {34,64}, {17,64}, {0,64}, \ + +                                                                                    \ +        {224,0},  {207,0},  {190,0},  {172,0},  {155,0},  {138,0},  {121,0}, \ +        {121,13}, {138,13}, {155,13}, {172,13}, {190,13}, {207,13}, {224,13}, \ +        {224,26}, {207,26}, {190,26}, {172,26}, {155,26}, {138,26}, \ +        {121,38}, {138,38}, {155,38}, {172,38}, {190,38}, {207,38}, {224,38}, \ +        {224,51}, {207,51}, {190,51}, {172,51}, {155,51},  \ +                  {138,64}, {155,64}, {172,64}, {190,64}, {207,64}, {224,64}, \ +                  {155,64}, {172,64}, {190,64}, {207,64}, {224,64}\ + + +    }, +    { +      // LED Index to Flag +      4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,\ +      2,2,2,2,2,\ +      4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,\ +      2,2,2,2,2 +    } +}; +// clang-format on +#endif + +#ifdef OLED_ENABLE + +#    define UNC (94 + 0x21) +typedef struct _master_to_slave_t { +    int  cur_alp_index; +    char current_alp[7]; +} master_to_slave_t; +master_to_slave_t m2s; + +typedef struct _slave_to_master_t { +    int  cur_alp_index; +    char current_alp[7]; +} slave_to_master_t; +slave_to_master_t s2m; + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { +    strcpy((char *)(m2s.current_alp), "[    ]"); +    m2s.current_alp[1] = UNC; +    m2s.current_alp[2] = UNC; +    m2s.current_alp[3] = UNC; +    m2s.current_alp[4] = UNC; + +    m2s.cur_alp_index = 1; + +    strcpy((char *)(s2m.current_alp), "[    ]"); +    s2m.current_alp[1] = UNC; +    s2m.current_alp[2] = UNC; +    s2m.current_alp[3] = UNC; +    s2m.current_alp[4] = UNC; + +    s2m.cur_alp_index = 1; + +    if (is_keyboard_left()) { +        return OLED_ROTATION_180; +    } else { +        return OLED_ROTATION_0; +    } +} + +void render_logo(void) { +    uint8_t i = 0, j = 0; +    for (i = 0; i < 4; ++i) { +        for (j = 0; j < 32; ++j) { +            if (is_keyboard_left()) { +                oled_write_raw_byte(pgm_read_byte(&logo_mouse[i * 32 + j]), i * 128 + j); +            } else { +                oled_write_raw_byte(pgm_read_byte(&logo_mouse[i * 32 + j]), i * 128 + j + 96); +            } +        } +    } +} + +void render_layer_helper_fun(uint8_t start_line, const char *data, uint8_t gap_w, uint8_t l) { +    uint8_t j = 0, k = 0; +    for (j = 0; j < l; ++j) {      // font index +        for (k = 0; k < 12; ++k) { // font byte index +            //                                        base + logo_w(32) + gap_w(12) +l*font_w(12)+current_byte_index +            oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x21][k]), start_line * 2 * 128 + 32 + gap_w + j * 12 + k); +            oled_write_raw_byte(pgm_read_byte(&ext_big_font[pgm_read_byte(&data[j]) - 0x21][k + 12]), start_line * 2 * 128 + 128 + 32 + gap_w + j * 12 + k); +        } +    } +    for (j = 0; j < gap_w; ++j) { +        oled_write_raw_byte(pgm_read_byte(&blank_block), start_line * 2 * 128 + 32 + j); +        oled_write_raw_byte(pgm_read_byte(&blank_block), start_line * 2 * 128 + 32 + gap_w + l * 12 + j); + +        oled_write_raw_byte(pgm_read_byte(&blank_block), start_line * 2 * 128 + 128 + 32 + j); +        oled_write_raw_byte(pgm_read_byte(&blank_block), start_line * 2 * 128 + 128 + 32 + gap_w + l * 12 + j); +    } +} +void render_layer(uint8_t layer) { +    render_layer_helper_fun(0, PSTR("LAYER:"), 12, 6); +    switch (layer) { +        case 0: +            render_layer_helper_fun(1, PSTR("1:HOME"), 12, 6); +            break; +        case 1: +            render_layer_helper_fun(1, PSTR("2:CODE"), 12, 6); +            break; +        case 2: +            render_layer_helper_fun(1, PSTR("3:OFFICE"), 0, 8); +            break; +        case 3: +        default: +            render_layer_helper_fun(1, PSTR("4:OTHERS"), 0, 8); +            break; +    } +} + +void render_cur_input_helper_fun(uint8_t start_line, const char *data, uint8_t gap_w, uint8_t l) { +    uint8_t j = 0, k = 0; +    for (j = 0; j < l; ++j) {      // font index +        for (k = 0; k < 12; ++k) { // font byte index +            //                                        base + logo_w(0) + gap_w(12) +l*font_w(12)+current_byte_index +            oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x21][k]), start_line * 2 * 128 + gap_w + j * 12 + k); +            oled_write_raw_byte(pgm_read_byte(&ext_big_font[data[j] - 0x21][12 + k]), start_line * 2 * 128 + 128 + gap_w + j * 12 + k); +        } +    } +    for (j = 0; j < gap_w; ++j) { +        oled_write_raw_byte(pgm_read_byte(&blank_block), start_line * 2 * 128 + j); +        oled_write_raw_byte(pgm_read_byte(&blank_block), start_line * 2 * 128 + gap_w + l * 12 + j); + +        oled_write_raw_byte(pgm_read_byte(&blank_block), start_line * 2 * 128 + 128 + j); +        oled_write_raw_byte(pgm_read_byte(&blank_block), start_line * 2 * 128 + 128 + gap_w + l * 12 + j); +    } +} + +void render_cur_input(void) { +    render_cur_input_helper_fun(0, "INPUTS:", 6, 7); +    if (is_keyboard_master()) { +        render_cur_input_helper_fun(1, (const char *)(m2s.current_alp), 12, 6); +    } else { +        render_cur_input_helper_fun(1, (const char *)(s2m.current_alp), 12, 6); +    } +    return; +} + +bool oled_task_kb(void) { +    if (!oled_task_user()) { +        return false; +    } +    render_logo(); +    if (is_keyboard_left()) { +        render_layer(biton32(layer_state)); +    } else { +        render_cur_input(); +    } +    return false; +} + +static const char PROGMEM code_to_name[0xFF] = { +    //   0    1    2    3    4    5    6    7    8    9    A    B    c    D    E    F +    UNC, UNC,  UNC, UNC, 'a',  'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x +    'm', 'n',  'o', 'p', 'q',  'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x +    '3', '4',  '5', '6', '7',  '8', '9', '0', UNC, UNC, UNC, UNC, UNC, '-', '=', '[', // 2x +    ']', '\\', '#', ';', '\'', '`', ',', '.', '/', UNC, UNC, UNC, UNC, UNC, UNC, UNC, // 3x +    UNC, UNC,  UNC, UNC, UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // 4x +    UNC, UNC,  UNC, UNC, '/',  '*', '-', '+', UNC, '1', '2', '3', '4', '5', '6', '7', // 5x +    '8', '9',  '0', '.', UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // 6x +    UNC, UNC,  UNC, UNC, UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // 7x +    UNC, UNC,  UNC, UNC, UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // 8x +    UNC, UNC,  UNC, UNC, UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // 9x +    UNC, UNC,  UNC, UNC, UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // Ax +    UNC, UNC,  UNC, UNC, UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // Bx +    UNC, UNC,  UNC, UNC, UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // Cx +    UNC, UNC,  UNC, UNC, UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // Dx +    UNC, UNC,  'A', 'W', UNC,  'S', UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, // Ex +    UNC, UNC,  UNC, UNC, UNC,  UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC, UNC       // Fx +}; + +void get_cur_alp_hook(uint16_t keycode) { +    if (keycode >= 0xF0) { +        keycode = 0xF0; +    } +    if (m2s.cur_alp_index < 4) { +        m2s.current_alp[m2s.cur_alp_index] = pgm_read_byte(&code_to_name[keycode]); +        if (m2s.cur_alp_index == 1) { +            m2s.current_alp[2] = m2s.current_alp[3] = m2s.current_alp[4] = UNC; +        } +        m2s.cur_alp_index++; +    } else { +        for (uint8_t i = 2; i <= 4; ++i) { +            m2s.current_alp[i - 1] = m2s.current_alp[i]; +        } +        m2s.current_alp[m2s.cur_alp_index] = pgm_read_byte(&code_to_name[keycode]); +    } +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { +    if (record->event.pressed) { +        get_cur_alp_hook(keycode); +    } +    if (!process_record_user(keycode, record)) { +        return false; +    } +    switch (keycode) { +        case TOG_OLED: +            if (record->event.pressed) { +                if (is_oled_on()) { +                    oled_off(); +                } else { +                    oled_on(); +                } +            } +            return false; +        default: +            return true; +    } +    return true; +} + +void matrix_scan_kb(void) { +    if (!is_oled_on()) { +        m2s.cur_alp_index = 1; +    } +    matrix_scan_user(); +} + +void user_sync_alpa_slave_handler(uint8_t in_buflen, const void *in_data, uint8_t out_buflen, void *out_data) { +    const master_to_slave_t *m2s_p = (const master_to_slave_t *)in_data; +    s2m.cur_alp_index              = m2s_p->cur_alp_index; +    for (size_t i = 0; i < 7; i++) { +        s2m.current_alp[i] = m2s_p->current_alp[i]; +    } +} + +void keyboard_post_init_kb(void) { +    transaction_register_rpc(KEYBOARD_CURRENT_ALPA_SYNC, user_sync_alpa_slave_handler); +    keyboard_post_init_user(); +} + +void housekeeping_task_kb(void) { +    if (is_keyboard_master()) { +        // Interact with slave every 200ms +        static uint32_t last_sync = 0; +        if (timer_elapsed32(last_sync) > 200) { +            if (transaction_rpc_exec(KEYBOARD_CURRENT_ALPA_SYNC, sizeof(m2s), &m2s, sizeof(s2m), &s2m)) { +                last_sync = timer_read32(); +                dprint("Slave sync successed!\n"); +            } else { +                dprint("Slave sync failed!\n"); +            } +        } +    } +    housekeeping_task_user(); +} + +#endif + +#ifdef SWAP_HANDS_ENABLE +__attribute__((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { +    /* Left hand, matrix positions */ +    {{0,  6}, {1,  6}, {2,  6}, {3,  6}, {4,  6}, {5,  6}, {6, 6}}, +    {{0,  7}, {1,  7}, {2,  7}, {3,  7}, {4,  7}, {5,  7}, {6,  7}}, +    {{0,  8}, {1,  8}, {2,  8}, {3,  8}, {4,  8}, {5,  8}, {6,  8}}, +    {{0,  9}, {1,  9}, {2,  9}, {3,  9}, {4,  9}, {5,  9}, {6,  9}}, +    {{0, 10}, {1, 10}, {2, 10}, {3, 10}, {4, 10}, {5, 10},  {6, 10}}, +    {{0, 11}, {1, 11}, {2, 11}, {3, 11}, {4, 11}, {5, 11},  {6, 11}}, + +    /* Right hand, matrix positions */ +    {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}, {6, 5}}, +    {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}}, +    {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}}, +    {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}, {6, 2}}, +    {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}}, +    {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}} +}; +#endif diff --git a/keyboards/hotdox76v2/hotdox76v2.h b/keyboards/hotdox76v2/hotdox76v2.h new file mode 100644 index 0000000000..a9165dd673 --- /dev/null +++ b/keyboards/hotdox76v2/hotdox76v2.h @@ -0,0 +1,9 @@ +// Copyright 2021 JasonRen(biu) +// Copyright 2022 Drashna Jael're (@Drashna Jael're) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define TOG_OLED KC_F13 diff --git a/keyboards/hotdox76v2/info.json b/keyboards/hotdox76v2/info.json new file mode 100644 index 0000000000..70c62212f1 --- /dev/null +++ b/keyboards/hotdox76v2/info.json @@ -0,0 +1,224 @@ +{ +    "manufacturer": "JasonRen biu", +    "keyboard_name": "hotdox76", +    "maintainer": "Drashna Jael're", +    "bootloader": "atmel-dfu", +    "diode_direction": "COL2ROW", +    "features": { +        "bootmagic": true, +        "command": false, +        "console": false, +        "extrakey": true, +        "mousekey": true, +        "nkro": true, +        "lto": true, +        "oled": true, +        "rgb_matrix": true +    }, +    "matrix_pins": { +        "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "E6"], +        "rows": ["D6", "D7", "B4", "B5", "B6", "C6"] +    }, +    "split": { +        "enabled": true, +        "soft_serial_pin": "D2" +    }, +    "processor": "atmega32u4", +    "url": "https://github.com/Oh-My-Mechanical-Keyboard", +    "usb": { +        "device_version": "1.0.0", +        "pid": "0xAAA9", +        "vid": "0xAA96" +    }, +    "community_layouts": [ +        "ergodox" +    ], +    "layouts": { +        "LAYOUT_ergodox": { +            "layout": [ +                { "label": "L00", "matrix": [5, 0], "w": 1.5, "x": 0, "y": 0.375 }, +                { "label": "L01", "matrix": [5, 1], "w": 1, "x": 1.5, "y": 0.375 }, +                { "label": "L02", "matrix": [5, 2], "w": 1, "x": 2.5, "y": 0.125 }, +                { "label": "L03", "matrix": [5, 3], "w": 1, "x": 3.5, "y": 0 }, +                { "label": "L04", "matrix": [5, 4], "w": 1, "x": 4.5, "y": 0.125 }, +                { "label": "L05", "matrix": [5, 5], "w": 1, "x": 5.5, "y": 0.25 }, +                { "label": "L06", "matrix": [5, 6], "w": 1, "x": 6.5, "y": 0.25 }, + +                { "label": "L10", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 1.375 }, +                { "label": "L11", "matrix": [4, 1], "w": 1, "x": 1.5, "y": 1.375 }, +                { "label": "L12", "matrix": [4, 2], "w": 1, "x": 2.5, "y": 1.125 }, +                { "label": "L13", "matrix": [4, 3], "w": 1, "x": 3.5, "y": 1 }, +                { "label": "L14", "matrix": [4, 4], "w": 1, "x": 4.5, "y": 1.125 }, +                { "label": "L15", "matrix": [4, 5], "w": 1, "x": 5.5, "y": 1.25 }, +                { "label": "L16", "matrix": [4, 6], "w": 1, "x": 6.5, "y": 1.25, "h": 1.5 }, + +                { "label": "L20", "matrix": [3, 0], "w": 1.5, "x": 0, "y": 2.375 }, +                { "label": "L21", "matrix": [3, 1], "w": 1, "x": 1.5, "y": 2.375 }, +                { "label": "L22", "matrix": [3, 2], "w": 1, "x": 2.5, "y": 2.125 }, +                { "label": "L23", "matrix": [3, 3], "w": 1, "x": 3.5, "y": 2 }, +                { "label": "L24", "matrix": [3, 4], "w": 1, "x": 4.5, "y": 2.125 }, +                { "label": "L25", "matrix": [3, 5], "w": 1, "x": 5.5, "y": 2.25 }, + +                { "label": "L30", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 3.375 }, +                { "label": "L31", "matrix": [2, 1], "w": 1, "x": 1.5, "y": 3.375 }, +                { "label": "L32", "matrix": [2, 2], "w": 1, "x": 2.5, "y": 3.125 }, +                { "label": "L33", "matrix": [2, 3], "w": 1, "x": 3.5, "y": 3 }, +                { "label": "L34", "matrix": [2, 4], "w": 1, "x": 4.5, "y": 3.125 }, +                { "label": "L35", "matrix": [2, 5], "w": 1, "x": 5.5, "y": 3.25 }, +                { "label": "L36", "matrix": [2, 6], "w": 1, "x": 6.5, "y": 2.75, "h": 1.5 }, + +                { "label": "L40", "matrix": [1, 0], "w": 1, "x": 0.5, "y": 4.375 }, +                { "label": "L41", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 4.375 }, +                { "label": "L42", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 4.125 }, +                { "label": "L43", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 4 }, +                { "label": "L44", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 4.125 }, + +                { "label": "L55", "matrix": [0, 5], "w": 1, "x": 6, "y": 5 }, +                { "label": "L56", "matrix": [0, 6], "w": 1, "x": 7, "y": 5 }, +                { "label": "L54", "matrix": [0, 4], "w": 1, "x": 7, "y": 6 }, +                { "label": "L53", "matrix": [0, 3], "w": 1, "x": 5, "y": 6, "h": 2 }, +                { "label": "L52", "matrix": [0, 2], "w": 1, "x": 6, "y": 6, "h": 2 }, +                { "label": "L51", "matrix": [0, 1], "w": 1, "x": 7, "y": 7 }, + +                { "label": "R06", "matrix": [11, 6], "w": 1, "x": 9.5, "y": 0.25 }, +                { "label": "R05", "matrix": [11, 5], "w": 1, "x": 10.5, "y": 0.25 }, +                { "label": "R04", "matrix": [11, 4], "w": 1, "x": 11.5, "y": 0.125 }, +                { "label": "R03", "matrix": [11, 3], "w": 1, "x": 12.5, "y": 0 }, +                { "label": "R02", "matrix": [11, 2], "w": 1, "x": 13.5, "y": 0.125 }, +                { "label": "R01", "matrix": [11, 1], "w": 1, "x": 14.5, "y": 0.375 }, +                { "label": "R00", "matrix": [11, 0], "w": 1.5, "x": 15.5, "y": 0.375 }, + +                { "label": "R16", "matrix": [10, 6], "w": 1, "x": 9.5, "y": 1.25, "h": 1.5 }, +                { "label": "R15", "matrix": [10, 5], "w": 1, "x": 10.5, "y": 1.25 }, +                { "label": "R14", "matrix": [10, 4], "w": 1, "x": 11.5, "y": 1.125 }, +                { "label": "R13", "matrix": [10, 3], "w": 1, "x": 12.5, "y": 1 }, +                { "label": "R12", "matrix": [10, 2], "w": 1, "x": 13.5, "y": 1.125 }, +                { "label": "R11", "matrix": [10, 1], "w": 1, "x": 14.5, "y": 1.375 }, +                { "label": "R10", "matrix": [10, 0], "w": 1.5, "x": 15.5, "y": 1.375 }, + +                { "label": "R25", "matrix": [9, 5], "w": 1, "x": 10.5, "y": 2.25 }, +                { "label": "R24", "matrix": [9, 4], "w": 1, "x": 11.5, "y": 2.125 }, +                { "label": "R23", "matrix": [9, 3], "w": 1, "x": 12.5, "y": 2 }, +                { "label": "R22", "matrix": [9, 2], "w": 1, "x": 13.5, "y": 2.125 }, +                { "label": "R21", "matrix": [9, 1], "w": 1, "x": 14.5, "y": 2.375 }, +                { "label": "R20", "matrix": [9, 0], "w": 1.5, "x": 15.5, "y": 2.375 }, + +                { "label": "R36", "matrix": [8, 6], "w": 1, "x": 9.5, "y": 2.75, "h": 1.5 }, +                { "label": "R35", "matrix": [8, 5], "w": 1, "x": 10.5, "y": 3.25 }, +                { "label": "R34", "matrix": [8, 4], "w": 1, "x": 11.5, "y": 3.125 }, +                { "label": "R33", "matrix": [8, 3], "w": 1, "x": 12.5, "y": 3 }, +                { "label": "R32", "matrix": [8, 2], "w": 1, "x": 13.5, "y": 3.125 }, +                { "label": "R31", "matrix": [8, 1], "w": 1, "x": 14.5, "y": 3.375 }, +                { "label": "R30", "matrix": [8, 0], "w": 1.5, "x": 15.5, "y": 3.375 }, + +                { "label": "R44", "matrix": [7, 4], "w": 1, "x": 11.5, "y": 4.125 }, +                { "label": "R43", "matrix": [7, 3], "w": 1, "x": 12.5, "y": 4 }, +                { "label": "R42", "matrix": [7, 2], "w": 1, "x": 13.5, "y": 4.125 }, +                { "label": "R41", "matrix": [7, 1], "w": 1, "x": 14.5, "y": 4.375 }, +                { "label": "R40", "matrix": [7, 0], "w": 1, "x": 15.5, "y": 4.375 }, + +                { "label": "R56", "matrix": [6, 6], "w": 1, "x": 9, "y": 5 }, +                { "label": "R55", "matrix": [6, 5], "w": 1, "x": 10, "y": 5 }, +                { "label": "R54", "matrix": [6, 4], "w": 1, "x": 9, "y": 6 }, +                { "label": "R51", "matrix": [6, 1], "w": 1, "x": 9, "y": 7 }, +                { "label": "R52", "matrix": [6, 2], "w": 1, "x": 11, "y": 6, "h": 2 }, +                { "label": "R53", "matrix": [6, 3], "w": 1, "x": 10, "y": 6, "h": 2 } +            ] +        }, +        "LAYOUT_ergodox_pretty": { +            "layout": [ +                { "label": "L00", "matrix": [5, 0], "w": 1.5, "x": 0, "y": 0.375 }, +                { "label": "L01", "matrix": [5, 1], "w": 1, "x": 1.5, "y": 0.375 }, +                { "label": "L02", "matrix": [5, 2], "w": 1, "x": 2.5, "y": 0.125 }, +                { "label": "L03", "matrix": [5, 3], "w": 1, "x": 3.5, "y": 0 }, +                { "label": "L04", "matrix": [5, 4], "w": 1, "x": 4.5, "y": 0.125 }, +                { "label": "L05", "matrix": [5, 5], "w": 1, "x": 5.5, "y": 0.25 }, +                { "label": "L06", "matrix": [5, 6], "w": 1, "x": 6.5, "y": 0.25 }, + +                { "label": "R06", "matrix": [11, 6], "w": 1, "x": 9.5, "y": 0.25 }, +                { "label": "R05", "matrix": [11, 5], "w": 1, "x": 10.5, "y": 0.25 }, +                { "label": "R04", "matrix": [11, 4], "w": 1, "x": 11.5, "y": 0.125 }, +                { "label": "R03", "matrix": [11, 3], "w": 1, "x": 12.5, "y": 0 }, +                { "label": "R02", "matrix": [11, 2], "w": 1, "x": 13.5, "y": 0.125 }, +                { "label": "R01", "matrix": [11, 1], "w": 1, "x": 14.5, "y": 0.375 }, +                { "label": "R00", "matrix": [11, 0], "w": 1.5, "x": 15.5, "y": 0.375 }, + +                { "label": "L10", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 1.375 }, +                { "label": "L11", "matrix": [4, 1], "w": 1, "x": 1.5, "y": 1.375 }, +                { "label": "L12", "matrix": [4, 2], "w": 1, "x": 2.5, "y": 1.125 }, +                { "label": "L13", "matrix": [4, 3], "w": 1, "x": 3.5, "y": 1 }, +                { "label": "L14", "matrix": [4, 4], "w": 1, "x": 4.5, "y": 1.125 }, +                { "label": "L15", "matrix": [4, 5], "w": 1, "x": 5.5, "y": 1.25 }, +                { "label": "L16", "matrix": [4, 6], "w": 1, "x": 6.5, "y": 1.25, "h": 1.5 }, + +                { "label": "R16", "matrix": [10, 6], "w": 1, "x": 9.5, "y": 1.25, "h": 1.5 }, +                { "label": "R15", "matrix": [10, 5], "w": 1, "x": 10.5, "y": 1.25 }, +                { "label": "R14", "matrix": [10, 4], "w": 1, "x": 11.5, "y": 1.125 }, +                { "label": "R13", "matrix": [10, 3], "w": 1, "x": 12.5, "y": 1 }, +                { "label": "R12", "matrix": [10, 2], "w": 1, "x": 13.5, "y": 1.125 }, +                { "label": "R11", "matrix": [10, 1], "w": 1, "x": 14.5, "y": 1.375 }, +                { "label": "R10", "matrix": [10, 0], "w": 1.5, "x": 15.5, "y": 1.375 }, + +                { "label": "L20", "matrix": [3, 0], "w": 1.5, "x": 0, "y": 2.375 }, +                { "label": "L21", "matrix": [3, 1], "w": 1, "x": 1.5, "y": 2.375 }, +                { "label": "L22", "matrix": [3, 2], "w": 1, "x": 2.5, "y": 2.125 }, +                { "label": "L23", "matrix": [3, 3], "w": 1, "x": 3.5, "y": 2 }, +                { "label": "L24", "matrix": [3, 4], "w": 1, "x": 4.5, "y": 2.125 }, +                { "label": "L25", "matrix": [3, 5], "w": 1, "x": 5.5, "y": 2.25 }, + +                { "label": "R25", "matrix": [9, 5], "w": 1, "x": 10.5, "y": 2.25 }, +                { "label": "R24", "matrix": [9, 4], "w": 1, "x": 11.5, "y": 2.125 }, +                { "label": "R23", "matrix": [9, 3], "w": 1, "x": 12.5, "y": 2 }, +                { "label": "R22", "matrix": [9, 2], "w": 1, "x": 13.5, "y": 2.125 }, +                { "label": "R21", "matrix": [9, 1], "w": 1, "x": 14.5, "y": 2.375 }, +                { "label": "R20", "matrix": [9, 0], "w": 1.5, "x": 15.5, "y": 2.375 }, + +                { "label": "L30", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 3.375 }, +                { "label": "L31", "matrix": [2, 1], "w": 1, "x": 1.5, "y": 3.375 }, +                { "label": "L32", "matrix": [2, 2], "w": 1, "x": 2.5, "y": 3.125 }, +                { "label": "L33", "matrix": [2, 3], "w": 1, "x": 3.5, "y": 3 }, +                { "label": "L34", "matrix": [2, 4], "w": 1, "x": 4.5, "y": 3.125 }, +                { "label": "L35", "matrix": [2, 5], "w": 1, "x": 5.5, "y": 3.25 }, +                { "label": "L36", "matrix": [2, 6], "w": 1, "x": 6.5, "y": 2.75, "h": 1.5 }, + +                { "label": "R36", "matrix": [8, 6], "w": 1, "x": 9.5, "y": 2.75, "h": 1.5 }, +                { "label": "R35", "matrix": [8, 5], "w": 1, "x": 10.5, "y": 3.25 }, +                { "label": "R34", "matrix": [8, 4], "w": 1, "x": 11.5, "y": 3.125 }, +                { "label": "R33", "matrix": [8, 3], "w": 1, "x": 12.5, "y": 3 }, +                { "label": "R32", "matrix": [8, 2], "w": 1, "x": 13.5, "y": 3.125 }, +                { "label": "R31", "matrix": [8, 1], "w": 1, "x": 14.5, "y": 3.375 }, +                { "label": "R30", "matrix": [8, 0], "w": 1.5, "x": 15.5, "y": 3.375 }, + +                { "label": "L40", "matrix": [1, 0], "w": 1, "x": 0.5, "y": 4.375 }, +                { "label": "L41", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 4.375 }, +                { "label": "L42", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 4.125 }, +                { "label": "L43", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 4 }, +                { "label": "L44", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 4.125 }, + +                { "label": "R44", "matrix": [7, 4], "w": 1, "x": 11.5, "y": 4.125 }, +                { "label": "R43", "matrix": [7, 3], "w": 1, "x": 12.5, "y": 4 }, +                { "label": "R42", "matrix": [7, 2], "w": 1, "x": 13.5, "y": 4.125 }, +                { "label": "R41", "matrix": [7, 1], "w": 1, "x": 14.5, "y": 4.375 }, +                { "label": "R40", "matrix": [7, 0], "w": 1, "x": 15.5, "y": 4.375 }, + +                { "label": "L55", "matrix": [0, 5], "w": 1, "x": 6, "y": 5 }, +                { "label": "L56", "matrix": [0, 6], "w": 1, "x": 7, "y": 5 }, + +                { "label": "R56", "matrix": [6, 6], "w": 1, "x": 9, "y": 5 }, +                { "label": "R55", "matrix": [6, 5], "w": 1, "x": 10, "y": 5 }, + +                { "label": "L54", "matrix": [0, 4], "w": 1, "x": 7, "y": 6 }, + +                { "label": "R54", "matrix": [6, 4], "w": 1, "x": 9, "y": 6 }, + +                { "label": "L53", "matrix": [0, 3], "w": 1, "x": 5, "y": 6,"h": 2 }, +                { "label": "L52", "matrix": [0, 2], "w": 1, "x": 6, "y": 6,"h": 2 }, +                { "label": "L51", "matrix": [0, 1], "w": 1, "x": 7, "y": 7 }, + +                { "label": "R51", "matrix": [6, 1], "w": 1, "x": 9, "y": 7 }, +                { "label": "R52", "matrix": [6, 2], "w": 1, "x": 11, "y": 6, "h": 2 }, +                { "label": "R53", "matrix": [6, 3], "w": 1, "x": 10, "y": 6, "h": 2 } +            ] +        } +    } +} diff --git a/keyboards/hotdox76v2/keymaps/default/keymap.c b/keyboards/hotdox76v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..f6978ac10b --- /dev/null +++ b/keyboards/hotdox76v2/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2021 JasonRen(biu) +// Copyright 2022 Drashna Jael're (@Drashna Jael're) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +    /* +     * ┌──────┬───┬───┬───┬───┬───┬───┐                     ┌───┬───┬───┬───┬───┬───┬──────┐ +     * │ `    │ 1 │ 2 │ 3 │ 4 │ 5 │ = │                     │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │    - │ +     * ├──────┼───┼───┼───┼───┼───┼───┤                     ├───┼───┼───┼───┼───┼───┼──────┤ +     * │ Tab  │ Q │ W │ E │ R │ T │ = │                     │ Y │ Y │ U │ I │ O │ P │    \ │ +     * ├──────┼───┼───┼───┼───┼───┤   │                     │   ├───┼───┼───┼───┼───┼──────┤ +     * │Escape│ A │ S │ D │ F │ G ├───┤                     ├───┤ H │ J │ K │ L │ ; │    ' │ +     * ├──────┼───┼───┼───┼───┼───┤   │                     │   ├───┼───┼───┼───┼───┼──────┤ +     * │Shift │ Z │ X │ C │ V │ B │ B │                     │ N │ N │ M │ , │ . │ / │ Shift│ +     * └──┬───┼───┼───┼───┼───┼───┴───┘ ┌───┬───┐ ┌───┬───┐ └───┴───┼───┼───┼───┼───┼───┬──┘ +     *    │Ctl│F4 │F5 │GUI│Alt│         │ C │ V │ │Alt│ A │         │ ← │ ↓ │ ↑ │ → │GUI│ +     *    └───┴───┴───┴───┴───┘     ┌───┼───┼───┤ ├───┼───┼───┐     └───┴───┴───┴───┴───┘ +     *                              │   │   │PgU│ │PgD│   │   │ +     *                              │Bsp│Bsp├───┤ ├───┤Ent│   │ +     *                              │   │   │Del│ │Ctl│   │   │ +     *                              └───┴───┴───┘ └───┴───┴───┘ +     */ +    [0] = LAYOUT_ergodox_pretty( +        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_EQL,             KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, +        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_EQL,             KC_Y,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSLS, +        KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                                 KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, +        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_B,               KC_N,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, +        KC_LCTL, KC_F4,   KC_F5,   KC_LGUI, KC_LALT,                                                KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, KC_RGUI, +                                                     KC_C,    KC_V,               KC_RALT, KC_A, +                                                              KC_PGUP,            KC_PGDN, +                                            KC_BSPC, KC_BSPC, KC_DEL,             KC_RCTL, KC_ENT, KC_SPC +    ) +}; diff --git a/keyboards/hotdox76v2/keymaps/via/keymap.c b/keyboards/hotdox76v2/keymaps/via/keymap.c new file mode 100644 index 0000000000..764c1599e7 --- /dev/null +++ b/keyboards/hotdox76v2/keymaps/via/keymap.c @@ -0,0 +1,179 @@ +// Copyright 2021 JasonRen(biu) +// Copyright 2022 Drashna Jael're (@Drashna Jael're) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum Layer_name { +    HOME, +    CODE, +    OFFICE, +    OTHER +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------.           ,--------------------------------------------------. + * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    | + * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| + * | Del    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    | + * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| + * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2|' / Cmd | + * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------| + * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |//Ctrl| RShift | + * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' + *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  | + *   `----------------------------------'                                       `----------------------------------' + *                                        ,-------------.       ,-------------. + *                                        | App  | LGui |       | Alt  |Ctrl/Esc| + *                                 ,------|------|------|       |------+--------+------. + *                                 |      |      | Home |       | PgUp |        |      | + *                                 | Space|Backsp|------|       |------|  Tab   |Enter | + *                                 |      |ace   | End  |       | PgDn |        |      | + *                                 `--------------------'       `----------------------' + */ +	LAYOUT_ergodox( +        // left hand +        KC_EQL,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_LEFT, +        KC_DEL,         KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   TG(1), +        KC_BSPC,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G, +        KC_LSFT,        CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   ALL_T(KC_NO), +        LT(1,KC_GRV),   KC_QUOT,      LALT(KC_LSFT),  KC_LEFT,KC_RGHT, +                                              ALT_T(KC_APP),  KC_LGUI, +                                                              KC_HOME, +                                               KC_SPC,KC_BSPC,KC_END, +        // right hand +        KC_RGHT,     KC_6,   KC_7,  KC_8,   KC_9,   KC_0,             KC_MINS, +        TG(1),       KC_Y,   KC_U,  KC_I,   KC_O,   KC_P,             KC_BSLS, +                     KC_H,   KC_J,  KC_K,   KC_L,   LT(2, KC_SCLN),   GUI_T(KC_QUOT), +        MEH_T(KC_NO),KC_N,   KC_M,  KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT, +                             KC_UP, KC_DOWN,KC_LBRC,KC_RBRC,          TT(1), +        KC_LALT,        CTL_T(KC_ESC), +        KC_PGUP, +        KC_PGDN,KC_TAB, KC_ENT +    ), +/* Keymap 1: Symbol Layer + * + * ,---------------------------------------------------.           ,--------------------------------------------------. + * |         |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  | + * |---------+------+------+------+------+------+------|           |------+------+------+------+------+------+--------| + * |         |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  | + * |---------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| + * |         |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        | + * |---------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| + * |         |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        | + * `---------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' + *   |       |      |      |      |      |                                       |      |    . |   0  |   =  |      | + *   `-----------------------------------'                                       `----------------------------------' + *                                        ,-------------.       ,-------------. + *                                        |Animat|      |       |Toggle|      | + *                                 ,------|------|------|       |------+------+------. + *                                 |Bright|Bright|      |       |      |Hue-  |Hue+  | + *                                 |ness- |ness+ |------|       |------|      |      | + *                                 |      |      |      |       |      |      |      | + *                                 `--------------------'       `--------------------' + */ +	LAYOUT_ergodox( +       // left hand +       KC_TRNS,  KC_F1,    KC_F2,    KC_F3,    KC_F4,     KC_F5,    KC_TRNS, +       KC_TRNS,  KC_EXLM,  KC_AT,    KC_LCBR,  KC_RCBR,   KC_PIPE,  KC_TRNS, +       KC_TRNS,  KC_HASH,  KC_DLR,   KC_LPRN,  KC_RPRN,   KC_GRV, +       KC_TRNS,  KC_PERC,  KC_CIRC,  KC_LBRC,  KC_RBRC,   KC_TILD,  KC_TRNS, +       TOG_OLED, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, +                                                          RGB_MOD,KC_TRNS, +                                                                  KC_TRNS, +                                                  RGB_VAD,RGB_VAI,KC_TRNS, +       // right hand +       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11, +       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12, +                KC_DOWN, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS, +       KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_BSLS, KC_TRNS, +                         KC_TRNS,KC_DOT,  KC_0,    KC_EQL,  KC_TRNS, +       RGB_TOG, KC_TRNS, +       KC_TRNS, +       KC_TRNS, RGB_HUD, RGB_HUI +    ), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------.           ,--------------------------------------------------. + * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        | + * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| + * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        | + * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| + * |        |      |      |      |      |      |------|           |------|      |      |      |      |      |  Play  | + * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| + * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        | + * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' + *   |      |      |      | Lclk | Rclk |                                       |VolUp |VolDn | Mute |      |      | + *   `----------------------------------'                                       `----------------------------------' + *                                        ,-------------.       ,-------------. + *                                        |      |      |       |      |      | + *                                 ,------|------|------|       |------+------+------. + *                                 |      |      |      |       |      |      |Brwser| + *                                 |      |      |------|       |------|      |Back  | + *                                 |      |      |      |       |      |      |      | + *                                 `--------------------'       `--------------------' + */ +	LAYOUT_ergodox( +       // left hand +       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS, KC_TRNS, KC_TRNS, 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_BTN1, KC_BTN2, +                                           KC_TRNS, KC_TRNS, +                                                    KC_TRNS, +                                  KC_TRNS, KC_TRNS, KC_TRNS, +    // right hand +       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, +       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, +                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, +       KC_TRNS, KC_TRNS, +       KC_TRNS, +       KC_TRNS, KC_TRNS, KC_WBAK +    ), +/* Keymap 3: Empty + * + * ,--------------------------------------------------.           ,--------------------------------------------------. + * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        | + * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| + * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        | + * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| + * |        |      |      |      |      |      |------|           |------|      |      |      |      |      |        | + * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| + * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        | + * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' + *   |      |      |      |      |      |                                       |      |      |      |      |      | + *   `----------------------------------'                                       `----------------------------------' + *                                        ,-------------.       ,-------------. + *                                        |      |      |       |      |      | + *                                 ,------|------|------|       |------+------+------. + *                                 |      |      |      |       |      |      |      | + *                                 |      |      |------|       |------|      |      | + *                                 |      |      |      |       |      |      |      | + *                                 `--------------------'       `--------------------' + */ +	LAYOUT_ergodox( +       // left hand +       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +                                           KC_TRNS, KC_TRNS, +                                                    KC_TRNS, +                                  KC_TRNS, KC_TRNS, KC_TRNS, +    // right hand +       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +                          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS, KC_TRNS, +       KC_TRNS, +       KC_TRNS, KC_TRNS, KC_TRNS +    ) +}; diff --git a/keyboards/hotdox76v2/keymaps/via/rules.mk b/keyboards/hotdox76v2/keymaps/via/rules.mk new file mode 100644 index 0000000000..30c991c6ee --- /dev/null +++ b/keyboards/hotdox76v2/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no diff --git a/keyboards/hotdox76v2/oled_font_lib/ext_font.h b/keyboards/hotdox76v2/oled_font_lib/ext_font.h new file mode 100644 index 0000000000..3d0f524025 --- /dev/null +++ b/keyboards/hotdox76v2/oled_font_lib/ext_font.h @@ -0,0 +1,122 @@ +// Copyright 2021 JasonRen(biu) +// Copyright 2022 Drashna Jael're (@Drashna Jael're) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "progmem.h" + +/* + !(0) "(1) #(2) $(3) %(4) &(5) '(6) ((7) + )(8) *(9) +(10) ,(11) -(12) .(13) /(14) 0(15) + 1(16) 2(17) 3(18) 4(19) 5(20) 6(21) 7(22) 8(23) + 9(24) :(25) ;(26) <(27) =(28) >(29) ?(30) @(31) + A(32) B(33) C(34) D(35) E(36) F(37) G(38) H(39) + I(40) J(41) K(42) L(43) M(44) N(45) O(46) P(47) + Q(48) R(49) S(50) T(51) U(52) V(53) W(54) X(55) + Y(56) Z(57) [(58) \(59) ](60) ^(61) _(62) `(63) + a(64) b(65) c(66) d(67) e(68) f(69) g(70) h(71) + i(72) j(73) k(74) l(75) m(76) n(77) o(78) p(79) + q(80) r(81) s(82) t(83) u(84) v(85) w(86) x(87) + y(88) z(89) {(90) |(91) }(92) ~(93)  (94) + */ + +static const unsigned char ext_big_font[95][24] PROGMEM = { +{0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00},/*"!",0*/ +{0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",1*/ +{0x00,0x00,0x60,0x60,0xFE,0xFE,0x60,0xFE,0xFE,0x60,0x00,0x00,0x00,0x00,0x06,0x7F,0x7F,0x06,0x7F,0x7F,0x06,0x06,0x00,0x00},/*"#",2*/ +{0x00,0x00,0x00,0xF0,0xF8,0x9E,0x9E,0xB8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0xF9,0xF9,0x1F,0x0F,0x00,0x00,0x00},/*"$",3*/ +{0x00,0x00,0x38,0x44,0xC4,0xC4,0xB8,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00,0x00},/*"%",4*/ +{0x00,0x00,0x60,0xE0,0xB0,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x0E,0x0F,0x19,0x19,0x1B,0x1E,0x0E,0x0F,0x1B,0x00,0x00},/*"&",5*/ +{0x00,0x00,0x00,0x00,0x00,0x18,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",6*/ +{0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0x3C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x78,0x60,0x00,0x00,0x00},/*"(",7*/ +{0x00,0x00,0x0C,0x3C,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x78,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*")",8*/ +{0x00,0x00,0x30,0xB0,0xF0,0xFC,0xFC,0xF0,0xB0,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00},/*"*",9*/ +{0x00,0x80,0x80,0x80,0x80,0xF8,0xF8,0x80,0x80,0x80,0x80,0x00,0x00,0x01,0x01,0x01,0x01,0x1F,0x1F,0x01,0x01,0x01,0x01,0x00},/*"+",10*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x38,0x08,0x00,0x00,0x00,0x00,0x00},/*",",11*/ +{0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00},/*"-",12*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*".",13*/ +{0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x78,0x1E,0x06,0x00,0x00,0x00,0x00,0x60,0x78,0x1E,0x07,0x01,0x00,0x00,0x00,0x00,0x00},/*"/",14*/ +{0x00,0x00,0xF0,0xF8,0x1C,0x0C,0x1C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1C,0x0F,0x07,0x00,0x00,0x00},/*"0",15*/ +{0x00,0x00,0x18,0x18,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"1",16*/ +{0x00,0x00,0x30,0x38,0x0C,0x0C,0x8C,0xF8,0x70,0x00,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x19,0x18,0x18,0x00,0x00,0x00},/*"2",17*/ +{0x00,0x00,0x18,0x1C,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x19,0x0F,0x07,0x00,0x00,0x00},/*"3",18*/ +{0x00,0x00,0xC0,0xE0,0x78,0x1C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x1B,0x1B,0x1F,0x1F,0x1B,0x00,0x00,0x00},/*"4",19*/ +{0x00,0x00,0xFC,0xFC,0xCC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x0C,0x1C,0x18,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"5",20*/ +{0x00,0x00,0xE0,0xF0,0xB8,0xDC,0xCC,0xCC,0x8C,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x19,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"6",21*/ +{0x00,0x00,0x1C,0x1C,0x0C,0x0C,0xCC,0xFC,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1F,0x03,0x00,0x00,0x00,0x00},/*"7",22*/ +{0x00,0x00,0x38,0xFC,0xCC,0xCC,0xCC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00},/*"8",23*/ +{0x00,0x00,0xF8,0xFC,0x8C,0x8C,0xCC,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x19,0x1D,0x0E,0x07,0x03,0x00,0x00,0x00},/*"9",24*/ +{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00},/*":",25*/ +{0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x18,0x08,0x00,0x00,0x00,0x00,0x00},/*";",26*/ +{0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x60,0x30,0x30,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x06,0x0C,0x0C,0x18,0x18,0x00,0x00},/*"<",27*/ +{0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00},/*"=",28*/ +{0x00,0x30,0x30,0x60,0x60,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x0C,0x0C,0x06,0x03,0x03,0x01,0x01,0x00,0x00},/*">",29*/ +{0x00,0x00,0x70,0x78,0x18,0x18,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x1B,0x01,0x01,0x00,0x00,0x00,0x00},/*"?",30*/ +{0x00,0x00,0xF0,0x08,0xC4,0x24,0x24,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x21,0x22,0x22,0x13,0x00,0x00,0x00,0x00},/*"@",31*/ +{0x00,0x00,0x18,0x98,0xF8,0x38,0x38,0xF0,0x80,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x1B,0x03,0x03,0x1B,0x1F,0x1C,0x18,0x00},/*"A",32*/ +{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x19,0x1F,0x0E,0x00,0x00},/*"B",33*/ +{0x00,0xE0,0xF0,0x38,0x18,0x18,0x18,0x10,0x78,0x78,0x00,0x00,0x00,0x07,0x0F,0x0C,0x18,0x18,0x18,0x18,0x0C,0x0C,0x00,0x00},/*"C",34*/ +{0x00,0x18,0xF8,0xF8,0x18,0x18,0x18,0x38,0xF0,0xE0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"D",35*/ +{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x18,0x1E,0x1E,0x00,0x00},/*"E",36*/ +{0x00,0x18,0xF8,0xF8,0x98,0xD8,0xD8,0x18,0x78,0x78,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x1B,0x00,0x00,0x00,0x00,0x00},/*"F",37*/ +{0x00,0xE0,0xF0,0x38,0x18,0x18,0x10,0x38,0x38,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x1B,0x1B,0x1F,0x0F,0x03,0x00,0x00},/*"G",38*/ +{0x00,0x18,0xF8,0xF8,0x98,0x80,0x98,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x19,0x1F,0x1F,0x18,0x00,0x00},/*"H",39*/ +{0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"I",40*/ +{0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x0F,0x0F,0x18,0x18,0x18,0x0F,0x0F,0x00,0x00,0x00},/*"J",41*/ +{0x00,0x18,0xF8,0xF8,0x98,0xC0,0x78,0x38,0x18,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x01,0x07,0x1E,0x18,0x18,0x00,0x00},/*"K",42*/ +{0x00,0x18,0x18,0xF8,0xF8,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x1F,0x1F,0x00,0x00},/*"L",43*/ +{0x18,0xF8,0xF8,0x38,0xE0,0x00,0xE0,0x38,0xF8,0xF8,0x18,0x00,0x18,0x1F,0x1F,0x18,0x19,0x03,0x19,0x18,0x1F,0x1F,0x18,0x00},/*"M",44*/ +{0x00,0x18,0xF8,0xF8,0xF8,0xE0,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x03,0x1F,0x1F,0x1F,0x00,0x00,0x00},/*"N",45*/ +{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0x0C,0x18,0x18,0x18,0x0C,0x0F,0x03,0x00,0x00},/*"O",46*/ +{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0xF0,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x19,0x19,0x01,0x00,0x00,0x00,0x00},/*"P",47*/ +{0x00,0xC0,0xF0,0x30,0x18,0x18,0x18,0x30,0xF0,0xC0,0x00,0x00,0x00,0x03,0x0F,0xCC,0xF8,0x78,0x78,0xCC,0xEF,0x63,0x00,0x00},/*"Q",48*/ +{0x00,0x18,0xF8,0xF8,0x98,0x98,0x98,0xF8,0x70,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x19,0x1B,0x07,0x0E,0x1C,0x18,0x00,0x00},/*"R",49*/ +{0x00,0x00,0x70,0xF8,0x98,0x98,0x90,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x09,0x19,0x19,0x1F,0x0E,0x00,0x00,0x00},/*"S",50*/ +{0x00,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"T",51*/ +{0x00,0x18,0xF8,0xF8,0x18,0x00,0x18,0xF8,0xF8,0x18,0x00,0x00,0x00,0x00,0x07,0x0F,0x18,0x18,0x18,0x0F,0x07,0x00,0x00,0x00},/*"U",52*/ +{0x00,0x18,0x78,0xF8,0x98,0x00,0x98,0xF8,0x78,0x18,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0x18,0x1F,0x03,0x00,0x00,0x00,0x00},/*"V",53*/ +{0x18,0xF8,0xF8,0x18,0xD8,0xC0,0xD8,0x18,0xF8,0xF8,0x18,0x00,0x00,0x01,0x1F,0x1C,0x1F,0x01,0x1F,0x1C,0x1F,0x01,0x00,0x00},/*"W",54*/ +{0x00,0x18,0x38,0x78,0xD8,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x01,0x1B,0x1E,0x1C,0x18,0x00,0x00},/*"X",55*/ +{0x00,0x18,0x38,0x78,0xD8,0x80,0x80,0xD8,0x78,0x38,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x00,0x00,0x00},/*"Y",56*/ +{0x00,0x00,0x78,0x78,0x18,0x98,0xD8,0x78,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x1E,0x1B,0x19,0x18,0x1E,0x1E,0x00,0x00,0x00},/*"Z",57*/ +{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x60,0x60,0x00,0x00,0x00},/*"[",58*/ +{0x00,0x00,0x06,0x1E,0x78,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x1E,0x78,0x60,0x00,0x00},/*"\",59*/ +{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"]",60*/ +{0x00,0x00,0x00,0x60,0x70,0x18,0x0C,0x18,0x70,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",61*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"_",62*/ +{0x00,0x00,0x00,0x00,0x02,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",63*/ +{0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x0E,0x1F,0x1B,0x1B,0x0B,0x1F,0x1F,0x18,0x00,0x00},/*"a",64*/ +{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x18,0x1F,0x1F,0x0C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"b",65*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0x60,0xC0,0xE0,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x18,0x18,0x0C,0x00,0x00},/*"c",66*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xCC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"d",67*/ +{0x00,0x00,0x80,0xC0,0x60,0x60,0x60,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x00,0x00},/*"e",68*/ +{0x00,0x00,0x60,0x60,0xF8,0xFC,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"f",69*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0xDC,0xD8,0xD8,0xCC,0xFF,0x7F,0x00,0x00},/*"g",70*/ +{0x00,0x0C,0xFC,0xFC,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"h",71*/ +{0x00,0x00,0x00,0x60,0x60,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"i",72*/ +{0x00,0x00,0x60,0x60,0x60,0x6C,0x6C,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00},/*"j",73*/ +{0x00,0x00,0x0C,0xFC,0xFC,0x80,0xE0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x1F,0x1F,0x03,0x06,0x1C,0x18,0x18,0x00,0x00},/*"k",74*/ +{0x00,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00},/*"l",75*/ +{0x00,0x60,0xE0,0xE0,0x60,0xE0,0xC0,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x00,0x1F,0x1F,0x00,0x1F,0x1F,0x18,0x00},/*"m",76*/ +{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00,0x00,0x18,0x1F,0x1F,0x18,0x00},/*"n",77*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"o",78*/ +{0x00,0x60,0xE0,0xE0,0xC0,0x60,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xCC,0xD8,0x18,0x1C,0x0F,0x07,0x00,0x00},/*"p",79*/ +{0x00,0x00,0x80,0xC0,0xE0,0x60,0x60,0xC0,0xE0,0xE0,0x60,0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0xD8,0xCC,0xFF,0xFF,0xC0,0x00},/*"q",80*/ +{0x00,0x00,0x60,0x60,0xE0,0xE0,0xC0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,0x00,0x00,0x00},/*"r",81*/ +{0x00,0x00,0xC0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x1D,0x1D,0x1B,0x1B,0x1B,0x1E,0x0E,0x00,0x00,0x00},/*"s",82*/ +{0x00,0x00,0x60,0x60,0xFC,0xFC,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x00,0x00},/*"t",83*/ +{0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x0C,0x1F,0x1F,0x18,0x00},/*"u",84*/ +{0x00,0x60,0xE0,0xE0,0x60,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x18,0x1F,0x07,0x00,0x00,0x00,0x00},/*"v",85*/ +{0x60,0xE0,0xE0,0x60,0x00,0x80,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x01,0x1F,0x1E,0x07,0x03,0x07,0x1E,0x1F,0x01,0x00,0x00},/*"w",86*/ +{0x00,0x00,0x60,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1F,0x03,0x03,0x1F,0x1C,0x18,0x00,0x00},/*"x",87*/ +{0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0x60,0xE0,0xE0,0x60,0x00,0x00,0xC0,0xC0,0xC1,0xE7,0xFE,0xDC,0xC7,0x03,0x00,0x00,0x00},/*"y",88*/ +{0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1B,0x1B,0x19,0x1C,0x1C,0x00,0x00},/*"z",89*/ +{0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x3F,0x7E,0x60,0x00,0x00,0x00,0x00},/*"{",90*/ +{0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00},/*"|",91*/ +{0x00,0x00,0x00,0x00,0x0C,0xFC,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x7E,0x3F,0x01,0x00,0x00,0x00,0x00},/*"}",92*/ +{0x00,0x00,0x80,0xC0,0xC0,0xC0,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x03,0x03,0x03,0x01,0x00,0x00},/*"~",93*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",94*/ +}; + +static const unsigned char blank_block PROGMEM = 0x00; diff --git a/keyboards/hotdox76v2/oled_font_lib/logo2.h b/keyboards/hotdox76v2/oled_font_lib/logo2.h new file mode 100644 index 0000000000..8a4a0e4622 --- /dev/null +++ b/keyboards/hotdox76v2/oled_font_lib/logo2.h @@ -0,0 +1,14 @@ +// Copyright 2021 JasonRen(biu) +// Copyright 2022 Drashna Jael're (@Drashna Jael're) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "progmem.h" + +static const unsigned char logo_mouse[] PROGMEM = { +    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAA,0xAA,0xA8,0xA8,0xAA,0xAA,0xA8,0xA0,0xA0,0x00,0x00,0x00,\ +    0x00,0x00,0x00,0x00,0x80,0xA0,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA8,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x80,0x00,0x00,0x00,0x00,\ +    0x00,0x00,0x00,0x2A,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x0A,0x02,0x00,0x00,0x00,0x00,\ +    0x00,0x00,0x00,0x00,0x00,0x02,0x2A,0x2A,0x2A,0x2A,0x0A,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0A,0x2A,0x2A,0x2A,0x2A,0x02,0x00,0x00,0x00,0x00,0x00,0x00 +}; diff --git a/keyboards/hotdox76v2/readme.md b/keyboards/hotdox76v2/readme.md new file mode 100644 index 0000000000..ef6b1c4ec1 --- /dev/null +++ b/keyboards/hotdox76v2/readme.md @@ -0,0 +1,25 @@ +# hotdox76 + +*An Ergodox style keyboard with per key RGB.* + +* Keyboard Maintainer: [Drashna Jael're](https://github.com/Drashna Jael're) +* Hardware Supported: Hotdox 76v2 +* Hardware Availability: https://github.com/Oh-My-Mechanical-Keyboard  + +Make example for this keyboard (after setting up your build environment): + +    make hotdox76v2:default + +Flashing example for this keyboard: + +    make hotdox76v2:default:flash + +See 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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/hotdox76v2/rules.mk b/keyboards/hotdox76v2/rules.mk new file mode 100644 index 0000000000..32afd21635 --- /dev/null +++ b/keyboards/hotdox76v2/rules.mk @@ -0,0 +1 @@ +RGB_MATRIX_DRIVER = WS2812 | 
