From 96a4eb7d385156c3c42c1db1b77dcc28d42b0bc1 Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Thu, 3 Jul 2025 12:03:33 -0700 Subject: [PATCH 01/10] adding gmmk3 files --- keyboards/gmmk/gmmk3/p100/ansi/.rules.mk | 15 + keyboards/gmmk/gmmk3/p100/ansi/ansi.c | 234 +++++++++++++ keyboards/gmmk/gmmk3/p100/ansi/keyboard.json | 160 +++++++++ .../gmmk3/p100/ansi/keymaps/default/keymap.c | 109 ++++++ .../gmmk3/p100/ansi/keymaps/default/readme.md | 1 + .../ansi/keymaps/viach/animations/direct.h | 17 + .../gmmk3/p100/ansi/keymaps/viach/config.h | 19 + .../ansi/keymaps/viach/gmmk3_p100_ansi.json | 270 ++++++++++++++ .../viach/gmmk3_p100_ansi_ch_updated.json | 331 ++++++++++++++++++ .../viach/gmmk3_p100_ansi_ch_updated_3.json | 331 ++++++++++++++++++ .../gmmk3/p100/ansi/keymaps/viach/keymap.c | 127 +++++++ .../ansi/keymaps/viach/rgb_matrix_user.inc | 1 + .../gmmk3/p100/ansi/keymaps/viach/rules.mk | 4 + keyboards/gmmk/gmmk3/p100/ansi/readme.md | 21 ++ keyboards/gmmk/gmmk3/p100/config.h | 41 +++ keyboards/gmmk/gmmk3/p100/halconf.h | 23 ++ keyboards/gmmk/gmmk3/p100/info.json | 35 ++ keyboards/gmmk/gmmk3/p100/info.old | 51 +++ keyboards/gmmk/gmmk3/p100/iso/info.json | 153 ++++++++ keyboards/gmmk/gmmk3/p100/iso/iso.c | 234 +++++++++++++ .../gmmk3/p100/iso/keymaps/default/keymap.c | 109 ++++++ .../gmmk3/p100/iso/keymaps/default/readme.md | 1 + keyboards/gmmk/gmmk3/p100/iso/readme.md | 21 ++ keyboards/gmmk/gmmk3/p100/iso/rules.mk | 15 + keyboards/gmmk/gmmk3/p100/mcuconf.h | 25 ++ 25 files changed, 2348 insertions(+) create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/.rules.mk create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/ansi.c create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keyboard.json create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/keymap.c create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/readme.md create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/animations/direct.h create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi.json create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated.json create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated_3.json create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rgb_matrix_user.inc create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rules.mk create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/readme.md create mode 100644 keyboards/gmmk/gmmk3/p100/config.h create mode 100644 keyboards/gmmk/gmmk3/p100/halconf.h create mode 100644 keyboards/gmmk/gmmk3/p100/info.json create mode 100644 keyboards/gmmk/gmmk3/p100/info.old create mode 100644 keyboards/gmmk/gmmk3/p100/iso/info.json create mode 100644 keyboards/gmmk/gmmk3/p100/iso/iso.c create mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/default/keymap.c create mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/default/readme.md create mode 100644 keyboards/gmmk/gmmk3/p100/iso/readme.md create mode 100644 keyboards/gmmk/gmmk3/p100/iso/rules.mk create mode 100644 keyboards/gmmk/gmmk3/p100/mcuconf.h diff --git a/keyboards/gmmk/gmmk3/p100/ansi/.rules.mk b/keyboards/gmmk/gmmk3/p100/ansi/.rules.mk new file mode 100644 index 00000000000..1d36b433555 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/.rules.mk @@ -0,0 +1,15 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +ENCODER_ENABLE = yes # Enable rotary encoder +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +AUDIO_ENABLE = no # Audio output +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes # Enable keyobard keys RGB +DIP_SWITCH_ENABLE = yes # Enable DIP Switch on the back diff --git a/keyboards/gmmk/gmmk3/p100/ansi/ansi.c b/keyboards/gmmk/gmmk3/p100/ansi/ansi.c new file mode 100644 index 00000000000..3ee4623b14b --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/ansi.c @@ -0,0 +1,234 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +/* Refer to AW20216S manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ +const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { + {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0 ESC + {0, SW2_CS1, SW2_CS2, SW2_CS3}, // 1 F1 + {0, SW3_CS1, SW3_CS2, SW3_CS3}, // 2 F2 + {0, SW4_CS1, SW4_CS2, SW4_CS3}, // 3 F3 + {0, SW5_CS1, SW5_CS2, SW5_CS3}, // 4 F4 + {0, SW6_CS1, SW6_CS2, SW6_CS3}, // 5 F5 + {0, SW7_CS1, SW7_CS2, SW7_CS3}, // 6 F6 + {0, SW8_CS1, SW8_CS2, SW8_CS3}, // 7 F7 + {0, SW9_CS1, SW9_CS2, SW9_CS3}, // 8 F8 + {0, SW10_CS1, SW10_CS2, SW10_CS3}, // 9 F9 + {0, SW11_CS1, SW11_CS2, SW11_CS3}, // 10 F10 + {0, SW12_CS1, SW12_CS2, SW12_CS3}, // 11 F11 + {1, SW1_CS1, SW1_CS2, SW1_CS3}, // 12 F12 + {1, SW2_CS4, SW2_CS5, SW2_CS6}, // 13 PrtSc + {1, SW3_CS1, SW3_CS2, SW3_CS3}, // 14 ScrLock + {1, SW4_CS1, SW4_CS2, SW4_CS3}, // 15 Pause + + {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 16 ~ + {0, SW2_CS4, SW2_CS5, SW2_CS6}, // 17 1 + {0, SW3_CS4, SW3_CS5, SW3_CS6}, // 18 2 + {0, SW4_CS4, SW4_CS5, SW4_CS6}, // 19 3 + {0, SW5_CS4, SW5_CS5, SW5_CS6}, // 20 4 + {0, SW6_CS4, SW6_CS5, SW6_CS6}, // 21 5 + {0, SW7_CS4, SW7_CS5, SW7_CS6}, // 22 6 + {0, SW8_CS4, SW8_CS5, SW8_CS6}, // 23 7 + {0, SW9_CS4, SW9_CS5, SW9_CS6}, // 24 8 + {0, SW10_CS4, SW10_CS5, SW10_CS6}, // 25 9 + {0, SW11_CS4, SW11_CS5, SW11_CS6}, // 26 0 + {0, SW12_CS4, SW12_CS5, SW12_CS6}, // 27 - + {1, SW5_CS1, SW5_CS2, SW5_CS3}, // 28 = + {1, SW7_CS1, SW7_CS2, SW7_CS3}, // 29 BS + {1, SW6_CS4, SW6_CS5, SW6_CS6}, // 30 INS + {1, SW5_CS4, SW5_CS5, SW5_CS6}, // 31 Home + {1, SW4_CS4, SW4_CS5, SW4_CS6}, // 32 PGUP + {1, SW1_CS7, SW1_CS8, SW1_CS9}, // 33 NumLock + {1, SW2_CS7, SW2_CS8, SW2_CS9}, // 34 Num/ + {1, SW3_CS7, SW3_CS8, SW3_CS9}, // 35 Num* + {1, SW4_CS7, SW4_CS8, SW4_CS9}, // 36 Num- + + {0, SW1_CS7, SW1_CS8, SW1_CS9}, // 37 TAB + {0, SW2_CS7, SW2_CS8, SW2_CS9}, // 38 Q + {0, SW3_CS7, SW3_CS8, SW3_CS9}, // 39 W + {0, SW4_CS7, SW4_CS8, SW4_CS9}, // 40 E + {0, SW5_CS7, SW5_CS8, SW5_CS9}, // 41 R + {0, SW6_CS7, SW6_CS8, SW6_CS9}, // 42 T + {0, SW7_CS7, SW7_CS8, SW7_CS9}, // 43 Y + {0, SW8_CS7, SW8_CS8, SW8_CS9}, // 44 U + {0, SW9_CS7, SW9_CS8, SW9_CS9}, // 45 I + {0, SW10_CS7, SW10_CS8, SW10_CS9}, // 46 O + {0, SW11_CS7, SW11_CS8, SW11_CS9}, // 47 P + {0, SW12_CS7, SW12_CS8, SW12_CS9}, // 48 [ + {1, SW8_CS1, SW8_CS2, SW8_CS3}, // 49 ] + {1, SW9_CS1, SW9_CS2, SW9_CS3}, // 50 (\) + {1, SW3_CS4, SW3_CS5, SW3_CS6}, // 51 Delete + {1, SW2_CS1, SW2_CS2, SW2_CS3}, // 52 End + {1, SW7_CS4, SW7_CS5, SW7_CS6}, // 53 PGDN + {1, SW5_CS7, SW5_CS8, SW5_CS9}, // 54 Num7 + {1, SW6_CS7, SW6_CS8, SW6_CS9}, // 55 Num8 + {1, SW7_CS7, SW7_CS8, SW7_CS9}, // 56 Num9 + {1, SW8_CS7, SW8_CS8, SW8_CS9}, // 57 Num+ + + {0, SW1_CS10, SW1_CS11, SW1_CS12}, // 58 CAPS + {0, SW2_CS10, SW2_CS11, SW2_CS12}, // 59 A + {0, SW3_CS10, SW3_CS11, SW3_CS12}, // 60 S + {0, SW4_CS10, SW4_CS11, SW4_CS12}, // 61 D + {0, SW5_CS10, SW5_CS11, SW5_CS12}, // 62 F + {0, SW6_CS10, SW6_CS11, SW6_CS12}, // 63 G + {0, SW7_CS10, SW7_CS11, SW7_CS12}, // 64 H + {0, SW8_CS10, SW8_CS11, SW8_CS12}, // 65 J + {0, SW9_CS10, SW9_CS11, SW9_CS12}, // 66 K + {0, SW10_CS10, SW10_CS11, SW10_CS12}, // 67 L + {0, SW11_CS10, SW11_CS11, SW11_CS12}, // 68 ; + {0, SW12_CS10, SW12_CS11, SW12_CS12}, // 69 ' + {1, SW11_CS1, SW11_CS2, SW11_CS3}, // 70 ENTER + {1, SW9_CS7, SW9_CS8, SW9_CS9}, // 71 Num4 + {1, SW10_CS7, SW10_CS8, SW10_CS9}, // 72 Num5 + {1, SW11_CS7, SW11_CS8, SW11_CS9}, // 73 Num6 + + {0, SW1_CS13, SW1_CS14, SW1_CS15}, // 74 L_SHIFT + {0, SW2_CS13, SW2_CS14, SW2_CS15}, // 75 Z + {0, SW3_CS13, SW3_CS14, SW3_CS15}, // 76 X + {0, SW4_CS13, SW4_CS14, SW4_CS15}, // 77 C + {0, SW5_CS13, SW5_CS14, SW5_CS15}, // 78 V + {0, SW6_CS13, SW6_CS14, SW6_CS15}, // 79 B + {0, SW7_CS13, SW7_CS14, SW7_CS15}, // 80 N + {0, SW8_CS13, SW8_CS14, SW8_CS15}, // 81 M + {0, SW9_CS13, SW9_CS14, SW9_CS15}, // 82 , + {0, SW10_CS13, SW10_CS14, SW10_CS15}, // 83 . + {0, SW11_CS13, SW11_CS14, SW11_CS15}, // 84 / + {1, SW8_CS4, SW8_CS5, SW8_CS6}, // 85 R_SHIFT + {1, SW9_CS4, SW9_CS5, SW9_CS6}, // 86 UP + {1, SW1_CS10, SW1_CS11, SW1_CS12}, // 87 Num1 + {1, SW2_CS10, SW2_CS11, SW2_CS12}, // 88 Num2 + {1, SW3_CS10, SW3_CS11, SW3_CS12}, // 89 Num3 + {1, SW4_CS10, SW4_CS11, SW4_CS12}, // 90 NumEnter + + {0, SW1_CS16, SW1_CS17, SW1_CS18}, // 91 L_CTRL + {0, SW2_CS16, SW2_CS17, SW2_CS18}, // 92 L_WIN + {0, SW3_CS16, SW3_CS17, SW3_CS18}, // 93 L_ALT + {0, SW6_CS16, SW6_CS17, SW6_CS18}, // 94 SPACE + {0, SW9_CS16, SW9_CS17, SW9_CS18}, // 95 R_ALT + {0, SW10_CS16, SW10_CS17, SW10_CS18}, // 96 FN + {0, SW11_CS16, SW11_CS17, SW11_CS18}, // 97 APP + {0, SW12_CS16, SW12_CS17, SW12_CS18}, // 98 R_CTRL + {1, SW10_CS4, SW10_CS5, SW10_CS6}, // 99 LEFT + {1, SW11_CS4, SW11_CS5, SW11_CS6}, // 100 DOWN + {1, SW5_CS10, SW5_CS11, SW5_CS12}, // 101 RIGHT + {1, SW6_CS10, SW6_CS11, SW6_CS12}, // 102 Num0 + {1, SW7_CS10, SW7_CS11, SW7_CS12}, // 103 Num. + + {1, SW1_CS13, SW1_CS14, SW1_CS15}, // 104 SLED1 + {1, SW2_CS13, SW2_CS14, SW2_CS15}, // 105 SLED2 + {1, SW3_CS13, SW3_CS14, SW3_CS15}, // 106 SLED3 + {1, SW4_CS13, SW4_CS14, SW4_CS15}, // 107 SLED4 + {1, SW5_CS13, SW5_CS14, SW5_CS15}, // 108 SLED5 + {1, SW6_CS13, SW6_CS14, SW6_CS15}, // 109 SLED6 + {1, SW7_CS13, SW7_CS14, SW7_CS15}, // 110 SLED7 + {1, SW8_CS13, SW8_CS14, SW8_CS15}, // 111 SLED8 + {1, SW9_CS13, SW9_CS14, SW9_CS15}, // 112 SLED9 + {1, SW10_CS13, SW10_CS14, SW10_CS15}, // 113 SLED10 + + {1, SW1_CS16, SW1_CS17, SW1_CS18}, // 114 SLED11 + {1, SW2_CS16, SW2_CS17, SW2_CS18}, // 115 SLED12 + {1, SW3_CS16, SW3_CS17, SW3_CS18}, // 116 SLED13 + {1, SW4_CS16, SW4_CS17, SW4_CS18}, // 117 SLED14 + {1, SW5_CS16, SW5_CS17, SW5_CS18}, // 118 SLED15 + {1, SW6_CS16, SW6_CS17, SW6_CS18}, // 119 SLED16 + {1, SW7_CS16, SW7_CS17, SW7_CS18}, // 120 SLED17 + {1, SW8_CS16, SW8_CS17, SW8_CS18}, // 121 SLED18 + {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 122 SLED19 + {1, SW10_CS16, SW10_CS17, SW10_CS18}, // 123 SLED20 + + {1, SW10_CS1, SW10_CS2, SW10_CS3}, // 124 LOGO +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + { 74, __, 31, 99, 98, 101, 91, 5 }, + { 38, 37, 59, 0, 75, 32, 16, 17}, + { 39, 58, 60, __, 76, 53, 1, 18}, + { 40, 3, 61, 4, 77, 86, 2, 19}, + { 41, 42, 62, 63, 78, 79, 21, 20}, + { 44, 43, 65, 64, 81, 80, 22, 23}, + { 45, 49, 66, 6, 82, 51, 28, 24}, + { 46, 7, 67, 100, 83, 30, 8, 25}, + { 47, 48, 68, 69, 97, 84, 27, 26}, + { 92, 85, 96, 93, 94, 95, 15, 13}, + { 14, 29, 50, 11, 70, 12, 9, 10}, + { 54, 71, 87, 57, 33, __, __, __}, + { 55, 72, 88, 102, 34, __, 52, __}, + { 56, 73, 89, 103, 35, 36, 90, __}, + }, + { + {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, + {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, + {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, {224,34}, + {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, + {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, {224,58}, + {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, + // Left and right side lights + {0, 15}, {0, 20}, {0, 25}, {0, 30}, {0, 35}, {0, 40}, {0, 45}, {0, 50}, {0, 55}, {0, 60}, + {224, 15}, {224, 20}, {224, 25}, {224, 30}, {224, 35}, {224, 40}, {224, 45}, {224, 50}, {224, 55}, {224, 60}, + // logo + {214, 0}, + }, + { + // Keyboard RGB Matrix + 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, 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, 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, + // Left and right side lights + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + // Logo + 8, + } +}; +#endif // RGB_MATRIX_ENABLE + +#ifdef EEPROM_ENABLE + +#include "spi_master.h" + +void spi_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + // Try releasing special pins for a short time + gpio_set_pin_input(SPI_SCK_PIN); + gpio_set_pin_input(SPI_MOSI_PIN); + gpio_set_pin_input(SPI_MISO_PIN); + + chThdSleepMilliseconds(10); + + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST | PAL_WB32_CURRENT_LEVEL3); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + } +} + +#endif diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keyboard.json b/keyboards/gmmk/gmmk3/p100/ansi/keyboard.json new file mode 100644 index 00000000000..3a4a558dc8d --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keyboard.json @@ -0,0 +1,160 @@ +{ + "keyboard_name": "GMMK3 100% ANSI", + "manufacturer": "Glorious", + "url": "http://www.pcgamingrace.com", + "maintainer": "Piotr Kleinschmidt", + "usb": { + "device_version": "0.0.1", + "pid": "0x320F", + "vid": "0x504B" + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "A4", "C1", "C2", "C3"], + "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "C14", "C15", "B8", "B9", "B10", "C8", "C9", "A15"] + }, + "diode_direction": "COL2ROW", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 4096 + } + }, + "encoder": { + "rotary": [ + {"pin_a": "A9", "pin_b": "A8"} + ] + }, + "qmk": { + "tap_keycode_delay": 10 + }, + "bootmagic": { + "matrix": [1, 3] + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [1, 3], "x": 0, "y": 0}, + {"label": "F1", "matrix": [2, 6], "x": 2, "y": 0}, + {"label": "F2", "matrix": [3, 6], "x": 3, "y": 0}, + {"label": "F3", "matrix": [3, 1], "x": 4, "y": 0}, + {"label": "F4", "matrix": [3, 3], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 7], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [6, 3], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [7, 1], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [7, 6], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [10, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [10, 7], "x": 12, "y": 0}, + {"label": "F11", "matrix": [10, 3], "x": 13, "y": 0}, + {"label": "F12", "matrix": [10, 5], "x": 14, "y": 0}, + {"label": "Prtsc", "matrix": [9, 7], "x": 15.25, "y": 0}, + {"label": "ScrLk", "matrix": [10, 0], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [9, 6], "x": 17.25, "y": 0}, + {"label": "Knob", "matrix": [11, 6], "x": 21.5, "y": 0}, + + {"label": "`", "matrix": [1, 6], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 7], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [2, 7], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [3, 7], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [4, 7], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [4, 6], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [5, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [5, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [6, 7], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [7, 7], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [8, 7], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [8, 6], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [6, 6], "x": 12, "y": 1.25}, + {"label": "BS", "matrix": [10, 1], "x": 13, "y": 1.25, "w": 2}, + {"label": "Ins", "matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [0, 2], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [1, 5], "x": 17.25, "y": 1.25}, + {"label": "NumLk","matrix": [11, 4], "x": 18.5, "y": 1.25}, + {"label": "Num/", "matrix": [12, 4], "x": 19.5, "y": 1.25}, + {"label": "Num*", "matrix": [13, 4], "x": 20.5, "y": 1.25}, + {"label": "Num-", "matrix": [13, 5], "x": 21.5, "y": 1.25}, + + {"label": "Tab", "matrix": [1, 1], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [1, 0], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 0], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [3, 0], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [4, 0], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [4, 1], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [5, 1], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [5, 0], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [6, 0], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [7, 0], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [6, 1], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [10, 2], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "Del", "matrix": [6, 5], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [12, 6], "x": 16.25, "y": 2.25}, + {"label": "PgD", "matrix": [2, 5], "x": 17.25, "y": 2.25}, + {"label": "Num7", "matrix": [11, 0], "x": 18.5, "y": 2.25}, + {"label": "Num8", "matrix": [12, 0], "x": 19.5, "y": 2.25}, + {"label": "Num9", "matrix": [13, 0], "x": 20.5, "y": 2.25}, + {"label": "Num+", "matrix": [11, 3], "x": 21.5, "y": 2.25, "h": 2}, + + {"label": "Caps", "matrix": [2, 1], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [1, 2], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 2], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [4, 2], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [4, 3], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [5, 3], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [5, 2], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [6, 2], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [7, 2], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [8, 2], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [8, 3], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [10, 4], "x": 12.75, "y": 3.25, "w": 2.25}, + {"label": "Num4", "matrix": [11, 1], "x": 18.5, "y": 3.25}, + {"label": "Num5", "matrix": [12, 1], "x": 19.5, "y": 3.25}, + {"label": "Num6", "matrix": [13, 1], "x": 20.5, "y": 3.25}, + + {"label": "LShft", "matrix": [0, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [1, 4], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [2, 4], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [5, 5], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [5, 4], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [7, 4], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [8, 5], "x": 11.25, "y": 4.25}, + {"label": "RShft", "matrix": [9, 1], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "Up", "matrix": [3, 5], "x": 16.25, "y": 4.25}, + {"label": "Num1", "matrix": [11, 2], "x": 18.5, "y": 4.25}, + {"label": "Num2", "matrix": [12, 2], "x": 19.5, "y": 4.25}, + {"label": "Num3", "matrix": [13, 2], "x": 20.5, "y": 4.25}, + {"label": "NumEnt", "matrix": [13, 6], "x": 21.5, "y": 4.25, "h": 2}, + + {"label": "LCtr", "matrix": [0, 6], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "LWin", "matrix": [9, 0], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "LAlt", "matrix": [9, 3], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "Space", "matrix": [9, 4], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "RAlt", "matrix": [9, 5], "x": 10, "y": 5.25, "w": 1.25}, + {"label": "Fn", "matrix": [9, 2], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label": "App", "matrix": [8, 4], "x": 12.5, "y": 5.25, "w": 1.25}, + {"label": "RCtr", "matrix": [0, 4], "x": 13.75, "y": 5.25, "w": 1.25}, + {"label": "Left", "matrix": [0, 3], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [7, 3], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [0, 5], "x": 17.25, "y": 5.25}, + {"label": "Num0", "matrix": [12, 3], "x": 18.5, "y": 5.25, "w": 2}, + {"label": "Num.", "matrix": [13, 3], "x": 20.5, "y": 5.25} + ] + } + } +} diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/keymap.c b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/keymap.c new file mode 100644 index 00000000000..b7bfb91d2ea --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +/* +* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┐ +* │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Mut│ +* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┘ +* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ +* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ +* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ +* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │ +* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │ +* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ +* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ +* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ +* │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ +* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ +*/ + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Switching between Windows and Mac OS Base layers is done via DIP switch +enum custom_layers { + WIN_BL, // Windows Base Layer + WIN_FL, // Windows Function Layer + MACOS_BL, // Mac OS Base Layer + MACOS_FL // Mac OS Function Layer +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows Base Layer (Default Layer) */ + [WIN_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + /* Windows Function Layer */ + [WIN_FL] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ), + + /* Mac OS Base Layer (Default Layer) */ + [MACOS_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MACOS_FL), KC_ROPT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + /* Mac OS Function Layer */ + [MACOS_FL] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ), +}; + +#ifdef DIP_SWITCH_ENABLE + +bool dip_switch_update_user(uint8_t index, bool active) { + + if (index == 0) { + if (active){ + layer_off(MACOS_BL); + layer_on(WIN_BL); + } else { + layer_off(WIN_BL); + layer_on(MACOS_BL); + } + } + + return true; +} + +#endif \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/readme.md b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/readme.md new file mode 100644 index 00000000000..7c67f3bcd0f --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/readme.md @@ -0,0 +1 @@ +# GMMK3 100% ANSI Layout diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/animations/direct.h b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/animations/direct.h new file mode 100644 index 00000000000..011334dbbe5 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/animations/direct.h @@ -0,0 +1,17 @@ +RGB_MATRIX_EFFECT(DIRECT) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS +extern uint8_t color_buffer[RGB_MATRIX_LED_COUNT * 2]; +extern uint8_t brightness_buffer[RGB_MATRIX_LED_COUNT]; + +static bool DIRECT(effect_params_t* params) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + for (uint8_t i = led_min; i < led_max; i++) { + RGB rgb = hsv_to_rgb((HSV){color_buffer[i * 2], color_buffer[i * 2 + 1], scale8(rgb_matrix_config.hsv.v, brightness_buffer[i])}); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + + return led_max < RGB_MATRIX_LED_COUNT; +} +#endif diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h new file mode 100644 index 00000000000..21e844b4559 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h @@ -0,0 +1,19 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi.json b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi.json new file mode 100644 index 00000000000..3c38b9dc9d8 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi.json @@ -0,0 +1,270 @@ +{ + "name": "GMMK3 100% ANSI", + "vendorId": "0x504B", + "productId": "0x320F", + "matrix": { + "rows": 14, + "cols": 8 + }, + "keycodes": [ + "qmk_lighting" + ], + "menus": [ + "qmk_rgb_matrix" + ], + "layouts": { + "keymap": [ + [ + { + "c": "#777777" + }, + "1,3", + { + "x": 1.0, + "c": "#cccccc" + }, + "2,6", + "3,6", + "3,1", + "3,3", + { + "x": 0.5, + "c": "#777777" + }, + "0,7", + "6,3", + "7,1", + "7,6", + { + "x": 0.5, + "c": "#cccccc" + }, + "10,6", + "10,7", + "10,3", + "10,5", + { + "x": 0.25, + "c": "#777777" + }, + "9,7", + "10,0", + "9,6", + { + "x": 3.25 + }, + "11,6\n\n\n\n\n\n\n\n\ne0" + ], + [ + { + "y": 0.25, + "c": "#cccccc" + }, + "1,6", + "1,7", + "2,7", + "3,7", + "4,7", + "4,6", + "5,6", + "5,7", + "6,7", + "7,7", + "8,7", + "8,6", + "6,6", + { + "c": "#aaaaaa", + "w": 2 + }, + "10,1", + { + "x": 0.25, + "c": "#cccccc" + }, + "7,5", + "0,2", + "1,5", + { + "x": 0.25 + }, + "11,4", + "12,4", + "13,4", + "13,5" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "1,1", + { + "c": "#cccccc" + }, + "1,0", + "2,0", + "3,0", + "4,0", + "4,1", + "5,1", + "5,0", + "6,0", + "7,0", + "8,0", + "8,1", + "6,1", + { + "w": 1.5 + }, + "10,2", + { + "x": 0.25 + }, + "6,5", + "12,6", + "2,5", + { + "x": 0.25 + }, + "11,0", + "12,0", + "13,0", + { + "h": 2 + }, + "11,3" + ], + [ + { + "c": "#aaaaaa", + "w": 1.75 + }, + "2,1", + { + "c": "#cccccc" + }, + "1,2", + "2,2", + "3,2", + "4,2", + "4,3", + "5,3", + "5,2", + "6,2", + "7,2", + "8,2", + "8,3", + { + "c": "#777777", + "w": 2.25 + }, + "10,4", + { + "x": 3.5, + "c": "#cccccc" + }, + "11,1", + "12,1", + "13,1" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "0,0", + { + "c": "#cccccc" + }, + "1,4", + "2,4", + "3,4", + "4,4", + "4,5", + "5,5", + "5,4", + "6,4", + "7,4", + "8,5", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "9,1", + { + "x": 1.25, + "c": "#777777" + }, + "3,5", + { + "x": 1.25, + "c": "#cccccc" + }, + "11,2", + "12,2", + "13,2", + { + "h": 2 + }, + "13,6" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,6", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,0", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,3", + { + "c": "#cccccc", + "w": 6.25 + }, + "9,4", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,5", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,2", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "8,4", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,4", + { + "x": 0.25, + "c": "#777777" + }, + "0,3", + "7,3", + "0,5", + { + "x": 0.25, + "c": "#cccccc", + "w": 2 + }, + "12,3", + "13,3" + ] + ] + } + } \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated.json b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated.json new file mode 100644 index 00000000000..ac875f14ed8 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated.json @@ -0,0 +1,331 @@ +{ + "name": "GMMK3 100% ANSI", + "vendorId": "0x504B", + "productId": "0x320F", + "keycodes": ["qmk_lighting"], + "menus": [ + { + "label": "Lighting", + "content": [ + { + "label": "Backlight", + "content": [ + { + "label": "Brightness", + "type": "range", + "options": [0, 255], + "content": ["id_qmk_rgb_matrix_brightness", 3, 1] + }, + { + "label": "Effect", + "type": "dropdown", + "content": ["id_qmk_rgb_matrix_effect", 3, 2], + "options": [ + ["None", 0], + ["Solid Color", 1], + ["Breathing", 2], + ["Band Spiral Val", 3], + ["Cycle All", 4], + ["Cycle Left Right", 5], + ["Cycle Up Down", 6], + ["Rainbow Moving Chevron", 7], + ["Cycle Out In", 8], + ["Cycle Out In Dual", 9], + ["Cycle Pinwheel", 10], + ["Cycle Spiral", 11], + ["Dual Beacon", 12], + ["Rainbow Beacon", 13], + ["Jellybean Raindrops", 14], + ["Pixel Rain", 15], + ["Typing Heatmap", 16], + ["Digital Rain", 17], + ["Reactive Simple", 18], + ["Reactive Multiwide", 19], + ["Reactive Multinexus", 20], + ["Splash", 21], + ["Solid Splash", 22], + ["Direct", 23] + ] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} > 1 && {id_qmk_rgb_matrix_effect} != 23", + "label": "Effect Speed", + "type": "range", + "options": [0, 255], + "content": ["id_qmk_rgb_matrix_effect_speed", 3, 3] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} != 0 && {id_qmk_rgb_matrix_effect} != 23 && ( {id_qmk_rgb_matrix_effect} < 4 || {id_qmk_rgb_matrix_effect} == 18 || ({id_qmk_rgb_matrix_effect} > 17 && {id_qmk_rgb_matrix_effect} != 21) ) ", + "label": "Color", + "type": "color", + "content": ["id_qmk_rgb_matrix_color", 3, 4] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} == 23", + "label": "Color Palette", + "type": "color-palette", + "content": ["id_qmk_rgb_matrix_color", 3, 4] + } + ] + } + ] + } + ], + "matrix": {"rows": 8, "cols": 14}, + "layouts": { + "keymap": + [ + [ + { + "c": "#777777" + }, + "1,3\nl0", + { + "x": 1.0, + "c": "#cccccc" + }, + "2,6\nl1", + "3,6\nl2", + "3,1\nl3", + "3,3\nl4", + { + "x": 0.5, + "c": "#777777" + }, + "0,7\nl5", + "6,3\nl6", + "7,1\nl7", + "7,6\nl8", + { + "x": 0.5, + "c": "#cccccc" + }, + "10,6\nl9", + "10,7\nl10", + "10,3\nl11", + "10,5\nl12", + { + "x": 0.25, + "c": "#777777" + }, + "9,7\nl13", + "10,0\nl14", + "9,6\nl15", + { + "x": 3.25 + }, + "11,6\n\n\n\n\n\n\n\n\ne0" + ], + [ + { + "y": 0.25, + "c": "#cccccc" + }, + "1,6\nl16", + "1,7\nl17", + "2,7\nl18", + "3,7\nl19", + "4,7\nl20", + "4,6\nl21", + "5,6\nl22", + "5,7\nl23", + "6,7\nl24", + "7,7\nl25", + "8,7\nl26", + "8,6\nl27", + "6,6\nl28", + { + "c": "#aaaaaa", + "w": 2 + }, + "10,1\nl29", + { + "x": 0.25, + "c": "#cccccc" + }, + "7,5\nl30", + "0,2\nl31", + "1,5\nl32", + { + "x": 0.25 + }, + "11,4\nl33", + "12,4\nl34", + "13,4\nl35", + "13,5\nl36" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "1,1\nl37", + { + "c": "#cccccc" + }, + "1,0\nl38", + "2,0\nl39", + "3,0\nl40", + "4,0\nl41", + "4,1\nl42", + "5,1\nl43", + "5,0\nl44", + "6,0\nl45", + "7,0\nl46", + "8,0\nl47", + "8,1\nl48", + "6,1\nl49", + { + "w": 1.5 + }, + "10,2\nl50", + { + "x": 0.25 + }, + "6,5\nl51", + "12,6\nl52", + "2,5\nl53", + { + "x": 0.25 + }, + "11,0\nl54", + "12,0\nl55", + "13,0\nl56", + { + "h": 2 + }, + "11,3\nl57" + ], + [ + { + "c": "#aaaaaa", + "w": 1.75 + }, + "2,1\nl58", + { + "c": "#cccccc" + }, + "1,2\nl59", + "2,2\nl60", + "3,2\nl61", + "4,2\nl62", + "4,3\nl63", + "5,3\nl64", + "5,2\nl65", + "6,2\nl66", + "7,2\nl67", + "8,2\nl68", + "8,3\nl69", + { + "c": "#777777", + "w": 2.25 + }, + "10,4\nl70", + { + "x": 3.5, + "c": "#cccccc" + }, + "11,1\nl71", + "12,1\nl72", + "13,1\nl73" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "0,0\nl74", + { + "c": "#cccccc" + }, + "1,4\nl75", + "2,4\nl76", + "3,4\nl77", + "4,4\nl78", + "4,5\nl79", + "5,5\nl80", + "5,4\nl81", + "6,4\nl82", + "7,4\nl83", + "8,5\nl84", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "9,1\nl85", + { + "x": 1.25, + "c": "#777777" + }, + "3,5\nl86", + { + "x": 1.25, + "c": "#cccccc" + }, + "11,2\nl87", + "12,2\nl88", + "13,2\nl89", + { + "h": 2 + }, + "13,6\nl90" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,6\nl91", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,0\nl92", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,3\nl93", + { + "c": "#cccccc", + "w": 6.25 + }, + "9,4\nl94", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,5\nl95", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,2\nl96", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "8,4\nl97", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,4\nl98", + { + "x": 0.25, + "c": "#777777" + }, + "0,3\nl99", + "7,3\nl100", + "0,5\nl101", + { + "x": 0.25, + "c": "#cccccc", + "w": 2 + }, + "12,3\nl102", + "13,3\nl103" + ] + ] + } +} diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated_3.json b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated_3.json new file mode 100644 index 00000000000..cbf7356b610 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated_3.json @@ -0,0 +1,331 @@ +{ + "name": "GMMK3 100% ANSI", + "vendorId": "0x504B", + "productId": "0x320F", + "keycodes": ["qmk_lighting"], + "menus": [ + { + "label": "Lighting", + "content": [ + { + "label": "Backlight", + "content": [ + { + "label": "Brightness", + "type": "range", + "options": [0, 255], + "content": ["id_qmk_rgb_matrix_brightness", 3, 1] + }, + { + "label": "Effect", + "type": "dropdown", + "content": ["id_qmk_rgb_matrix_effect", 3, 2], + "options": [ + ["None", 0], + ["Solid Color", 1], + ["Breathing", 2], + ["Band Spiral Val", 3], + ["Cycle All", 4], + ["Cycle Left Right", 5], + ["Cycle Up Down", 6], + ["Rainbow Moving Chevron", 7], + ["Cycle Out In", 8], + ["Cycle Out In Dual", 9], + ["Cycle Pinwheel", 10], + ["Cycle Spiral", 11], + ["Dual Beacon", 12], + ["Rainbow Beacon", 13], + ["Jellybean Raindrops", 14], + ["Pixel Rain", 15], + ["Typing Heatmap", 16], + ["Digital Rain", 17], + ["Reactive Simple", 18], + ["Reactive Multiwide", 19], + ["Reactive Multinexus", 20], + ["Splash", 21], + ["Solid Splash", 22], + ["Direct", 23] + ] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} > 1 && {id_qmk_rgb_matrix_effect} != 23", + "label": "Effect Speed", + "type": "range", + "options": [0, 255], + "content": ["id_qmk_rgb_matrix_effect_speed", 3, 3] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} != 0 && {id_qmk_rgb_matrix_effect} != 23 && ( {id_qmk_rgb_matrix_effect} < 4 || {id_qmk_rgb_matrix_effect} == 18 || ({id_qmk_rgb_matrix_effect} > 17 && {id_qmk_rgb_matrix_effect} != 21) ) ", + "label": "Color", + "type": "color", + "content": ["id_qmk_rgb_matrix_color", 3, 4] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} == 23", + "label": "Color Palette", + "type": "color-palette", + "content": ["id_qmk_rgb_matrix_color", 3, 4] + } + ] + } + ] + } + ], + "matrix": {"rows": 14, "cols": 8}, + "layouts": { + "keymap": + [ + [ + { + "c": "#777777" + }, + "1,3\nl0", + { + "x": 1.0, + "c": "#cccccc" + }, + "2,6\nl1", + "3,6\nl2", + "3,1\nl3", + "3,3\nl4", + { + "x": 0.5, + "c": "#777777" + }, + "0,7\nl5", + "6,3\nl6", + "7,1\nl7", + "7,6\nl8", + { + "x": 0.5, + "c": "#cccccc" + }, + "10,6\nl9", + "10,7\nl10", + "10,3\nl11", + "10,5\nl12", + { + "x": 0.25, + "c": "#777777" + }, + "9,7\nl13", + "10,0\nl14", + "9,6\nl15", + { + "x": 3.25 + }, + "11,6\n\n\n\n\n\n\n\n\ne0" + ], + [ + { + "y": 0.25, + "c": "#cccccc" + }, + "1,6\nl16", + "1,7\nl17", + "2,7\nl18", + "3,7\nl19", + "4,7\nl20", + "4,6\nl21", + "5,6\nl22", + "5,7\nl23", + "6,7\nl24", + "7,7\nl25", + "8,7\nl26", + "8,6\nl27", + "6,6\nl28", + { + "c": "#aaaaaa", + "w": 2 + }, + "10,1\nl29", + { + "x": 0.25, + "c": "#cccccc" + }, + "7,5\nl30", + "0,2\nl31", + "1,5\nl32", + { + "x": 0.25 + }, + "11,4\nl33", + "12,4\nl34", + "13,4\nl35", + "13,5\nl36" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "1,1\nl37", + { + "c": "#cccccc" + }, + "1,0\nl38", + "2,0\nl39", + "3,0\nl40", + "4,0\nl41", + "4,1\nl42", + "5,1\nl43", + "5,0\nl44", + "6,0\nl45", + "7,0\nl46", + "8,0\nl47", + "8,1\nl48", + "6,1\nl49", + { + "w": 1.5 + }, + "10,2\nl50", + { + "x": 0.25 + }, + "6,5\nl51", + "12,6\nl52", + "2,5\nl53", + { + "x": 0.25 + }, + "11,0\nl54", + "12,0\nl55", + "13,0\nl56", + { + "h": 2 + }, + "11,3\nl57" + ], + [ + { + "c": "#aaaaaa", + "w": 1.75 + }, + "2,1\nl58", + { + "c": "#cccccc" + }, + "1,2\nl59", + "2,2\nl60", + "3,2\nl61", + "4,2\nl62", + "4,3\nl63", + "5,3\nl64", + "5,2\nl65", + "6,2\nl66", + "7,2\nl67", + "8,2\nl68", + "8,3\nl69", + { + "c": "#777777", + "w": 2.25 + }, + "10,4\nl70", + { + "x": 3.5, + "c": "#cccccc" + }, + "11,1\nl71", + "12,1\nl72", + "13,1\nl73" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "0,0\nl74", + { + "c": "#cccccc" + }, + "1,4\nl75", + "2,4\nl76", + "3,4\nl77", + "4,4\nl78", + "4,5\nl79", + "5,5\nl80", + "5,4\nl81", + "6,4\nl82", + "7,4\nl83", + "8,5\nl84", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "9,1\nl85", + { + "x": 1.25, + "c": "#777777" + }, + "3,5\nl86", + { + "x": 1.25, + "c": "#cccccc" + }, + "11,2\nl87", + "12,2\nl88", + "13,2\nl89", + { + "h": 2 + }, + "13,6\nl90" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,6\nl91", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,0\nl92", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,3\nl93", + { + "c": "#cccccc", + "w": 6.25 + }, + "9,4\nl94", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,5\nl95", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,2\nl96", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "8,4\nl97", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,4\nl98", + { + "x": 0.25, + "c": "#777777" + }, + "0,3\nl99", + "7,3\nl100", + "0,5\nl101", + { + "x": 0.25, + "c": "#cccccc", + "w": 2 + }, + "12,3\nl102", + "13,3\nl103" + ] + ] + } +} diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c new file mode 100644 index 00000000000..f3ccf666a18 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c @@ -0,0 +1,127 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +/* +* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┐ +* │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Mut│ +* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┘ +* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ +* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ +* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ +* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │ +* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │ +* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ +* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ +* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ +* │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ +* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ +*/ + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +enum custom_layers { + _BL, // Base Layer + _FL, // Function Layer + _CL // Custom Layer +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base Layer (Default Layer) */ + [_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + /* Function Layer */ + [_FL] = LAYOUT( + QK_BOOT, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ), + + /* Custom Layer */ + [_CL] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_CL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif // ENCODER_MAP_ENABLE + +uint8_t color_buffer[RGB_MATRIX_LED_COUNT * 2] = {0}; +uint8_t brightness_buffer[RGB_MATRIX_LED_COUNT] = {[0 ... RGB_MATRIX_LED_COUNT - 1] = 255}; + +#ifdef VIA_ENABLE +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + uint8_t channel_id = data[1]; + if (channel_id != id_custom_channel) return; + + uint8_t *command_id = &(data[0]); + uint8_t value_id = data[2]; + uint8_t led_index = data[3]; + uint8_t led_count = data[4]; + + switch (*command_id) { + case id_custom_set_value: + if (value_id == 1) { + memcpy(color_buffer + led_index * 2, data + 5, led_count * 2); + } else if (value_id == 2) { + memcpy(brightness_buffer + led_index, data + 5, led_count); + } + break; + + case id_custom_get_value: + if (value_id == 1) { + memcpy(data + 5, color_buffer + led_index * 2, led_count * 2); + } else if (value_id == 2) { + memcpy(data + 5, brightness_buffer + led_index, led_count); + } + break; + + case id_custom_save: + // optional: implement persistent save here + break; + + default: + *command_id = id_unhandled; + break; + } +} +#endif // VIA_ENABLE + diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rgb_matrix_user.inc b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rgb_matrix_user.inc new file mode 100644 index 00000000000..194f79c4313 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rgb_matrix_user.inc @@ -0,0 +1 @@ +#include "animations/direct.h" diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rules.mk b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rules.mk new file mode 100644 index 00000000000..2803f85fb4d --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rules.mk @@ -0,0 +1,4 @@ +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes +BOOTMAGIC_ENABLE = yes +RGB_MATRIX_CUSTOM_USER = yes diff --git a/keyboards/gmmk/gmmk3/p100/ansi/readme.md b/keyboards/gmmk/gmmk3/p100/ansi/readme.md new file mode 100644 index 00000000000..fb7d5b6004d --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/readme.md @@ -0,0 +1,21 @@ +# GMMK3 100% (ANSI) + +A keyboard made and sold by Glorious LLC. Equipped with the WestBerry Q95 microcontroller. + +* Keyboard Maintainer: [Glorious](TBD) +* Hardware Supported: GMMK3 +* Hardware Availability: [GloriousPCGaming.com](https://www.pcgamingrace.com) + +Make example for this keyboard (after setting up your build environment): + + make gmmk/gmmk3/p100/ansi:default + +Flashing example for this keyboard: + + make gmmk/gmmk3/p100/ansi: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 + +The user can enter bootloader mode for the keyboard by holding down `Esc` when the keyboard is unplugged and plugging in the keyboard while these key is held down. diff --git a/keyboards/gmmk/gmmk3/p100/config.h b/keyboards/gmmk/gmmk3/p100/config.h new file mode 100644 index 00000000000..e092f05f33d --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/config.h @@ -0,0 +1,41 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* External spi flash */ +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C4 + +#define USB_SUSPEND_WAKEUP_DELAY 1000 + +/* SPI Config for LED Driver */ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 + +#define AW20216S_CS_PIN_1 C5 +#define AW20216S_CS_PIN_2 B11 +#define AW20216S_EN_PIN C13 + +#define DRIVER_1_LED_TOTAL (67) +#define DRIVER_2_LED_TOTAL (59) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + +#define DIP_SWITCH_PINS { A13 } diff --git a/keyboards/gmmk/gmmk3/p100/halconf.h b/keyboards/gmmk/gmmk3/p100/halconf.h new file mode 100644 index 00000000000..560c0009283 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2024 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/gmmk/gmmk3/p100/info.json b/keyboards/gmmk/gmmk3/p100/info.json new file mode 100644 index 00000000000..e900cb27ee2 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/info.json @@ -0,0 +1,35 @@ +{ + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "aw20216s", + "sleep": true + } +} diff --git a/keyboards/gmmk/gmmk3/p100/info.old b/keyboards/gmmk/gmmk3/p100/info.old new file mode 100644 index 00000000000..91080575194 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/info.old @@ -0,0 +1,51 @@ +{ + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "aw20216s", + "sleep": true + } +} \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/iso/info.json b/keyboards/gmmk/gmmk3/p100/iso/info.json new file mode 100644 index 00000000000..a0e5fbde2d9 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/info.json @@ -0,0 +1,153 @@ +{ + "keyboard_name": "GMMK3 100% ISO", + "manufacturer": "Glorious", + "url": "http://www.pcgamingrace.com", + "maintainer": "Piotr Kleinschmidt", + "usb": { + "device_version": "0.0.1", + "pid": "0x320F", + "vid": "0x504B" + }, + "qmk": { + "tap_keycode_delay": 10 + }, + "bootmagic": { + "matrix": [1, 3] // Enter Bootloader mode via ESC + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "A4", "C1", "C2", "C3"], + "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "C14", "C15", "B8", "B9", "B10", "C8", "C9", "A15"] + }, + "diode_direction": "COL2ROW", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "spi_flash", + "backing_size": 4096 + } + }, + "encoder": { + "rotary": [ + {"pin_a": "A9", "pin_b": "A8"} + ] + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [1, 3], "x": 0, "y": 0}, + {"label": "F1", "matrix": [2, 6], "x": 2, "y": 0}, + {"label": "F2", "matrix": [3, 6], "x": 3, "y": 0}, + {"label": "F3", "matrix": [3, 1], "x": 4, "y": 0}, + {"label": "F4", "matrix": [3, 3], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 7], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [6, 3], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [7, 1], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [7, 6], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [10, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [10, 7], "x": 12, "y": 0}, + {"label": "F11", "matrix": [10, 3], "x": 13, "y": 0}, + {"label": "F12", "matrix": [10, 5], "x": 14, "y": 0}, + {"label": "Prtsc", "matrix": [9, 7], "x": 15.25, "y": 0}, + {"label": "ScrLk", "matrix": [10, 0], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [9, 6], "x": 17.25, "y": 0}, + {"label": "Knob", "matrix": [11, 6], "x": 21.5, "y": 0}, + + {"label": "`", "matrix": [1, 6], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 7], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [2, 7], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [3, 7], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [4, 7], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [4, 6], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [5, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [5, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [6, 7], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [7, 7], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [8, 7], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [8, 6], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [6, 6], "x": 12, "y": 1.25}, + {"label": "BS", "matrix": [10, 1], "x": 13, "y": 1.25, "w": 2}, + {"label": "Ins", "matrix": [7, 5], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [0, 2], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [1, 5], "x": 17.25, "y": 1.25}, + {"label": "NumLk","matrix": [11, 4], "x": 18.5, "y": 1.25}, + {"label": "Num/", "matrix": [12, 4], "x": 19.5, "y": 1.25}, + {"label": "Num*", "matrix": [13, 4], "x": 20.5, "y": 1.25}, + {"label": "Num-", "matrix": [13, 5], "x": 21.5, "y": 1.25}, + + {"label": "Tab", "matrix": [1, 1], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [1, 0], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 0], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [3, 0], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [4, 0], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [4, 1], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [5, 1], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [5, 0], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [6, 0], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [7, 0], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [8, 0], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [8, 1], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [6, 1], "x": 12.5, "y": 2.25}, + {"label": "Del", "matrix": [6, 5], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [12, 6], "x": 16.25, "y": 2.25}, + {"label": "PgD", "matrix": [2, 5], "x": 17.25, "y": 2.25}, + {"label": "Num7", "matrix": [11, 0], "x": 18.5, "y": 2.25}, + {"label": "Num8", "matrix": [12, 0], "x": 19.5, "y": 2.25}, + {"label": "Num9", "matrix": [13, 0], "x": 20.5, "y": 2.25}, + {"label": "Num+", "matrix": [11, 3], "x": 21.5, "y": 2.25, "h": 2}, + + {"label": "Caps", "matrix": [2, 1], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [1, 2], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 2], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [4, 2], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [4, 3], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [5, 3], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [5, 2], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [6, 2], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [7, 2], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [8, 2], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [8, 3], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [10, 2], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [10, 4], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"label": "Num4", "matrix": [11, 1], "x": 18.5, "y": 3.25}, + {"label": "Num5", "matrix": [12, 1], "x": 19.5, "y": 3.25}, + {"label": "Num6", "matrix": [13, 1], "x": 20.5, "y": 3.25}, + + {"label": "LShft", "matrix": [0, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [0, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [1, 4], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [2, 4], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [5, 5], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [5, 4], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [6, 4], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [7, 4], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [8, 5], "x": 11.25, "y": 4.25}, + {"label": "RShft", "matrix": [9, 1], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "Up", "matrix": [3, 5], "x": 16.25, "y": 4.25}, + {"label": "Num1", "matrix": [11, 2], "x": 18.5, "y": 4.25}, + {"label": "Num2", "matrix": [12, 2], "x": 19.5, "y": 4.25}, + {"label": "Num3", "matrix": [13, 2], "x": 20.5, "y": 4.25}, + {"label": "NumEnt", "matrix": [13, 6], "x": 21.5, "y": 4.25, "h": 2}, + + {"label": "LCtr", "matrix": [0, 6], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "LWin", "matrix": [9, 0], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "LAlt", "matrix": [9, 3], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "Space", "matrix": [9, 4], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "RAlt", "matrix": [9, 5], "x": 10, "y": 5.25, "w": 1.25}, + {"label": "Fn", "matrix": [9, 2], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label": "App", "matrix": [8, 4], "x": 12.5, "y": 5.25, "w": 1.25}, + {"label": "RCtr", "matrix": [0, 4], "x": 13.75, "y": 5.25, "w": 1.25}, + {"label": "Left", "matrix": [0, 3], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [7, 3], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [0, 5], "x": 17.25, "y": 5.25}, + {"label": "Num0", "matrix": [12, 3], "x": 18.5, "y": 5.25, "w": 2}, + {"label": "Num.", "matrix": [13, 3], "x": 20.5, "y": 5.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/iso/iso.c b/keyboards/gmmk/gmmk3/p100/iso/iso.c new file mode 100644 index 00000000000..748a9cb47b0 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/iso.c @@ -0,0 +1,234 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +#define __ NO_LED + +/* Refer to AW20216S manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ +const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { + {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0 ESC + {0, SW2_CS1, SW2_CS2, SW2_CS3}, // 1 F1 + {0, SW3_CS1, SW3_CS2, SW3_CS3}, // 2 F2 + {0, SW4_CS1, SW4_CS2, SW4_CS3}, // 3 F3 + {0, SW5_CS1, SW5_CS2, SW5_CS3}, // 4 F4 + {0, SW6_CS1, SW6_CS2, SW6_CS3}, // 5 F5 + {0, SW7_CS1, SW7_CS2, SW7_CS3}, // 6 F6 + {0, SW8_CS1, SW8_CS2, SW8_CS3}, // 7 F7 + {0, SW9_CS1, SW9_CS2, SW9_CS3}, // 8 F8 + {0, SW10_CS1, SW10_CS2, SW10_CS3}, // 9 F9 + {0, SW11_CS1, SW11_CS2, SW11_CS3}, // 10 F10 + {0, SW12_CS1, SW12_CS2, SW12_CS3}, // 11 F11 + {1, SW1_CS1, SW1_CS2, SW1_CS3}, // 12 F12 + {1, SW2_CS4, SW2_CS5, SW2_CS6}, // 13 PrtSc + {1, SW3_CS1, SW3_CS2, SW3_CS3}, // 14 ScrLock + {1, SW4_CS1, SW4_CS2, SW4_CS3}, // 15 Pause + + {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 16 ~ + {0, SW2_CS4, SW2_CS5, SW2_CS6}, // 17 1 + {0, SW3_CS4, SW3_CS5, SW3_CS6}, // 18 2 + {0, SW4_CS4, SW4_CS5, SW4_CS6}, // 19 3 + {0, SW5_CS4, SW5_CS5, SW5_CS6}, // 20 4 + {0, SW6_CS4, SW6_CS5, SW6_CS6}, // 21 5 + {0, SW7_CS4, SW7_CS5, SW7_CS6}, // 22 6 + {0, SW8_CS4, SW8_CS5, SW8_CS6}, // 23 7 + {0, SW9_CS4, SW9_CS5, SW9_CS6}, // 24 8 + {0, SW10_CS4, SW10_CS5, SW10_CS6}, // 25 9 + {0, SW11_CS4, SW11_CS5, SW11_CS6}, // 26 0 + {0, SW12_CS4, SW12_CS5, SW12_CS6}, // 27 - + {1, SW5_CS1, SW5_CS2, SW5_CS3}, // 28 = + {1, SW7_CS1, SW7_CS2, SW7_CS3}, // 29 BS + {1, SW6_CS4, SW6_CS5, SW6_CS6}, // 30 INS + {1, SW5_CS4, SW5_CS5, SW5_CS6}, // 31 Home + {1, SW4_CS4, SW4_CS5, SW4_CS6}, // 32 PGUP + {1, SW1_CS7, SW1_CS8, SW1_CS9}, // 33 NumLock + {1, SW2_CS7, SW2_CS8, SW2_CS9}, // 34 Num/ + {1, SW3_CS7, SW3_CS8, SW3_CS9}, // 35 Num* + {1, SW4_CS7, SW4_CS8, SW4_CS9}, // 36 Num- + + {0, SW1_CS7, SW1_CS8, SW1_CS9}, // 37 TAB + {0, SW2_CS7, SW2_CS8, SW2_CS9}, // 38 Q + {0, SW3_CS7, SW3_CS8, SW3_CS9}, // 39 W + {0, SW4_CS7, SW4_CS8, SW4_CS9}, // 40 E + {0, SW5_CS7, SW5_CS8, SW5_CS9}, // 41 R + {0, SW6_CS7, SW6_CS8, SW6_CS9}, // 42 T + {0, SW7_CS7, SW7_CS8, SW7_CS9}, // 43 Y + {0, SW8_CS7, SW8_CS8, SW8_CS9}, // 44 U + {0, SW9_CS7, SW9_CS8, SW9_CS9}, // 45 I + {0, SW10_CS7, SW10_CS8, SW10_CS9}, // 46 O + {0, SW11_CS7, SW11_CS8, SW11_CS9}, // 47 P + {0, SW12_CS7, SW12_CS8, SW12_CS9}, // 48 [ + {1, SW8_CS1, SW8_CS2, SW8_CS3}, // 49 ] + {1, SW9_CS1, SW9_CS2, SW9_CS3}, // 50 (#) + {1, SW3_CS4, SW3_CS5, SW3_CS6}, // 51 Delete + {1, SW2_CS1, SW2_CS2, SW2_CS3}, // 52 End + {1, SW7_CS4, SW7_CS5, SW7_CS6}, // 53 PGDN + {1, SW5_CS7, SW5_CS8, SW5_CS9}, // 54 Num7 + {1, SW6_CS7, SW6_CS8, SW6_CS9}, // 55 Num8 + {1, SW7_CS7, SW7_CS8, SW7_CS9}, // 56 Num9 + {1, SW8_CS7, SW8_CS8, SW8_CS9}, // 57 Num+ + + {0, SW1_CS10, SW1_CS11, SW1_CS12}, // 58 CAPS + {0, SW2_CS10, SW2_CS11, SW2_CS12}, // 59 A + {0, SW3_CS10, SW3_CS11, SW3_CS12}, // 60 S + {0, SW4_CS10, SW4_CS11, SW4_CS12}, // 61 D + {0, SW5_CS10, SW5_CS11, SW5_CS12}, // 62 F + {0, SW6_CS10, SW6_CS11, SW6_CS12}, // 63 G + {0, SW7_CS10, SW7_CS11, SW7_CS12}, // 64 H + {0, SW8_CS10, SW8_CS11, SW8_CS12}, // 65 J + {0, SW9_CS10, SW9_CS11, SW9_CS12}, // 66 K + {0, SW10_CS10, SW10_CS11, SW10_CS12}, // 67 L + {0, SW11_CS10, SW11_CS11, SW11_CS12}, // 68 ; + {0, SW12_CS10, SW12_CS11, SW12_CS12}, // 69 ' + {1, SW11_CS1, SW11_CS2, SW11_CS3}, // 70 ENTER + {1, SW9_CS7, SW9_CS8, SW9_CS9}, // 71 Num4 + {1, SW10_CS7, SW10_CS8, SW10_CS9}, // 72 Num5 + {1, SW11_CS7, SW11_CS8, SW11_CS9}, // 73 Num6 + + {0, SW1_CS13, SW1_CS14, SW1_CS15}, // 74 L_SHIFT + {0, SW4_CS16, SW4_CS17, SW4_CS18}, // 75 (\) + {0, SW2_CS13, SW2_CS14, SW2_CS15}, // 76 Z + {0, SW3_CS13, SW3_CS14, SW3_CS15}, // 77 X + {0, SW4_CS13, SW4_CS14, SW4_CS15}, // 78 C + {0, SW5_CS13, SW5_CS14, SW5_CS15}, // 79 V + {0, SW6_CS13, SW6_CS14, SW6_CS15}, // 80 B + {0, SW7_CS13, SW7_CS14, SW7_CS15}, // 81 N + {0, SW8_CS13, SW8_CS14, SW8_CS15}, // 82 M + {0, SW9_CS13, SW9_CS14, SW9_CS15}, // 83 , + {0, SW10_CS13, SW10_CS14, SW10_CS15}, // 84 . + {0, SW11_CS13, SW11_CS14, SW11_CS15}, // 85 / + {1, SW8_CS4, SW8_CS5, SW8_CS6}, // 86 R_SHIFT + {1, SW9_CS4, SW9_CS5, SW9_CS6}, // 87 UP + {1, SW1_CS10, SW1_CS11, SW1_CS12}, // 88 Num1 + {1, SW2_CS10, SW2_CS11, SW2_CS12}, // 89 Num2 + {1, SW3_CS10, SW3_CS11, SW3_CS12}, // 90 Num3 + {1, SW4_CS10, SW4_CS11, SW4_CS12}, // 91 NumEnter + + {0, SW1_CS16, SW1_CS17, SW1_CS18}, // 92 L_CTRL + {0, SW2_CS16, SW2_CS17, SW2_CS18}, // 93 L_WIN + {0, SW3_CS16, SW3_CS17, SW3_CS18}, // 94 L_ALT + {0, SW6_CS16, SW6_CS17, SW6_CS18}, // 95 SPACE + {0, SW9_CS16, SW9_CS17, SW9_CS18}, // 96 R_ALT + {0, SW10_CS16, SW10_CS17, SW10_CS18}, // 97 FN + {0, SW11_CS16, SW11_CS17, SW11_CS18}, // 98 APP + {0, SW12_CS16, SW12_CS17, SW12_CS18}, // 99 R_CTRL + {1, SW10_CS4, SW10_CS5, SW10_CS6}, // 100 LEFT + {1, SW11_CS4, SW11_CS5, SW11_CS6}, // 101 DOWN + {1, SW5_CS10, SW5_CS11, SW5_CS12}, // 102 RIGHT + {1, SW6_CS10, SW6_CS11, SW6_CS12}, // 103 Num0 + {1, SW7_CS10, SW7_CS11, SW7_CS12}, // 104 Num. + + {1, SW1_CS13, SW1_CS14, SW1_CS15}, // 105 SLED1 + {1, SW2_CS13, SW2_CS14, SW2_CS15}, // 106 SLED2 + {1, SW3_CS13, SW3_CS14, SW3_CS15}, // 107 SLED3 + {1, SW4_CS13, SW4_CS14, SW4_CS15}, // 108 SLED4 + {1, SW5_CS13, SW5_CS14, SW5_CS15}, // 109 SLED5 + {1, SW6_CS13, SW6_CS14, SW6_CS15}, // 110 SLED6 + {1, SW7_CS13, SW7_CS14, SW7_CS15}, // 111 SLED7 + {1, SW8_CS13, SW8_CS14, SW8_CS15}, // 112 SLED8 + {1, SW9_CS13, SW9_CS14, SW9_CS15}, // 113 SLED9 + {1, SW10_CS13, SW10_CS14, SW10_CS15}, // 114 SLED10 + + {1, SW1_CS16, SW1_CS17, SW1_CS18}, // 115 SLED11 + {1, SW2_CS16, SW2_CS17, SW2_CS18}, // 116 SLED12 + {1, SW3_CS16, SW3_CS17, SW3_CS18}, // 117 SLED13 + {1, SW4_CS16, SW4_CS17, SW4_CS18}, // 118 SLED14 + {1, SW5_CS16, SW5_CS17, SW5_CS18}, // 119 SLED15 + {1, SW6_CS16, SW6_CS17, SW6_CS18}, // 120 SLED16 + {1, SW7_CS16, SW7_CS17, SW7_CS18}, // 121 SLED17 + {1, SW8_CS16, SW8_CS17, SW8_CS18}, // 122 SLED18 + {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 123 SLED19 + {1, SW10_CS16, SW10_CS17, SW10_CS18}, // 124 SLED20 + + {1, SW10_CS1, SW10_CS2, SW10_CS3}, // 125 LOGO +}; + +led_config_t g_led_config = { + { + { 74, 75, 31, 100, 99, 102, 92, 5}, + { 38, 37, 59, 0, 76, 32, 16, 17}, + { 39, 58, 60, __, 77, 53, 1, 18}, + { 40, 3, 61, 4, 78, 87, 2, 19}, + { 41, 42, 62, 63, 79, 80, 21, 20}, + { 44, 43, 65, 64, 82, 81, 22, 23}, + { 45, 49, 66, 6, 83, 51, 28, 24}, + { 46, 7, 67, 101, 84, 30, 8, 25}, + { 47, 48, 68, 69, 98, 85, 27, 26}, + { 93, 86, 97, 94, 95, 96, 15, 13}, + { 14, 29, 50, 11, 70, 12, 9, 10}, + { 54, 71, 88, 57, 33, __, __, __}, + { 55, 72, 89, 103, 34, __, 52, __}, + { 56, 73, 90, 104, 35, 36, 91, __}, + }, + { + {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, + {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, + {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, {224,34}, + {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, + {1,52}, {12,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, {224,58}, + {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, + // Lef and right side lights + {0, 15}, {0, 20}, {0, 25}, {0, 30}, {0, 35}, {0, 40}, {0, 45}, {0, 50}, {0, 55}, {0, 60}, + {224, 15}, {224, 20}, {224, 25}, {224, 30}, {224, 35}, {224, 40}, {224, 45}, {224, 50}, {224, 55}, {224, 60}, + // logo + {214, 0}, + }, + { + // Keyboard RGB Matrix + 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, 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, 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, + // Lef and right side lights + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + // Logo + 8, + } +}; +#endif // RGB_MATRIX_ENABLE + +#ifdef EEPROM_ENABLE + +#include "spi_master.h" + +void spi_init(void) { + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + // Try releasing special pins for a short time + setPinInput(SPI_SCK_PIN); + setPinInput(SPI_MOSI_PIN); + setPinInput(SPI_MISO_PIN); + + chThdSleepMilliseconds(10); + + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST | PAL_WB32_CURRENT_LEVEL3); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST); + } +} + +#endif \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/default/keymap.c b/keyboards/gmmk/gmmk3/p100/iso/keymaps/default/keymap.c new file mode 100644 index 00000000000..016f17b3213 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/default/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Mut│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ │ 4 │ 5 │ 6 │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ ├───┼───┼───┼───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ + * │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ + */ + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Switching between Windows and Mac OS Base layers is done via DIP switch +enum custom_layers { + WIN_BL, // Windows Base Layer + WIN_FL, // Windows Function Layer + MACOS_BL, // Mac OS Base Layer + MACOS_FL // Mac OS Function Layer +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows Base Layer (Default Layer) */ + [WIN_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + /* Windows Function Layer */ + [WIN_FL] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ), + + /* Mac OS Base Layer (Default Layer) */ + [MACOS_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MACOS_FL), KC_ROPT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + /* Mac OS Function Layer */ + [MACOS_FL] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ), +}; + +#ifdef DIP_SWITCH_ENABLE + +bool dip_switch_update_user(uint8_t index, bool active) { + + if (index == 0) { + if (active){ + layer_off(MACOS_BL); + layer_on(WIN_BL); + } else { + layer_off(WIN_BL); + layer_on(MACOS_BL); + } + } + + return true; +} + +#endif \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/default/readme.md b/keyboards/gmmk/gmmk3/p100/iso/keymaps/default/readme.md new file mode 100644 index 00000000000..1166c5452d8 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/default/readme.md @@ -0,0 +1 @@ +# GMMK3 100% ISO Layout diff --git a/keyboards/gmmk/gmmk3/p100/iso/readme.md b/keyboards/gmmk/gmmk3/p100/iso/readme.md new file mode 100644 index 00000000000..af35ffd80ad --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/readme.md @@ -0,0 +1,21 @@ +# GMMK3 100% (ISO) + +A keyboard made and sold by Glorious LLC. Equipped with the WestBerry Q95 microcontroller. + +* Keyboard Maintainer: [Glorious](TBD) +* Hardware Supported: GMMK3 +* Hardware Availability: [GloriousPCGaming.com](https://www.pcgamingrace.com) + +Make example for this keyboard (after setting up your build environment): + + make gmmk/gmmk3/p100/iso:default + +Flashing example for this keyboard: + + make gmmk/gmmk3/p100/iso: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 + +The user can enter bootloader mode for the keyboard by holding down `Esc` when the keyboard is unplugged and plugging in the keyboard while these key is held down. diff --git a/keyboards/gmmk/gmmk3/p100/iso/rules.mk b/keyboards/gmmk/gmmk3/p100/iso/rules.mk new file mode 100644 index 00000000000..1d36b433555 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/rules.mk @@ -0,0 +1,15 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +ENCODER_ENABLE = yes # Enable rotary encoder +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +AUDIO_ENABLE = no # Audio output +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes # Enable keyobard keys RGB +DIP_SWITCH_ENABLE = yes # Enable DIP Switch on the back diff --git a/keyboards/gmmk/gmmk3/p100/mcuconf.h b/keyboards/gmmk/gmmk3/p100/mcuconf.h new file mode 100644 index 00000000000..7263f2626df --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright (C) 2024 Westberry Technology (ChangZhou) Corp., Ltd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_SPI_USE_SPIM2 +#define WB32_SPI_USE_SPIM2 TRUE From 39e0281e00ef10e06f449852e0a87f1482b0c35f Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Thu, 3 Jul 2025 12:11:01 -0700 Subject: [PATCH 02/10] removing extra layout files --- ...i_ch_updated_3.json => design_layout.json} | 0 .../ansi/keymaps/viach/gmmk3_p100_ansi.json | 270 -------------- .../viach/gmmk3_p100_ansi_ch_updated.json | 331 ------------------ 3 files changed, 601 deletions(-) rename keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/{gmmk3_p100_ansi_ch_updated_3.json => design_layout.json} (100%) delete mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi.json delete mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated.json diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated_3.json b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json similarity index 100% rename from keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated_3.json rename to keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi.json b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi.json deleted file mode 100644 index 3c38b9dc9d8..00000000000 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi.json +++ /dev/null @@ -1,270 +0,0 @@ -{ - "name": "GMMK3 100% ANSI", - "vendorId": "0x504B", - "productId": "0x320F", - "matrix": { - "rows": 14, - "cols": 8 - }, - "keycodes": [ - "qmk_lighting" - ], - "menus": [ - "qmk_rgb_matrix" - ], - "layouts": { - "keymap": [ - [ - { - "c": "#777777" - }, - "1,3", - { - "x": 1.0, - "c": "#cccccc" - }, - "2,6", - "3,6", - "3,1", - "3,3", - { - "x": 0.5, - "c": "#777777" - }, - "0,7", - "6,3", - "7,1", - "7,6", - { - "x": 0.5, - "c": "#cccccc" - }, - "10,6", - "10,7", - "10,3", - "10,5", - { - "x": 0.25, - "c": "#777777" - }, - "9,7", - "10,0", - "9,6", - { - "x": 3.25 - }, - "11,6\n\n\n\n\n\n\n\n\ne0" - ], - [ - { - "y": 0.25, - "c": "#cccccc" - }, - "1,6", - "1,7", - "2,7", - "3,7", - "4,7", - "4,6", - "5,6", - "5,7", - "6,7", - "7,7", - "8,7", - "8,6", - "6,6", - { - "c": "#aaaaaa", - "w": 2 - }, - "10,1", - { - "x": 0.25, - "c": "#cccccc" - }, - "7,5", - "0,2", - "1,5", - { - "x": 0.25 - }, - "11,4", - "12,4", - "13,4", - "13,5" - ], - [ - { - "c": "#aaaaaa", - "w": 1.5 - }, - "1,1", - { - "c": "#cccccc" - }, - "1,0", - "2,0", - "3,0", - "4,0", - "4,1", - "5,1", - "5,0", - "6,0", - "7,0", - "8,0", - "8,1", - "6,1", - { - "w": 1.5 - }, - "10,2", - { - "x": 0.25 - }, - "6,5", - "12,6", - "2,5", - { - "x": 0.25 - }, - "11,0", - "12,0", - "13,0", - { - "h": 2 - }, - "11,3" - ], - [ - { - "c": "#aaaaaa", - "w": 1.75 - }, - "2,1", - { - "c": "#cccccc" - }, - "1,2", - "2,2", - "3,2", - "4,2", - "4,3", - "5,3", - "5,2", - "6,2", - "7,2", - "8,2", - "8,3", - { - "c": "#777777", - "w": 2.25 - }, - "10,4", - { - "x": 3.5, - "c": "#cccccc" - }, - "11,1", - "12,1", - "13,1" - ], - [ - { - "c": "#aaaaaa", - "w": 2.25 - }, - "0,0", - { - "c": "#cccccc" - }, - "1,4", - "2,4", - "3,4", - "4,4", - "4,5", - "5,5", - "5,4", - "6,4", - "7,4", - "8,5", - { - "c": "#aaaaaa", - "w": 2.75 - }, - "9,1", - { - "x": 1.25, - "c": "#777777" - }, - "3,5", - { - "x": 1.25, - "c": "#cccccc" - }, - "11,2", - "12,2", - "13,2", - { - "h": 2 - }, - "13,6" - ], - [ - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,6", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,0", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,3", - { - "c": "#cccccc", - "w": 6.25 - }, - "9,4", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,5", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,2", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "8,4", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,4", - { - "x": 0.25, - "c": "#777777" - }, - "0,3", - "7,3", - "0,5", - { - "x": 0.25, - "c": "#cccccc", - "w": 2 - }, - "12,3", - "13,3" - ] - ] - } - } \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated.json b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated.json deleted file mode 100644 index ac875f14ed8..00000000000 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/gmmk3_p100_ansi_ch_updated.json +++ /dev/null @@ -1,331 +0,0 @@ -{ - "name": "GMMK3 100% ANSI", - "vendorId": "0x504B", - "productId": "0x320F", - "keycodes": ["qmk_lighting"], - "menus": [ - { - "label": "Lighting", - "content": [ - { - "label": "Backlight", - "content": [ - { - "label": "Brightness", - "type": "range", - "options": [0, 255], - "content": ["id_qmk_rgb_matrix_brightness", 3, 1] - }, - { - "label": "Effect", - "type": "dropdown", - "content": ["id_qmk_rgb_matrix_effect", 3, 2], - "options": [ - ["None", 0], - ["Solid Color", 1], - ["Breathing", 2], - ["Band Spiral Val", 3], - ["Cycle All", 4], - ["Cycle Left Right", 5], - ["Cycle Up Down", 6], - ["Rainbow Moving Chevron", 7], - ["Cycle Out In", 8], - ["Cycle Out In Dual", 9], - ["Cycle Pinwheel", 10], - ["Cycle Spiral", 11], - ["Dual Beacon", 12], - ["Rainbow Beacon", 13], - ["Jellybean Raindrops", 14], - ["Pixel Rain", 15], - ["Typing Heatmap", 16], - ["Digital Rain", 17], - ["Reactive Simple", 18], - ["Reactive Multiwide", 19], - ["Reactive Multinexus", 20], - ["Splash", 21], - ["Solid Splash", 22], - ["Direct", 23] - ] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} > 1 && {id_qmk_rgb_matrix_effect} != 23", - "label": "Effect Speed", - "type": "range", - "options": [0, 255], - "content": ["id_qmk_rgb_matrix_effect_speed", 3, 3] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} != 0 && {id_qmk_rgb_matrix_effect} != 23 && ( {id_qmk_rgb_matrix_effect} < 4 || {id_qmk_rgb_matrix_effect} == 18 || ({id_qmk_rgb_matrix_effect} > 17 && {id_qmk_rgb_matrix_effect} != 21) ) ", - "label": "Color", - "type": "color", - "content": ["id_qmk_rgb_matrix_color", 3, 4] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} == 23", - "label": "Color Palette", - "type": "color-palette", - "content": ["id_qmk_rgb_matrix_color", 3, 4] - } - ] - } - ] - } - ], - "matrix": {"rows": 8, "cols": 14}, - "layouts": { - "keymap": - [ - [ - { - "c": "#777777" - }, - "1,3\nl0", - { - "x": 1.0, - "c": "#cccccc" - }, - "2,6\nl1", - "3,6\nl2", - "3,1\nl3", - "3,3\nl4", - { - "x": 0.5, - "c": "#777777" - }, - "0,7\nl5", - "6,3\nl6", - "7,1\nl7", - "7,6\nl8", - { - "x": 0.5, - "c": "#cccccc" - }, - "10,6\nl9", - "10,7\nl10", - "10,3\nl11", - "10,5\nl12", - { - "x": 0.25, - "c": "#777777" - }, - "9,7\nl13", - "10,0\nl14", - "9,6\nl15", - { - "x": 3.25 - }, - "11,6\n\n\n\n\n\n\n\n\ne0" - ], - [ - { - "y": 0.25, - "c": "#cccccc" - }, - "1,6\nl16", - "1,7\nl17", - "2,7\nl18", - "3,7\nl19", - "4,7\nl20", - "4,6\nl21", - "5,6\nl22", - "5,7\nl23", - "6,7\nl24", - "7,7\nl25", - "8,7\nl26", - "8,6\nl27", - "6,6\nl28", - { - "c": "#aaaaaa", - "w": 2 - }, - "10,1\nl29", - { - "x": 0.25, - "c": "#cccccc" - }, - "7,5\nl30", - "0,2\nl31", - "1,5\nl32", - { - "x": 0.25 - }, - "11,4\nl33", - "12,4\nl34", - "13,4\nl35", - "13,5\nl36" - ], - [ - { - "c": "#aaaaaa", - "w": 1.5 - }, - "1,1\nl37", - { - "c": "#cccccc" - }, - "1,0\nl38", - "2,0\nl39", - "3,0\nl40", - "4,0\nl41", - "4,1\nl42", - "5,1\nl43", - "5,0\nl44", - "6,0\nl45", - "7,0\nl46", - "8,0\nl47", - "8,1\nl48", - "6,1\nl49", - { - "w": 1.5 - }, - "10,2\nl50", - { - "x": 0.25 - }, - "6,5\nl51", - "12,6\nl52", - "2,5\nl53", - { - "x": 0.25 - }, - "11,0\nl54", - "12,0\nl55", - "13,0\nl56", - { - "h": 2 - }, - "11,3\nl57" - ], - [ - { - "c": "#aaaaaa", - "w": 1.75 - }, - "2,1\nl58", - { - "c": "#cccccc" - }, - "1,2\nl59", - "2,2\nl60", - "3,2\nl61", - "4,2\nl62", - "4,3\nl63", - "5,3\nl64", - "5,2\nl65", - "6,2\nl66", - "7,2\nl67", - "8,2\nl68", - "8,3\nl69", - { - "c": "#777777", - "w": 2.25 - }, - "10,4\nl70", - { - "x": 3.5, - "c": "#cccccc" - }, - "11,1\nl71", - "12,1\nl72", - "13,1\nl73" - ], - [ - { - "c": "#aaaaaa", - "w": 2.25 - }, - "0,0\nl74", - { - "c": "#cccccc" - }, - "1,4\nl75", - "2,4\nl76", - "3,4\nl77", - "4,4\nl78", - "4,5\nl79", - "5,5\nl80", - "5,4\nl81", - "6,4\nl82", - "7,4\nl83", - "8,5\nl84", - { - "c": "#aaaaaa", - "w": 2.75 - }, - "9,1\nl85", - { - "x": 1.25, - "c": "#777777" - }, - "3,5\nl86", - { - "x": 1.25, - "c": "#cccccc" - }, - "11,2\nl87", - "12,2\nl88", - "13,2\nl89", - { - "h": 2 - }, - "13,6\nl90" - ], - [ - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,6\nl91", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,0\nl92", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,3\nl93", - { - "c": "#cccccc", - "w": 6.25 - }, - "9,4\nl94", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,5\nl95", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,2\nl96", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "8,4\nl97", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,4\nl98", - { - "x": 0.25, - "c": "#777777" - }, - "0,3\nl99", - "7,3\nl100", - "0,5\nl101", - { - "x": 0.25, - "c": "#cccccc", - "w": 2 - }, - "12,3\nl102", - "13,3\nl103" - ] - ] - } -} From e0f1d087ebf5377514180253f4a19d0baf29ba0e Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Fri, 4 Jul 2025 08:18:54 -0700 Subject: [PATCH 03/10] reformat design layout --- .../ansi/keymaps/viach/design_layout.json | 730 ++++++++++-------- 1 file changed, 416 insertions(+), 314 deletions(-) diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json index cbf7356b610..85a17142421 100644 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json @@ -1,331 +1,433 @@ { - "name": "GMMK3 100% ANSI", - "vendorId": "0x504B", - "productId": "0x320F", - "keycodes": ["qmk_lighting"], - "menus": [ - { - "label": "Lighting", - "content": [ - { - "label": "Backlight", - "content": [ - { - "label": "Brightness", - "type": "range", - "options": [0, 255], - "content": ["id_qmk_rgb_matrix_brightness", 3, 1] - }, - { - "label": "Effect", - "type": "dropdown", - "content": ["id_qmk_rgb_matrix_effect", 3, 2], - "options": [ - ["None", 0], - ["Solid Color", 1], - ["Breathing", 2], - ["Band Spiral Val", 3], - ["Cycle All", 4], - ["Cycle Left Right", 5], - ["Cycle Up Down", 6], - ["Rainbow Moving Chevron", 7], - ["Cycle Out In", 8], - ["Cycle Out In Dual", 9], - ["Cycle Pinwheel", 10], - ["Cycle Spiral", 11], - ["Dual Beacon", 12], - ["Rainbow Beacon", 13], - ["Jellybean Raindrops", 14], - ["Pixel Rain", 15], - ["Typing Heatmap", 16], - ["Digital Rain", 17], - ["Reactive Simple", 18], - ["Reactive Multiwide", 19], - ["Reactive Multinexus", 20], - ["Splash", 21], - ["Solid Splash", 22], - ["Direct", 23] - ] - }, + "name": "GMMK3 100% ANSI", + "vendorId": "0x504B", + "productId": "0x320F", + "keycodes": [ + "qmk_lighting" + ], + "menus": [ + { + "label": "Lighting", + "content": [ + { + "label": "Backlight", + "content": [ + { + "label": "Brightness", + "type": "range", + "options": [ + 0, + 255 + ], + "content": [ + "id_qmk_rgb_matrix_brightness", + 3, + 1 + ] + }, + { + "label": "Effect", + "type": "dropdown", + "content": [ + "id_qmk_rgb_matrix_effect", + 3, + 2 + ], + "options": [ + [ + "None", + 0 + ], + [ + "Solid Color", + 1 + ], + [ + "Breathing", + 2 + ], + [ + "Band Spiral Val", + 3 + ], + [ + "Cycle All", + 4 + ], + [ + "Cycle Left Right", + 5 + ], + [ + "Cycle Up Down", + 6 + ], + [ + "Rainbow Moving Chevron", + 7 + ], + [ + "Cycle Out In", + 8 + ], + [ + "Cycle Out In Dual", + 9 + ], + [ + "Cycle Pinwheel", + 10 + ], + [ + "Cycle Spiral", + 11 + ], + [ + "Dual Beacon", + 12 + ], + [ + "Rainbow Beacon", + 13 + ], + [ + "Jellybean Raindrops", + 14 + ], + [ + "Pixel Rain", + 15 + ], + [ + "Typing Heatmap", + 16 + ], + [ + "Digital Rain", + 17 + ], + [ + "Reactive Simple", + 18 + ], + [ + "Reactive Multiwide", + 19 + ], + [ + "Reactive Multinexus", + 20 + ], + [ + "Splash", + 21 + ], + [ + "Solid Splash", + 22 + ], + [ + "Direct", + 23 + ] + ] + }, { "showIf": "{id_qmk_rgb_matrix_effect} > 1 && {id_qmk_rgb_matrix_effect} != 23", "label": "Effect Speed", "type": "range", - "options": [0, 255], - "content": ["id_qmk_rgb_matrix_effect_speed", 3, 3] + "options": [ + 0, + 255 + ], + "content": [ + "id_qmk_rgb_matrix_effect_speed", + 3, + 3 + ] }, { "showIf": "{id_qmk_rgb_matrix_effect} != 0 && {id_qmk_rgb_matrix_effect} != 23 && ( {id_qmk_rgb_matrix_effect} < 4 || {id_qmk_rgb_matrix_effect} == 18 || ({id_qmk_rgb_matrix_effect} > 17 && {id_qmk_rgb_matrix_effect} != 21) ) ", "label": "Color", "type": "color", - "content": ["id_qmk_rgb_matrix_color", 3, 4] + "content": [ + "id_qmk_rgb_matrix_color", + 3, + 4 + ] }, { "showIf": "{id_qmk_rgb_matrix_effect} == 23", "label": "Color Palette", - "type": "color-palette", - "content": ["id_qmk_rgb_matrix_color", 3, 4] + "type": "color-palette", + "content": [ + "id_qmk_rgb_matrix_color", + 3, + 4 + ] } - ] - } - ] - } - ], - "matrix": {"rows": 14, "cols": 8}, - "layouts": { - "keymap": - [ - [ - { - "c": "#777777" - }, - "1,3\nl0", - { - "x": 1.0, - "c": "#cccccc" - }, - "2,6\nl1", - "3,6\nl2", - "3,1\nl3", - "3,3\nl4", - { - "x": 0.5, - "c": "#777777" - }, - "0,7\nl5", - "6,3\nl6", - "7,1\nl7", - "7,6\nl8", - { - "x": 0.5, - "c": "#cccccc" - }, - "10,6\nl9", - "10,7\nl10", - "10,3\nl11", - "10,5\nl12", - { - "x": 0.25, - "c": "#777777" - }, - "9,7\nl13", - "10,0\nl14", - "9,6\nl15", - { - "x": 3.25 - }, - "11,6\n\n\n\n\n\n\n\n\ne0" - ], - [ - { - "y": 0.25, - "c": "#cccccc" - }, - "1,6\nl16", - "1,7\nl17", - "2,7\nl18", - "3,7\nl19", - "4,7\nl20", - "4,6\nl21", - "5,6\nl22", - "5,7\nl23", - "6,7\nl24", - "7,7\nl25", - "8,7\nl26", - "8,6\nl27", - "6,6\nl28", - { - "c": "#aaaaaa", - "w": 2 - }, - "10,1\nl29", - { - "x": 0.25, - "c": "#cccccc" - }, - "7,5\nl30", - "0,2\nl31", - "1,5\nl32", - { - "x": 0.25 - }, - "11,4\nl33", - "12,4\nl34", - "13,4\nl35", - "13,5\nl36" - ], - [ - { - "c": "#aaaaaa", - "w": 1.5 - }, - "1,1\nl37", - { - "c": "#cccccc" - }, - "1,0\nl38", - "2,0\nl39", - "3,0\nl40", - "4,0\nl41", - "4,1\nl42", - "5,1\nl43", - "5,0\nl44", - "6,0\nl45", - "7,0\nl46", - "8,0\nl47", - "8,1\nl48", - "6,1\nl49", - { - "w": 1.5 - }, - "10,2\nl50", - { - "x": 0.25 - }, - "6,5\nl51", - "12,6\nl52", - "2,5\nl53", - { - "x": 0.25 - }, - "11,0\nl54", - "12,0\nl55", - "13,0\nl56", - { - "h": 2 - }, - "11,3\nl57" - ], - [ - { - "c": "#aaaaaa", - "w": 1.75 - }, - "2,1\nl58", - { - "c": "#cccccc" - }, - "1,2\nl59", - "2,2\nl60", - "3,2\nl61", - "4,2\nl62", - "4,3\nl63", - "5,3\nl64", - "5,2\nl65", - "6,2\nl66", - "7,2\nl67", - "8,2\nl68", - "8,3\nl69", - { - "c": "#777777", - "w": 2.25 - }, - "10,4\nl70", - { - "x": 3.5, - "c": "#cccccc" - }, - "11,1\nl71", - "12,1\nl72", - "13,1\nl73" - ], - [ - { - "c": "#aaaaaa", - "w": 2.25 - }, - "0,0\nl74", - { - "c": "#cccccc" - }, - "1,4\nl75", - "2,4\nl76", - "3,4\nl77", - "4,4\nl78", - "4,5\nl79", - "5,5\nl80", - "5,4\nl81", - "6,4\nl82", - "7,4\nl83", - "8,5\nl84", - { - "c": "#aaaaaa", - "w": 2.75 - }, - "9,1\nl85", - { - "x": 1.25, - "c": "#777777" - }, - "3,5\nl86", - { - "x": 1.25, - "c": "#cccccc" - }, - "11,2\nl87", - "12,2\nl88", - "13,2\nl89", - { - "h": 2 - }, - "13,6\nl90" - ], - [ - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,6\nl91", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,0\nl92", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,3\nl93", - { - "c": "#cccccc", - "w": 6.25 - }, - "9,4\nl94", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,5\nl95", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,2\nl96", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "8,4\nl97", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,4\nl98", - { - "x": 0.25, - "c": "#777777" - }, - "0,3\nl99", - "7,3\nl100", - "0,5\nl101", - { - "x": 0.25, - "c": "#cccccc", - "w": 2 - }, - "12,3\nl102", - "13,3\nl103" - ] + ] + } ] } -} + ], + "matrix": { + "rows": 14, + "cols": 8 + }, + "layouts": { + "keymap": [ + [ + { + "c": "#777777" + }, + "1,3\nl0", + { + "x": 1.0, + "c": "#cccccc" + }, + "2,6\nl1", + "3,6\nl2", + "3,1\nl3", + "3,3\nl4", + { + "x": 0.5, + "c": "#777777" + }, + "0,7\nl5", + "6,3\nl6", + "7,1\nl7", + "7,6\nl8", + { + "x": 0.5, + "c": "#cccccc" + }, + "10,6\nl9", + "10,7\nl10", + "10,3\nl11", + "10,5\nl12", + { + "x": 0.25, + "c": "#777777" + }, + "9,7\nl13", + "10,0\nl14", + "9,6\nl15", + { + "x": 3.25 + }, + "11,6\n\n\n\n\n\n\n\n\ne0" + ], + [ + { + "y": 0.25, + "c": "#cccccc" + }, + "1,6\nl16", + "1,7\nl17", + "2,7\nl18", + "3,7\nl19", + "4,7\nl20", + "4,6\nl21", + "5,6\nl22", + "5,7\nl23", + "6,7\nl24", + "7,7\nl25", + "8,7\nl26", + "8,6\nl27", + "6,6\nl28", + { + "c": "#aaaaaa", + "w": 2 + }, + "10,1\nl29", + { + "x": 0.25, + "c": "#cccccc" + }, + "7,5\nl30", + "0,2\nl31", + "1,5\nl32", + { + "x": 0.25 + }, + "11,4\nl33", + "12,4\nl34", + "13,4\nl35", + "13,5\nl36" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "1,1\nl37", + { + "c": "#cccccc" + }, + "1,0\nl38", + "2,0\nl39", + "3,0\nl40", + "4,0\nl41", + "4,1\nl42", + "5,1\nl43", + "5,0\nl44", + "6,0\nl45", + "7,0\nl46", + "8,0\nl47", + "8,1\nl48", + "6,1\nl49", + { + "w": 1.5 + }, + "10,2\nl50", + { + "x": 0.25 + }, + "6,5\nl51", + "12,6\nl52", + "2,5\nl53", + { + "x": 0.25 + }, + "11,0\nl54", + "12,0\nl55", + "13,0\nl56", + { + "h": 2 + }, + "11,3\nl57" + ], + [ + { + "c": "#aaaaaa", + "w": 1.75 + }, + "2,1\nl58", + { + "c": "#cccccc" + }, + "1,2\nl59", + "2,2\nl60", + "3,2\nl61", + "4,2\nl62", + "4,3\nl63", + "5,3\nl64", + "5,2\nl65", + "6,2\nl66", + "7,2\nl67", + "8,2\nl68", + "8,3\nl69", + { + "c": "#777777", + "w": 2.25 + }, + "10,4\nl70", + { + "x": 3.5, + "c": "#cccccc" + }, + "11,1\nl71", + "12,1\nl72", + "13,1\nl73" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "0,0\nl74", + { + "c": "#cccccc" + }, + "1,4\nl75", + "2,4\nl76", + "3,4\nl77", + "4,4\nl78", + "4,5\nl79", + "5,5\nl80", + "5,4\nl81", + "6,4\nl82", + "7,4\nl83", + "8,5\nl84", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "9,1\nl85", + { + "x": 1.25, + "c": "#777777" + }, + "3,5\nl86", + { + "x": 1.25, + "c": "#cccccc" + }, + "11,2\nl87", + "12,2\nl88", + "13,2\nl89", + { + "h": 2 + }, + "13,6\nl90" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,6\nl91", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,0\nl92", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,3\nl93", + { + "c": "#cccccc", + "w": 6.25 + }, + "9,4\nl94", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,5\nl95", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,2\nl96", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "8,4\nl97", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,4\nl98", + { + "x": 0.25, + "c": "#777777" + }, + "0,3\nl99", + "7,3\nl100", + "0,5\nl101", + { + "x": 0.25, + "c": "#cccccc", + "w": 2 + }, + "12,3\nl102", + "13,3\nl103" + ] + ] + } +} \ No newline at end of file From ca905c988cfe95c7ab037dd6a6b2c463766648e6 Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Fri, 4 Jul 2025 17:14:14 -0700 Subject: [PATCH 04/10] Fixed Side LED and Logo LEDs for GMMK3 ANSI --- keyboards/gmmk/gmmk3/p100/ansi/ansi.c | 44 +++++++++---------- keyboards/gmmk/gmmk3/p100/ansi/keyboard.json | 2 +- .../ansi/keymaps/viach/design_layout.json | 27 +++++++++++- keyboards/gmmk/gmmk3/p100/config.h | 3 +- 4 files changed, 51 insertions(+), 25 deletions(-) diff --git a/keyboards/gmmk/gmmk3/p100/ansi/ansi.c b/keyboards/gmmk/gmmk3/p100/ansi/ansi.c index 3ee4623b14b..d34039e42d8 100644 --- a/keyboards/gmmk/gmmk3/p100/ansi/ansi.c +++ b/keyboards/gmmk/gmmk3/p100/ansi/ansi.c @@ -17,6 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE +#define __ NO_LED /* Refer to AW20216S manual for these locations * driver @@ -144,26 +145,22 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW7_CS13, SW7_CS14, SW7_CS15}, // 110 SLED7 {1, SW8_CS13, SW8_CS14, SW8_CS15}, // 111 SLED8 {1, SW9_CS13, SW9_CS14, SW9_CS15}, // 112 SLED9 - {1, SW10_CS13, SW10_CS14, SW10_CS15}, // 113 SLED10 - {1, SW1_CS16, SW1_CS17, SW1_CS18}, // 114 SLED11 - {1, SW2_CS16, SW2_CS17, SW2_CS18}, // 115 SLED12 - {1, SW3_CS16, SW3_CS17, SW3_CS18}, // 116 SLED13 - {1, SW4_CS16, SW4_CS17, SW4_CS18}, // 117 SLED14 - {1, SW5_CS16, SW5_CS17, SW5_CS18}, // 118 SLED15 - {1, SW6_CS16, SW6_CS17, SW6_CS18}, // 119 SLED16 - {1, SW7_CS16, SW7_CS17, SW7_CS18}, // 120 SLED17 - {1, SW8_CS16, SW8_CS17, SW8_CS18}, // 121 SLED18 - {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 122 SLED19 - {1, SW10_CS16, SW10_CS17, SW10_CS18}, // 123 SLED20 + {1, SW1_CS16, SW1_CS17, SW1_CS18}, // 113 SLED11 + {1, SW2_CS16, SW2_CS17, SW2_CS18}, // 114 SLED12 + {1, SW3_CS16, SW3_CS17, SW3_CS18}, // 115 SLED13 + {1, SW4_CS16, SW4_CS17, SW4_CS18}, // 116 SLED14 + {1, SW5_CS16, SW5_CS17, SW5_CS18}, // 117 SLED15 + {1, SW6_CS16, SW6_CS17, SW6_CS18}, // 118 SLED16 + {1, SW7_CS16, SW7_CS17, SW7_CS18}, // 119 SLED17 + {1, SW8_CS16, SW8_CS17, SW8_CS18}, // 120 SLED18 + {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 121 SLED19 - {1, SW10_CS1, SW10_CS2, SW10_CS3}, // 124 LOGO + {1, SW10_CS1, SW10_CS2, SW10_CS3}, // 122 LOGO }; -#define __ NO_LED - led_config_t g_led_config = { - { + { { 74, __, 31, 99, 98, 101, 91, 5 }, { 38, 37, 59, 0, 75, 32, 16, 17}, { 39, 58, 60, __, 76, 53, 1, 18}, @@ -178,6 +175,9 @@ led_config_t g_led_config = { { 54, 71, 87, 57, 33, __, __, __}, { 55, 72, 88, 102, 34, __, 52, __}, { 56, 73, 89, 103, 35, 36, 90, __}, + { 104, 105, 106, 107, 108, 109, 110, 111}, + { 112, 113, 114, 115, 116, 117, 118, 119}, + { 120, 121, 122, __, __, __, __, __}, }, { {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, @@ -187,8 +187,8 @@ led_config_t g_led_config = { {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, {224,58}, {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, // Left and right side lights - {0, 15}, {0, 20}, {0, 25}, {0, 30}, {0, 35}, {0, 40}, {0, 45}, {0, 50}, {0, 55}, {0, 60}, - {224, 15}, {224, 20}, {224, 25}, {224, 30}, {224, 35}, {224, 40}, {224, 45}, {224, 50}, {224, 55}, {224, 60}, + {0, 15}, {0, 20}, {0, 25}, {0, 30}, {0, 35}, {0, 40}, {0, 45}, {0, 50}, {0, 55}, + {224, 15}, {224, 20}, {224, 25}, {224, 30}, {224, 35}, {224, 40}, {224, 45}, {224, 50}, {224, 55}, // logo {214, 0}, }, @@ -201,8 +201,8 @@ led_config_t g_led_config = { 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, // Left and right side lights - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, // Logo 8, } @@ -219,9 +219,9 @@ void spi_init(void) { is_initialised = true; // Try releasing special pins for a short time - gpio_set_pin_input(SPI_SCK_PIN); - gpio_set_pin_input(SPI_MOSI_PIN); - gpio_set_pin_input(SPI_MISO_PIN); + setPinInput(SPI_SCK_PIN); + setPinInput(SPI_MOSI_PIN); + setPinInput(SPI_MISO_PIN); chThdSleepMilliseconds(10); diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keyboard.json b/keyboards/gmmk/gmmk3/p100/ansi/keyboard.json index 3a4a558dc8d..5ca3c79720b 100644 --- a/keyboards/gmmk/gmmk3/p100/ansi/keyboard.json +++ b/keyboards/gmmk/gmmk3/p100/ansi/keyboard.json @@ -18,7 +18,7 @@ }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "C1", "C2", "C3"], - "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "C14", "C15", "B8", "B9", "B10", "C8", "C9", "A15"] + "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "C14", "C15", "B8", "B9", "B10", "C8", "C9", "A15", "C4", "C5", "C6"] }, "diode_direction": "COL2ROW", "eeprom": { diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json index 85a17142421..eb14a801991 100644 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json @@ -172,7 +172,7 @@ } ], "matrix": { - "rows": 14, + "rows": 17, "cols": 8 }, "layouts": { @@ -427,6 +427,31 @@ }, "12,3\nl102", "13,3\nl103" + ], + [ + "14,0\nl104", + "14,1\nl105", + "14,2\nl106", + "14,3\nl107", + "14,4\nl108", + "14,5\nl109", + "14,6\nl110", + "14,7\nl111" + ], + [ + "15,0\nl112", + "15,2\nl113", + "15,3\nl114", + "15,4\nl115", + "15,5\nl116", + "15,6\nl117", + "15,7\nl118" + ], + [ + "16,0\nl119", + "16,1\nl120", + "16,2\nl121", + "16,3\nl122" ] ] } diff --git a/keyboards/gmmk/gmmk3/p100/config.h b/keyboards/gmmk/gmmk3/p100/config.h index e092f05f33d..bcb141d5064 100644 --- a/keyboards/gmmk/gmmk3/p100/config.h +++ b/keyboards/gmmk/gmmk3/p100/config.h @@ -35,7 +35,8 @@ #define AW20216S_EN_PIN C13 #define DRIVER_1_LED_TOTAL (67) -#define DRIVER_2_LED_TOTAL (59) +#define DRIVER_2_LED_TOTAL (56) +#define MATRIX_ROWS 17 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #define DIP_SWITCH_PINS { A13 } From 983239aebe95e998044cc514df571202e9faa413 Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Sun, 6 Jul 2025 12:35:00 -0700 Subject: [PATCH 05/10] cleanup --- keyboards/gmmk/gmmk3/p100/ansi/config.h | 20 + .../gmmk3/p100/ansi/keymaps/default/config.h | 19 + .../gmmk3/p100/ansi/keymaps/viach/config.h | 2 +- .../gmmk3/p100/ansi/keymaps/viach/keymap.c | 64 ++- keyboards/gmmk/gmmk3/p100/config.h | 2 - keyboards/gmmk/gmmk3/p100/iso/config.h | 20 + keyboards/gmmk/gmmk3/p100/iso/iso.c | 59 +-- .../p100/iso/{info.json => keyboard.json} | 2 +- .../gmmk3/p100/iso/keymaps/default/config.h | 19 + .../iso/keymaps/viach/animations/direct.h | 17 + .../gmmk3/p100/iso/keymaps/viach/config.h | 19 + .../p100/iso/keymaps/viach/design_layout.json | 458 ++++++++++++++++++ .../gmmk3/p100/iso/keymaps/viach/keymap.c | 160 ++++++ .../iso/keymaps/viach/rgb_matrix_user.inc | 1 + .../gmmk3/p100/iso/keymaps/viach/rules.mk | 4 + 15 files changed, 823 insertions(+), 43 deletions(-) create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/config.h create mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/config.h create mode 100644 keyboards/gmmk/gmmk3/p100/iso/config.h rename keyboards/gmmk/gmmk3/p100/iso/{info.json => keyboard.json} (99%) create mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/default/config.h create mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/animations/direct.h create mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/config.h create mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/design_layout.json create mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c create mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rgb_matrix_user.inc create mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rules.mk diff --git a/keyboards/gmmk/gmmk3/p100/ansi/config.h b/keyboards/gmmk/gmmk3/p100/ansi/config.h new file mode 100644 index 00000000000..9933fe32a19 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/config.h @@ -0,0 +1,20 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define DRIVER_2_LED_TOTAL (56) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/config.h b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/config.h new file mode 100644 index 00000000000..816a5d0fe2d --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h index 21e844b4559..34ec5885608 100644 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h @@ -16,4 +16,4 @@ #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 3 +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c index f3ccf666a18..b4d75412ee5 100644 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c +++ b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c @@ -36,25 +36,27 @@ // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. enum custom_layers { - _BL, // Base Layer - _FL, // Function Layer - _CL // Custom Layer + WIN_BL, // Windows Base Layer + WIN_FL, // Windows Function Layer + MACOS_BL, // Mac OS Base Layer + MACOS_FL, // Mac OS Function Layer + _CL // Custom Layer }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base Layer (Default Layer) */ - [_BL] = LAYOUT( + /* Windows Base Layer (Default Layer) */ + [WIN_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), - /* Function Layer */ - [_FL] = LAYOUT( + /* Windows Function Layer */ + [WIN_FL] = LAYOUT( QK_BOOT, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -64,6 +66,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ ), + /* Mac OS Base Layer (Default Layer) */ + [MACOS_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MACOS_FL), KC_ROPT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + /* Mac OS Function Layer */ + [MACOS_FL] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ), + /* Custom Layer */ [_CL] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -78,8 +102,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [WIN_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [MACOS_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MACOS_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [_CL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; #endif // ENCODER_MAP_ENABLE @@ -125,3 +151,21 @@ void via_custom_value_command_kb(uint8_t *data, uint8_t length) { } #endif // VIA_ENABLE +#ifdef DIP_SWITCH_ENABLE + +bool dip_switch_update_user(uint8_t index, bool active) { + + if (index == 0) { + if (active){ + layer_off(MACOS_BL); + layer_on(WIN_BL); + } else { + layer_off(WIN_BL); + layer_on(MACOS_BL); + } + } + + return true; +} + +#endif \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/config.h b/keyboards/gmmk/gmmk3/p100/config.h index bcb141d5064..1df3c2f8d25 100644 --- a/keyboards/gmmk/gmmk3/p100/config.h +++ b/keyboards/gmmk/gmmk3/p100/config.h @@ -35,8 +35,6 @@ #define AW20216S_EN_PIN C13 #define DRIVER_1_LED_TOTAL (67) -#define DRIVER_2_LED_TOTAL (56) #define MATRIX_ROWS 17 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #define DIP_SWITCH_PINS { A13 } diff --git a/keyboards/gmmk/gmmk3/p100/iso/config.h b/keyboards/gmmk/gmmk3/p100/iso/config.h new file mode 100644 index 00000000000..5cd1092d467 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/config.h @@ -0,0 +1,20 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define DRIVER_2_LED_TOTAL (57) // ISO has one more LED than ANSI +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/iso/iso.c b/keyboards/gmmk/gmmk3/p100/iso/iso.c index 748a9cb47b0..dbb2366e9b5 100644 --- a/keyboards/gmmk/gmmk3/p100/iso/iso.c +++ b/keyboards/gmmk/gmmk3/p100/iso/iso.c @@ -146,38 +146,39 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW7_CS13, SW7_CS14, SW7_CS15}, // 111 SLED7 {1, SW8_CS13, SW8_CS14, SW8_CS15}, // 112 SLED8 {1, SW9_CS13, SW9_CS14, SW9_CS15}, // 113 SLED9 - {1, SW10_CS13, SW10_CS14, SW10_CS15}, // 114 SLED10 - {1, SW1_CS16, SW1_CS17, SW1_CS18}, // 115 SLED11 - {1, SW2_CS16, SW2_CS17, SW2_CS18}, // 116 SLED12 - {1, SW3_CS16, SW3_CS17, SW3_CS18}, // 117 SLED13 - {1, SW4_CS16, SW4_CS17, SW4_CS18}, // 118 SLED14 - {1, SW5_CS16, SW5_CS17, SW5_CS18}, // 119 SLED15 - {1, SW6_CS16, SW6_CS17, SW6_CS18}, // 120 SLED16 - {1, SW7_CS16, SW7_CS17, SW7_CS18}, // 121 SLED17 - {1, SW8_CS16, SW8_CS17, SW8_CS18}, // 122 SLED18 - {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 123 SLED19 - {1, SW10_CS16, SW10_CS17, SW10_CS18}, // 124 SLED20 + {1, SW1_CS16, SW1_CS17, SW1_CS18}, // 114 SLED10 + {1, SW2_CS16, SW2_CS17, SW2_CS18}, // 115 SLED11 + {1, SW3_CS16, SW3_CS17, SW3_CS18}, // 116 SLED12 + {1, SW4_CS16, SW4_CS17, SW4_CS18}, // 117 SLED13 + {1, SW5_CS16, SW5_CS17, SW5_CS18}, // 118 SLED14 + {1, SW6_CS16, SW6_CS17, SW6_CS18}, // 119 SLED15 + {1, SW7_CS16, SW7_CS17, SW7_CS18}, // 120 SLED16 + {1, SW8_CS16, SW8_CS17, SW8_CS18}, // 121 SLED17 + {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 122 SLED18 - {1, SW10_CS1, SW10_CS2, SW10_CS3}, // 125 LOGO + {1, SW10_CS1, SW10_CS2, SW10_CS3}, // 123 LOGO }; led_config_t g_led_config = { { { 74, 75, 31, 100, 99, 102, 92, 5}, - { 38, 37, 59, 0, 76, 32, 16, 17}, - { 39, 58, 60, __, 77, 53, 1, 18}, - { 40, 3, 61, 4, 78, 87, 2, 19}, - { 41, 42, 62, 63, 79, 80, 21, 20}, - { 44, 43, 65, 64, 82, 81, 22, 23}, - { 45, 49, 66, 6, 83, 51, 28, 24}, - { 46, 7, 67, 101, 84, 30, 8, 25}, - { 47, 48, 68, 69, 98, 85, 27, 26}, - { 93, 86, 97, 94, 95, 96, 15, 13}, - { 14, 29, 50, 11, 70, 12, 9, 10}, - { 54, 71, 88, 57, 33, __, __, __}, - { 55, 72, 89, 103, 34, __, 52, __}, - { 56, 73, 90, 104, 35, 36, 91, __}, + { 38, 37, 59, 0, 76, 32, 16, 17}, + { 39, 58, 60, __, 77, 53, 1, 18}, + { 40, 3, 61, 4, 78, 87, 2, 19}, + { 41, 42, 62, 63, 79, 80, 21, 20}, + { 44, 43, 65, 64, 82, 81, 22, 23}, + { 45, 49, 66, 6, 83, 51, 28, 24}, + { 46, 7, 67, 101, 84, 30, 8, 25}, + { 47, 48, 68, 69, 98, 85, 27, 26}, + { 93, 86, 97, 94, 95, 96, 15, 13}, + { 14, 29, 50, 11, 70, 12, 9, 10}, + { 54, 71, 88, 57, 33, __, __, __}, + { 55, 72, 89, 103, 34, __, 52, __}, + { 56, 73, 90, 104, 35, 36, 91, __}, + { 105, 106, 107, 108, 109, 110, 111, 112}, + { 113, 114, 115, 116, 117, 118, 119, 120}, + { 121, 122, 123, __, __, __, __, __}, }, { {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, @@ -187,8 +188,8 @@ led_config_t g_led_config = { {1,52}, {12,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, {224,58}, {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, // Lef and right side lights - {0, 15}, {0, 20}, {0, 25}, {0, 30}, {0, 35}, {0, 40}, {0, 45}, {0, 50}, {0, 55}, {0, 60}, - {224, 15}, {224, 20}, {224, 25}, {224, 30}, {224, 35}, {224, 40}, {224, 45}, {224, 50}, {224, 55}, {224, 60}, + {0, 15}, {0, 20}, {0, 25}, {0, 30}, {0, 35}, {0, 40}, {0, 45}, {0, 50}, {0, 55}, + {224, 15}, {224, 20}, {224, 25}, {224, 30}, {224, 35}, {224, 40}, {224, 45}, {224, 50}, {224, 55}, // logo {214, 0}, }, @@ -201,8 +202,8 @@ led_config_t g_led_config = { 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, // Lef and right side lights - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, // Logo 8, } diff --git a/keyboards/gmmk/gmmk3/p100/iso/info.json b/keyboards/gmmk/gmmk3/p100/iso/keyboard.json similarity index 99% rename from keyboards/gmmk/gmmk3/p100/iso/info.json rename to keyboards/gmmk/gmmk3/p100/iso/keyboard.json index a0e5fbde2d9..a4ddcc494a7 100644 --- a/keyboards/gmmk/gmmk3/p100/iso/info.json +++ b/keyboards/gmmk/gmmk3/p100/iso/keyboard.json @@ -16,7 +16,7 @@ }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "C1", "C2", "C3"], - "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "C14", "C15", "B8", "B9", "B10", "C8", "C9", "A15"] + "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "C14", "C15", "B8", "B9", "B10", "C8", "C9", "A15", "C4", "C5", "C6"] }, "diode_direction": "COL2ROW", "eeprom": { diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/default/config.h b/keyboards/gmmk/gmmk3/p100/iso/keymaps/default/config.h new file mode 100644 index 00000000000..816a5d0fe2d --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/animations/direct.h b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/animations/direct.h new file mode 100644 index 00000000000..011334dbbe5 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/animations/direct.h @@ -0,0 +1,17 @@ +RGB_MATRIX_EFFECT(DIRECT) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS +extern uint8_t color_buffer[RGB_MATRIX_LED_COUNT * 2]; +extern uint8_t brightness_buffer[RGB_MATRIX_LED_COUNT]; + +static bool DIRECT(effect_params_t* params) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + for (uint8_t i = led_min; i < led_max; i++) { + RGB rgb = hsv_to_rgb((HSV){color_buffer[i * 2], color_buffer[i * 2 + 1], scale8(rgb_matrix_config.hsv.v, brightness_buffer[i])}); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + + return led_max < RGB_MATRIX_LED_COUNT; +} +#endif diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/config.h b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/config.h new file mode 100644 index 00000000000..34ec5885608 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/config.h @@ -0,0 +1,19 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/design_layout.json b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/design_layout.json new file mode 100644 index 00000000000..eb14a801991 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/design_layout.json @@ -0,0 +1,458 @@ +{ + "name": "GMMK3 100% ANSI", + "vendorId": "0x504B", + "productId": "0x320F", + "keycodes": [ + "qmk_lighting" + ], + "menus": [ + { + "label": "Lighting", + "content": [ + { + "label": "Backlight", + "content": [ + { + "label": "Brightness", + "type": "range", + "options": [ + 0, + 255 + ], + "content": [ + "id_qmk_rgb_matrix_brightness", + 3, + 1 + ] + }, + { + "label": "Effect", + "type": "dropdown", + "content": [ + "id_qmk_rgb_matrix_effect", + 3, + 2 + ], + "options": [ + [ + "None", + 0 + ], + [ + "Solid Color", + 1 + ], + [ + "Breathing", + 2 + ], + [ + "Band Spiral Val", + 3 + ], + [ + "Cycle All", + 4 + ], + [ + "Cycle Left Right", + 5 + ], + [ + "Cycle Up Down", + 6 + ], + [ + "Rainbow Moving Chevron", + 7 + ], + [ + "Cycle Out In", + 8 + ], + [ + "Cycle Out In Dual", + 9 + ], + [ + "Cycle Pinwheel", + 10 + ], + [ + "Cycle Spiral", + 11 + ], + [ + "Dual Beacon", + 12 + ], + [ + "Rainbow Beacon", + 13 + ], + [ + "Jellybean Raindrops", + 14 + ], + [ + "Pixel Rain", + 15 + ], + [ + "Typing Heatmap", + 16 + ], + [ + "Digital Rain", + 17 + ], + [ + "Reactive Simple", + 18 + ], + [ + "Reactive Multiwide", + 19 + ], + [ + "Reactive Multinexus", + 20 + ], + [ + "Splash", + 21 + ], + [ + "Solid Splash", + 22 + ], + [ + "Direct", + 23 + ] + ] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} > 1 && {id_qmk_rgb_matrix_effect} != 23", + "label": "Effect Speed", + "type": "range", + "options": [ + 0, + 255 + ], + "content": [ + "id_qmk_rgb_matrix_effect_speed", + 3, + 3 + ] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} != 0 && {id_qmk_rgb_matrix_effect} != 23 && ( {id_qmk_rgb_matrix_effect} < 4 || {id_qmk_rgb_matrix_effect} == 18 || ({id_qmk_rgb_matrix_effect} > 17 && {id_qmk_rgb_matrix_effect} != 21) ) ", + "label": "Color", + "type": "color", + "content": [ + "id_qmk_rgb_matrix_color", + 3, + 4 + ] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} == 23", + "label": "Color Palette", + "type": "color-palette", + "content": [ + "id_qmk_rgb_matrix_color", + 3, + 4 + ] + } + ] + } + ] + } + ], + "matrix": { + "rows": 17, + "cols": 8 + }, + "layouts": { + "keymap": [ + [ + { + "c": "#777777" + }, + "1,3\nl0", + { + "x": 1.0, + "c": "#cccccc" + }, + "2,6\nl1", + "3,6\nl2", + "3,1\nl3", + "3,3\nl4", + { + "x": 0.5, + "c": "#777777" + }, + "0,7\nl5", + "6,3\nl6", + "7,1\nl7", + "7,6\nl8", + { + "x": 0.5, + "c": "#cccccc" + }, + "10,6\nl9", + "10,7\nl10", + "10,3\nl11", + "10,5\nl12", + { + "x": 0.25, + "c": "#777777" + }, + "9,7\nl13", + "10,0\nl14", + "9,6\nl15", + { + "x": 3.25 + }, + "11,6\n\n\n\n\n\n\n\n\ne0" + ], + [ + { + "y": 0.25, + "c": "#cccccc" + }, + "1,6\nl16", + "1,7\nl17", + "2,7\nl18", + "3,7\nl19", + "4,7\nl20", + "4,6\nl21", + "5,6\nl22", + "5,7\nl23", + "6,7\nl24", + "7,7\nl25", + "8,7\nl26", + "8,6\nl27", + "6,6\nl28", + { + "c": "#aaaaaa", + "w": 2 + }, + "10,1\nl29", + { + "x": 0.25, + "c": "#cccccc" + }, + "7,5\nl30", + "0,2\nl31", + "1,5\nl32", + { + "x": 0.25 + }, + "11,4\nl33", + "12,4\nl34", + "13,4\nl35", + "13,5\nl36" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "1,1\nl37", + { + "c": "#cccccc" + }, + "1,0\nl38", + "2,0\nl39", + "3,0\nl40", + "4,0\nl41", + "4,1\nl42", + "5,1\nl43", + "5,0\nl44", + "6,0\nl45", + "7,0\nl46", + "8,0\nl47", + "8,1\nl48", + "6,1\nl49", + { + "w": 1.5 + }, + "10,2\nl50", + { + "x": 0.25 + }, + "6,5\nl51", + "12,6\nl52", + "2,5\nl53", + { + "x": 0.25 + }, + "11,0\nl54", + "12,0\nl55", + "13,0\nl56", + { + "h": 2 + }, + "11,3\nl57" + ], + [ + { + "c": "#aaaaaa", + "w": 1.75 + }, + "2,1\nl58", + { + "c": "#cccccc" + }, + "1,2\nl59", + "2,2\nl60", + "3,2\nl61", + "4,2\nl62", + "4,3\nl63", + "5,3\nl64", + "5,2\nl65", + "6,2\nl66", + "7,2\nl67", + "8,2\nl68", + "8,3\nl69", + { + "c": "#777777", + "w": 2.25 + }, + "10,4\nl70", + { + "x": 3.5, + "c": "#cccccc" + }, + "11,1\nl71", + "12,1\nl72", + "13,1\nl73" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "0,0\nl74", + { + "c": "#cccccc" + }, + "1,4\nl75", + "2,4\nl76", + "3,4\nl77", + "4,4\nl78", + "4,5\nl79", + "5,5\nl80", + "5,4\nl81", + "6,4\nl82", + "7,4\nl83", + "8,5\nl84", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "9,1\nl85", + { + "x": 1.25, + "c": "#777777" + }, + "3,5\nl86", + { + "x": 1.25, + "c": "#cccccc" + }, + "11,2\nl87", + "12,2\nl88", + "13,2\nl89", + { + "h": 2 + }, + "13,6\nl90" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,6\nl91", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,0\nl92", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,3\nl93", + { + "c": "#cccccc", + "w": 6.25 + }, + "9,4\nl94", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,5\nl95", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "9,2\nl96", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "8,4\nl97", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,4\nl98", + { + "x": 0.25, + "c": "#777777" + }, + "0,3\nl99", + "7,3\nl100", + "0,5\nl101", + { + "x": 0.25, + "c": "#cccccc", + "w": 2 + }, + "12,3\nl102", + "13,3\nl103" + ], + [ + "14,0\nl104", + "14,1\nl105", + "14,2\nl106", + "14,3\nl107", + "14,4\nl108", + "14,5\nl109", + "14,6\nl110", + "14,7\nl111" + ], + [ + "15,0\nl112", + "15,2\nl113", + "15,3\nl114", + "15,4\nl115", + "15,5\nl116", + "15,6\nl117", + "15,7\nl118" + ], + [ + "16,0\nl119", + "16,1\nl120", + "16,2\nl121", + "16,3\nl122" + ] + ] + } +} \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c new file mode 100644 index 00000000000..cac10312e5b --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c @@ -0,0 +1,160 @@ +/* Copyright 2024 Glorious, LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +/* +* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┐ +* │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Mut│ +* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┘ +* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ +* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ +* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ +* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ +* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │ +* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ │ 4 │ 5 │ 6 │ │ +* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ ├───┼───┼───┼───┤ +* │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ +* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ +* │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ +* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ +*/ + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Switching between Windows and Mac OS Base layers is done via DIP switch +enum custom_layers { + WIN_BL, // Windows Base Layer + WIN_FL, // Windows Function Layer + MACOS_BL, // Mac OS Base Layer + MACOS_FL // Mac OS Function Layer +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows Base Layer (Default Layer) */ + [WIN_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + /* Windows Function Layer */ + [WIN_FL] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ), + + /* Mac OS Base Layer (Default Layer) */ + [MACOS_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MACOS_FL), KC_ROPT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + /* Mac OS Function Layer */ + [MACOS_FL] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ + ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [WIN_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [MACOS_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [MACOS_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_CL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif // ENCODER_MAP_ENABLE + +uint8_t color_buffer[RGB_MATRIX_LED_COUNT * 2] = {0}; +uint8_t brightness_buffer[RGB_MATRIX_LED_COUNT] = {[0 ... RGB_MATRIX_LED_COUNT - 1] = 255}; + +#ifdef VIA_ENABLE +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + uint8_t channel_id = data[1]; + if (channel_id != id_custom_channel) return; + + uint8_t *command_id = &(data[0]); + uint8_t value_id = data[2]; + uint8_t led_index = data[3]; + uint8_t led_count = data[4]; + + switch (*command_id) { + case id_custom_set_value: + if (value_id == 1) { + memcpy(color_buffer + led_index * 2, data + 5, led_count * 2); + } else if (value_id == 2) { + memcpy(brightness_buffer + led_index, data + 5, led_count); + } + break; + + case id_custom_get_value: + if (value_id == 1) { + memcpy(data + 5, color_buffer + led_index * 2, led_count * 2); + } else if (value_id == 2) { + memcpy(data + 5, brightness_buffer + led_index, led_count); + } + break; + + case id_custom_save: + // optional: implement persistent save here + break; + + default: + *command_id = id_unhandled; + break; + } +} +#endif // VIA_ENABLE + +#ifdef DIP_SWITCH_ENABLE + +bool dip_switch_update_user(uint8_t index, bool active) { + + if (index == 0) { + if (active){ + layer_off(MACOS_BL); + layer_on(WIN_BL); + } else { + layer_off(WIN_BL); + layer_on(MACOS_BL); + } + } + + return true; +} + +#endif \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rgb_matrix_user.inc b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rgb_matrix_user.inc new file mode 100644 index 00000000000..194f79c4313 --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rgb_matrix_user.inc @@ -0,0 +1 @@ +#include "animations/direct.h" diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rules.mk b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rules.mk new file mode 100644 index 00000000000..2803f85fb4d --- /dev/null +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rules.mk @@ -0,0 +1,4 @@ +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes +BOOTMAGIC_ENABLE = yes +RGB_MATRIX_CUSTOM_USER = yes From 993bf7339983268a586f77e506a1d1f95b5c6c27 Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Sun, 6 Jul 2025 12:39:47 -0700 Subject: [PATCH 06/10] fix missing custom layer --- keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c index cac10312e5b..011b6371a32 100644 --- a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c @@ -41,6 +41,7 @@ enum custom_layers { WIN_FL, // Windows Function Layer MACOS_BL, // Mac OS Base Layer MACOS_FL // Mac OS Function Layer + _CL // Custom Layer }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -87,6 +88,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ ), + + /* Custom Layer */ + [_CL] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; #if defined(ENCODER_MAP_ENABLE) From c7438f59c0c37c9260bc482596d8ff671c7b2e1e Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Sun, 6 Jul 2025 12:48:49 -0700 Subject: [PATCH 07/10] missing comma --- keyboards/gmmk/gmmk3/p100/iso/{rules.mk => .rules.mk} | 0 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename keyboards/gmmk/gmmk3/p100/iso/{rules.mk => .rules.mk} (100%) diff --git a/keyboards/gmmk/gmmk3/p100/iso/rules.mk b/keyboards/gmmk/gmmk3/p100/iso/.rules.mk similarity index 100% rename from keyboards/gmmk/gmmk3/p100/iso/rules.mk rename to keyboards/gmmk/gmmk3/p100/iso/.rules.mk diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c index 011b6371a32..ded2ecabdc9 100644 --- a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c @@ -40,7 +40,7 @@ enum custom_layers { WIN_BL, // Windows Base Layer WIN_FL, // Windows Function Layer MACOS_BL, // Mac OS Base Layer - MACOS_FL // Mac OS Function Layer + MACOS_FL, // Mac OS Function Layer _CL // Custom Layer }; From 306d2a45913bb89f7d8b9a8f2f17c7b4ba0cb04b Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Sun, 6 Jul 2025 12:52:26 -0700 Subject: [PATCH 08/10] fix CL layout --- keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c index ded2ecabdc9..d010c0455f7 100644 --- a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c +++ b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c @@ -94,9 +94,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; From 9d0ea7f1f03a7d74b8c55b50cbb274b179ae19f8 Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Sun, 6 Jul 2025 18:03:47 -0700 Subject: [PATCH 09/10] removing via-related files, orphan files --- keyboards/gmmk/gmmk3/p100/ansi/.rules.mk | 15 - .../ansi/keymaps/viach/animations/direct.h | 17 - .../gmmk3/p100/ansi/keymaps/viach/config.h | 19 - .../ansi/keymaps/viach/design_layout.json | 458 ------------------ .../gmmk3/p100/ansi/keymaps/viach/keymap.c | 171 ------- .../ansi/keymaps/viach/rgb_matrix_user.inc | 1 - .../gmmk3/p100/ansi/keymaps/viach/rules.mk | 4 - keyboards/gmmk/gmmk3/p100/iso/.rules.mk | 15 - .../iso/keymaps/viach/animations/direct.h | 17 - .../gmmk3/p100/iso/keymaps/viach/config.h | 19 - .../p100/iso/keymaps/viach/design_layout.json | 458 ------------------ .../gmmk3/p100/iso/keymaps/viach/keymap.c | 172 ------- .../iso/keymaps/viach/rgb_matrix_user.inc | 1 - .../gmmk3/p100/iso/keymaps/viach/rules.mk | 4 - 14 files changed, 1371 deletions(-) delete mode 100644 keyboards/gmmk/gmmk3/p100/ansi/.rules.mk delete mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/animations/direct.h delete mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h delete mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json delete mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c delete mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rgb_matrix_user.inc delete mode 100644 keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rules.mk delete mode 100644 keyboards/gmmk/gmmk3/p100/iso/.rules.mk delete mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/animations/direct.h delete mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/config.h delete mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/design_layout.json delete mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c delete mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rgb_matrix_user.inc delete mode 100644 keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rules.mk diff --git a/keyboards/gmmk/gmmk3/p100/ansi/.rules.mk b/keyboards/gmmk/gmmk3/p100/ansi/.rules.mk deleted file mode 100644 index 1d36b433555..00000000000 --- a/keyboards/gmmk/gmmk3/p100/ansi/.rules.mk +++ /dev/null @@ -1,15 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -ENCODER_ENABLE = yes # Enable rotary encoder -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -AUDIO_ENABLE = no # Audio output -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = yes # Enable keyobard keys RGB -DIP_SWITCH_ENABLE = yes # Enable DIP Switch on the back diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/animations/direct.h b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/animations/direct.h deleted file mode 100644 index 011334dbbe5..00000000000 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/animations/direct.h +++ /dev/null @@ -1,17 +0,0 @@ -RGB_MATRIX_EFFECT(DIRECT) - -#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -extern uint8_t color_buffer[RGB_MATRIX_LED_COUNT * 2]; -extern uint8_t brightness_buffer[RGB_MATRIX_LED_COUNT]; - -static bool DIRECT(effect_params_t* params) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); - - for (uint8_t i = led_min; i < led_max; i++) { - RGB rgb = hsv_to_rgb((HSV){color_buffer[i * 2], color_buffer[i * 2 + 1], scale8(rgb_matrix_config.hsv.v, brightness_buffer[i])}); - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } - - return led_max < RGB_MATRIX_LED_COUNT; -} -#endif diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h deleted file mode 100644 index 34ec5885608..00000000000 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2024 Glorious, LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json deleted file mode 100644 index eb14a801991..00000000000 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/design_layout.json +++ /dev/null @@ -1,458 +0,0 @@ -{ - "name": "GMMK3 100% ANSI", - "vendorId": "0x504B", - "productId": "0x320F", - "keycodes": [ - "qmk_lighting" - ], - "menus": [ - { - "label": "Lighting", - "content": [ - { - "label": "Backlight", - "content": [ - { - "label": "Brightness", - "type": "range", - "options": [ - 0, - 255 - ], - "content": [ - "id_qmk_rgb_matrix_brightness", - 3, - 1 - ] - }, - { - "label": "Effect", - "type": "dropdown", - "content": [ - "id_qmk_rgb_matrix_effect", - 3, - 2 - ], - "options": [ - [ - "None", - 0 - ], - [ - "Solid Color", - 1 - ], - [ - "Breathing", - 2 - ], - [ - "Band Spiral Val", - 3 - ], - [ - "Cycle All", - 4 - ], - [ - "Cycle Left Right", - 5 - ], - [ - "Cycle Up Down", - 6 - ], - [ - "Rainbow Moving Chevron", - 7 - ], - [ - "Cycle Out In", - 8 - ], - [ - "Cycle Out In Dual", - 9 - ], - [ - "Cycle Pinwheel", - 10 - ], - [ - "Cycle Spiral", - 11 - ], - [ - "Dual Beacon", - 12 - ], - [ - "Rainbow Beacon", - 13 - ], - [ - "Jellybean Raindrops", - 14 - ], - [ - "Pixel Rain", - 15 - ], - [ - "Typing Heatmap", - 16 - ], - [ - "Digital Rain", - 17 - ], - [ - "Reactive Simple", - 18 - ], - [ - "Reactive Multiwide", - 19 - ], - [ - "Reactive Multinexus", - 20 - ], - [ - "Splash", - 21 - ], - [ - "Solid Splash", - 22 - ], - [ - "Direct", - 23 - ] - ] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} > 1 && {id_qmk_rgb_matrix_effect} != 23", - "label": "Effect Speed", - "type": "range", - "options": [ - 0, - 255 - ], - "content": [ - "id_qmk_rgb_matrix_effect_speed", - 3, - 3 - ] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} != 0 && {id_qmk_rgb_matrix_effect} != 23 && ( {id_qmk_rgb_matrix_effect} < 4 || {id_qmk_rgb_matrix_effect} == 18 || ({id_qmk_rgb_matrix_effect} > 17 && {id_qmk_rgb_matrix_effect} != 21) ) ", - "label": "Color", - "type": "color", - "content": [ - "id_qmk_rgb_matrix_color", - 3, - 4 - ] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} == 23", - "label": "Color Palette", - "type": "color-palette", - "content": [ - "id_qmk_rgb_matrix_color", - 3, - 4 - ] - } - ] - } - ] - } - ], - "matrix": { - "rows": 17, - "cols": 8 - }, - "layouts": { - "keymap": [ - [ - { - "c": "#777777" - }, - "1,3\nl0", - { - "x": 1.0, - "c": "#cccccc" - }, - "2,6\nl1", - "3,6\nl2", - "3,1\nl3", - "3,3\nl4", - { - "x": 0.5, - "c": "#777777" - }, - "0,7\nl5", - "6,3\nl6", - "7,1\nl7", - "7,6\nl8", - { - "x": 0.5, - "c": "#cccccc" - }, - "10,6\nl9", - "10,7\nl10", - "10,3\nl11", - "10,5\nl12", - { - "x": 0.25, - "c": "#777777" - }, - "9,7\nl13", - "10,0\nl14", - "9,6\nl15", - { - "x": 3.25 - }, - "11,6\n\n\n\n\n\n\n\n\ne0" - ], - [ - { - "y": 0.25, - "c": "#cccccc" - }, - "1,6\nl16", - "1,7\nl17", - "2,7\nl18", - "3,7\nl19", - "4,7\nl20", - "4,6\nl21", - "5,6\nl22", - "5,7\nl23", - "6,7\nl24", - "7,7\nl25", - "8,7\nl26", - "8,6\nl27", - "6,6\nl28", - { - "c": "#aaaaaa", - "w": 2 - }, - "10,1\nl29", - { - "x": 0.25, - "c": "#cccccc" - }, - "7,5\nl30", - "0,2\nl31", - "1,5\nl32", - { - "x": 0.25 - }, - "11,4\nl33", - "12,4\nl34", - "13,4\nl35", - "13,5\nl36" - ], - [ - { - "c": "#aaaaaa", - "w": 1.5 - }, - "1,1\nl37", - { - "c": "#cccccc" - }, - "1,0\nl38", - "2,0\nl39", - "3,0\nl40", - "4,0\nl41", - "4,1\nl42", - "5,1\nl43", - "5,0\nl44", - "6,0\nl45", - "7,0\nl46", - "8,0\nl47", - "8,1\nl48", - "6,1\nl49", - { - "w": 1.5 - }, - "10,2\nl50", - { - "x": 0.25 - }, - "6,5\nl51", - "12,6\nl52", - "2,5\nl53", - { - "x": 0.25 - }, - "11,0\nl54", - "12,0\nl55", - "13,0\nl56", - { - "h": 2 - }, - "11,3\nl57" - ], - [ - { - "c": "#aaaaaa", - "w": 1.75 - }, - "2,1\nl58", - { - "c": "#cccccc" - }, - "1,2\nl59", - "2,2\nl60", - "3,2\nl61", - "4,2\nl62", - "4,3\nl63", - "5,3\nl64", - "5,2\nl65", - "6,2\nl66", - "7,2\nl67", - "8,2\nl68", - "8,3\nl69", - { - "c": "#777777", - "w": 2.25 - }, - "10,4\nl70", - { - "x": 3.5, - "c": "#cccccc" - }, - "11,1\nl71", - "12,1\nl72", - "13,1\nl73" - ], - [ - { - "c": "#aaaaaa", - "w": 2.25 - }, - "0,0\nl74", - { - "c": "#cccccc" - }, - "1,4\nl75", - "2,4\nl76", - "3,4\nl77", - "4,4\nl78", - "4,5\nl79", - "5,5\nl80", - "5,4\nl81", - "6,4\nl82", - "7,4\nl83", - "8,5\nl84", - { - "c": "#aaaaaa", - "w": 2.75 - }, - "9,1\nl85", - { - "x": 1.25, - "c": "#777777" - }, - "3,5\nl86", - { - "x": 1.25, - "c": "#cccccc" - }, - "11,2\nl87", - "12,2\nl88", - "13,2\nl89", - { - "h": 2 - }, - "13,6\nl90" - ], - [ - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,6\nl91", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,0\nl92", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,3\nl93", - { - "c": "#cccccc", - "w": 6.25 - }, - "9,4\nl94", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,5\nl95", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,2\nl96", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "8,4\nl97", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,4\nl98", - { - "x": 0.25, - "c": "#777777" - }, - "0,3\nl99", - "7,3\nl100", - "0,5\nl101", - { - "x": 0.25, - "c": "#cccccc", - "w": 2 - }, - "12,3\nl102", - "13,3\nl103" - ], - [ - "14,0\nl104", - "14,1\nl105", - "14,2\nl106", - "14,3\nl107", - "14,4\nl108", - "14,5\nl109", - "14,6\nl110", - "14,7\nl111" - ], - [ - "15,0\nl112", - "15,2\nl113", - "15,3\nl114", - "15,4\nl115", - "15,5\nl116", - "15,6\nl117", - "15,7\nl118" - ], - [ - "16,0\nl119", - "16,1\nl120", - "16,2\nl121", - "16,3\nl122" - ] - ] - } -} \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c deleted file mode 100644 index b4d75412ee5..00000000000 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/keymap.c +++ /dev/null @@ -1,171 +0,0 @@ -/* Copyright 2024 Glorious, LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -/* -* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┐ -* │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Mut│ -* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┘ -* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ -* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ -* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ -* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ -* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │ -* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │ -* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ -* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ -* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ -* │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ -* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ -*/ - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -enum custom_layers { - WIN_BL, // Windows Base Layer - WIN_FL, // Windows Function Layer - MACOS_BL, // Mac OS Base Layer - MACOS_FL, // Mac OS Function Layer - _CL // Custom Layer -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows Base Layer (Default Layer) */ - [WIN_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, - - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - /* Windows Function Layer */ - [WIN_FL] = LAYOUT( - QK_BOOT, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ - ), - - /* Mac OS Base Layer (Default Layer) */ - [MACOS_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, - - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MACOS_FL), KC_ROPT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - /* Mac OS Function Layer */ - [MACOS_FL] = LAYOUT( - _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ - ), - - /* Custom Layer */ - [_CL] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [WIN_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [MACOS_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MACOS_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [_CL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, -}; -#endif // ENCODER_MAP_ENABLE - -uint8_t color_buffer[RGB_MATRIX_LED_COUNT * 2] = {0}; -uint8_t brightness_buffer[RGB_MATRIX_LED_COUNT] = {[0 ... RGB_MATRIX_LED_COUNT - 1] = 255}; - -#ifdef VIA_ENABLE -void via_custom_value_command_kb(uint8_t *data, uint8_t length) { - uint8_t channel_id = data[1]; - if (channel_id != id_custom_channel) return; - - uint8_t *command_id = &(data[0]); - uint8_t value_id = data[2]; - uint8_t led_index = data[3]; - uint8_t led_count = data[4]; - - switch (*command_id) { - case id_custom_set_value: - if (value_id == 1) { - memcpy(color_buffer + led_index * 2, data + 5, led_count * 2); - } else if (value_id == 2) { - memcpy(brightness_buffer + led_index, data + 5, led_count); - } - break; - - case id_custom_get_value: - if (value_id == 1) { - memcpy(data + 5, color_buffer + led_index * 2, led_count * 2); - } else if (value_id == 2) { - memcpy(data + 5, brightness_buffer + led_index, led_count); - } - break; - - case id_custom_save: - // optional: implement persistent save here - break; - - default: - *command_id = id_unhandled; - break; - } -} -#endif // VIA_ENABLE - -#ifdef DIP_SWITCH_ENABLE - -bool dip_switch_update_user(uint8_t index, bool active) { - - if (index == 0) { - if (active){ - layer_off(MACOS_BL); - layer_on(WIN_BL); - } else { - layer_off(WIN_BL); - layer_on(MACOS_BL); - } - } - - return true; -} - -#endif \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rgb_matrix_user.inc b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rgb_matrix_user.inc deleted file mode 100644 index 194f79c4313..00000000000 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rgb_matrix_user.inc +++ /dev/null @@ -1 +0,0 @@ -#include "animations/direct.h" diff --git a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rules.mk b/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rules.mk deleted file mode 100644 index 2803f85fb4d..00000000000 --- a/keyboards/gmmk/gmmk3/p100/ansi/keymaps/viach/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -ENCODER_MAP_ENABLE = yes -VIA_ENABLE = yes -BOOTMAGIC_ENABLE = yes -RGB_MATRIX_CUSTOM_USER = yes diff --git a/keyboards/gmmk/gmmk3/p100/iso/.rules.mk b/keyboards/gmmk/gmmk3/p100/iso/.rules.mk deleted file mode 100644 index 1d36b433555..00000000000 --- a/keyboards/gmmk/gmmk3/p100/iso/.rules.mk +++ /dev/null @@ -1,15 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -ENCODER_ENABLE = yes # Enable rotary encoder -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -AUDIO_ENABLE = no # Audio output -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = yes # Enable keyobard keys RGB -DIP_SWITCH_ENABLE = yes # Enable DIP Switch on the back diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/animations/direct.h b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/animations/direct.h deleted file mode 100644 index 011334dbbe5..00000000000 --- a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/animations/direct.h +++ /dev/null @@ -1,17 +0,0 @@ -RGB_MATRIX_EFFECT(DIRECT) - -#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -extern uint8_t color_buffer[RGB_MATRIX_LED_COUNT * 2]; -extern uint8_t brightness_buffer[RGB_MATRIX_LED_COUNT]; - -static bool DIRECT(effect_params_t* params) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); - - for (uint8_t i = led_min; i < led_max; i++) { - RGB rgb = hsv_to_rgb((HSV){color_buffer[i * 2], color_buffer[i * 2 + 1], scale8(rgb_matrix_config.hsv.v, brightness_buffer[i])}); - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } - - return led_max < RGB_MATRIX_LED_COUNT; -} -#endif diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/config.h b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/config.h deleted file mode 100644 index 34ec5885608..00000000000 --- a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2024 Glorious, LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/design_layout.json b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/design_layout.json deleted file mode 100644 index eb14a801991..00000000000 --- a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/design_layout.json +++ /dev/null @@ -1,458 +0,0 @@ -{ - "name": "GMMK3 100% ANSI", - "vendorId": "0x504B", - "productId": "0x320F", - "keycodes": [ - "qmk_lighting" - ], - "menus": [ - { - "label": "Lighting", - "content": [ - { - "label": "Backlight", - "content": [ - { - "label": "Brightness", - "type": "range", - "options": [ - 0, - 255 - ], - "content": [ - "id_qmk_rgb_matrix_brightness", - 3, - 1 - ] - }, - { - "label": "Effect", - "type": "dropdown", - "content": [ - "id_qmk_rgb_matrix_effect", - 3, - 2 - ], - "options": [ - [ - "None", - 0 - ], - [ - "Solid Color", - 1 - ], - [ - "Breathing", - 2 - ], - [ - "Band Spiral Val", - 3 - ], - [ - "Cycle All", - 4 - ], - [ - "Cycle Left Right", - 5 - ], - [ - "Cycle Up Down", - 6 - ], - [ - "Rainbow Moving Chevron", - 7 - ], - [ - "Cycle Out In", - 8 - ], - [ - "Cycle Out In Dual", - 9 - ], - [ - "Cycle Pinwheel", - 10 - ], - [ - "Cycle Spiral", - 11 - ], - [ - "Dual Beacon", - 12 - ], - [ - "Rainbow Beacon", - 13 - ], - [ - "Jellybean Raindrops", - 14 - ], - [ - "Pixel Rain", - 15 - ], - [ - "Typing Heatmap", - 16 - ], - [ - "Digital Rain", - 17 - ], - [ - "Reactive Simple", - 18 - ], - [ - "Reactive Multiwide", - 19 - ], - [ - "Reactive Multinexus", - 20 - ], - [ - "Splash", - 21 - ], - [ - "Solid Splash", - 22 - ], - [ - "Direct", - 23 - ] - ] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} > 1 && {id_qmk_rgb_matrix_effect} != 23", - "label": "Effect Speed", - "type": "range", - "options": [ - 0, - 255 - ], - "content": [ - "id_qmk_rgb_matrix_effect_speed", - 3, - 3 - ] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} != 0 && {id_qmk_rgb_matrix_effect} != 23 && ( {id_qmk_rgb_matrix_effect} < 4 || {id_qmk_rgb_matrix_effect} == 18 || ({id_qmk_rgb_matrix_effect} > 17 && {id_qmk_rgb_matrix_effect} != 21) ) ", - "label": "Color", - "type": "color", - "content": [ - "id_qmk_rgb_matrix_color", - 3, - 4 - ] - }, - { - "showIf": "{id_qmk_rgb_matrix_effect} == 23", - "label": "Color Palette", - "type": "color-palette", - "content": [ - "id_qmk_rgb_matrix_color", - 3, - 4 - ] - } - ] - } - ] - } - ], - "matrix": { - "rows": 17, - "cols": 8 - }, - "layouts": { - "keymap": [ - [ - { - "c": "#777777" - }, - "1,3\nl0", - { - "x": 1.0, - "c": "#cccccc" - }, - "2,6\nl1", - "3,6\nl2", - "3,1\nl3", - "3,3\nl4", - { - "x": 0.5, - "c": "#777777" - }, - "0,7\nl5", - "6,3\nl6", - "7,1\nl7", - "7,6\nl8", - { - "x": 0.5, - "c": "#cccccc" - }, - "10,6\nl9", - "10,7\nl10", - "10,3\nl11", - "10,5\nl12", - { - "x": 0.25, - "c": "#777777" - }, - "9,7\nl13", - "10,0\nl14", - "9,6\nl15", - { - "x": 3.25 - }, - "11,6\n\n\n\n\n\n\n\n\ne0" - ], - [ - { - "y": 0.25, - "c": "#cccccc" - }, - "1,6\nl16", - "1,7\nl17", - "2,7\nl18", - "3,7\nl19", - "4,7\nl20", - "4,6\nl21", - "5,6\nl22", - "5,7\nl23", - "6,7\nl24", - "7,7\nl25", - "8,7\nl26", - "8,6\nl27", - "6,6\nl28", - { - "c": "#aaaaaa", - "w": 2 - }, - "10,1\nl29", - { - "x": 0.25, - "c": "#cccccc" - }, - "7,5\nl30", - "0,2\nl31", - "1,5\nl32", - { - "x": 0.25 - }, - "11,4\nl33", - "12,4\nl34", - "13,4\nl35", - "13,5\nl36" - ], - [ - { - "c": "#aaaaaa", - "w": 1.5 - }, - "1,1\nl37", - { - "c": "#cccccc" - }, - "1,0\nl38", - "2,0\nl39", - "3,0\nl40", - "4,0\nl41", - "4,1\nl42", - "5,1\nl43", - "5,0\nl44", - "6,0\nl45", - "7,0\nl46", - "8,0\nl47", - "8,1\nl48", - "6,1\nl49", - { - "w": 1.5 - }, - "10,2\nl50", - { - "x": 0.25 - }, - "6,5\nl51", - "12,6\nl52", - "2,5\nl53", - { - "x": 0.25 - }, - "11,0\nl54", - "12,0\nl55", - "13,0\nl56", - { - "h": 2 - }, - "11,3\nl57" - ], - [ - { - "c": "#aaaaaa", - "w": 1.75 - }, - "2,1\nl58", - { - "c": "#cccccc" - }, - "1,2\nl59", - "2,2\nl60", - "3,2\nl61", - "4,2\nl62", - "4,3\nl63", - "5,3\nl64", - "5,2\nl65", - "6,2\nl66", - "7,2\nl67", - "8,2\nl68", - "8,3\nl69", - { - "c": "#777777", - "w": 2.25 - }, - "10,4\nl70", - { - "x": 3.5, - "c": "#cccccc" - }, - "11,1\nl71", - "12,1\nl72", - "13,1\nl73" - ], - [ - { - "c": "#aaaaaa", - "w": 2.25 - }, - "0,0\nl74", - { - "c": "#cccccc" - }, - "1,4\nl75", - "2,4\nl76", - "3,4\nl77", - "4,4\nl78", - "4,5\nl79", - "5,5\nl80", - "5,4\nl81", - "6,4\nl82", - "7,4\nl83", - "8,5\nl84", - { - "c": "#aaaaaa", - "w": 2.75 - }, - "9,1\nl85", - { - "x": 1.25, - "c": "#777777" - }, - "3,5\nl86", - { - "x": 1.25, - "c": "#cccccc" - }, - "11,2\nl87", - "12,2\nl88", - "13,2\nl89", - { - "h": 2 - }, - "13,6\nl90" - ], - [ - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,6\nl91", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,0\nl92", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,3\nl93", - { - "c": "#cccccc", - "w": 6.25 - }, - "9,4\nl94", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,5\nl95", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "9,2\nl96", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "8,4\nl97", - { - "c": "#aaaaaa", - "w": 1.25 - }, - "0,4\nl98", - { - "x": 0.25, - "c": "#777777" - }, - "0,3\nl99", - "7,3\nl100", - "0,5\nl101", - { - "x": 0.25, - "c": "#cccccc", - "w": 2 - }, - "12,3\nl102", - "13,3\nl103" - ], - [ - "14,0\nl104", - "14,1\nl105", - "14,2\nl106", - "14,3\nl107", - "14,4\nl108", - "14,5\nl109", - "14,6\nl110", - "14,7\nl111" - ], - [ - "15,0\nl112", - "15,2\nl113", - "15,3\nl114", - "15,4\nl115", - "15,5\nl116", - "15,6\nl117", - "15,7\nl118" - ], - [ - "16,0\nl119", - "16,1\nl120", - "16,2\nl121", - "16,3\nl122" - ] - ] - } -} \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c deleted file mode 100644 index d010c0455f7..00000000000 --- a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/keymap.c +++ /dev/null @@ -1,172 +0,0 @@ -/* Copyright 2024 Glorious, LLC - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -/* -* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┐ -* │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Mut│ -* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┘ -* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ -* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ -* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ -* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ -* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │ -* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ │ 4 │ 5 │ 6 │ │ -* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ ├───┼───┼───┼───┤ -* │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ -* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ -* │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ -* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ -*/ - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Switching between Windows and Mac OS Base layers is done via DIP switch -enum custom_layers { - WIN_BL, // Windows Base Layer - WIN_FL, // Windows Function Layer - MACOS_BL, // Mac OS Base Layer - MACOS_FL, // Mac OS Function Layer - _CL // Custom Layer -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows Base Layer (Default Layer) */ - [WIN_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, - - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - /* Windows Function Layer */ - [WIN_FL] = LAYOUT( - _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ - ), - - /* Mac OS Base Layer (Default Layer) */ - [MACOS_BL] = 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_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, - - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MACOS_FL), KC_ROPT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - /* Mac OS Function Layer */ - [MACOS_FL] = LAYOUT( - _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_SAD, RGB_SAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______ - ), - - /* Custom Layer */ - [_CL] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [WIN_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [WIN_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [MACOS_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [MACOS_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [_CL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, -}; -#endif // ENCODER_MAP_ENABLE - -uint8_t color_buffer[RGB_MATRIX_LED_COUNT * 2] = {0}; -uint8_t brightness_buffer[RGB_MATRIX_LED_COUNT] = {[0 ... RGB_MATRIX_LED_COUNT - 1] = 255}; - -#ifdef VIA_ENABLE -void via_custom_value_command_kb(uint8_t *data, uint8_t length) { - uint8_t channel_id = data[1]; - if (channel_id != id_custom_channel) return; - - uint8_t *command_id = &(data[0]); - uint8_t value_id = data[2]; - uint8_t led_index = data[3]; - uint8_t led_count = data[4]; - - switch (*command_id) { - case id_custom_set_value: - if (value_id == 1) { - memcpy(color_buffer + led_index * 2, data + 5, led_count * 2); - } else if (value_id == 2) { - memcpy(brightness_buffer + led_index, data + 5, led_count); - } - break; - - case id_custom_get_value: - if (value_id == 1) { - memcpy(data + 5, color_buffer + led_index * 2, led_count * 2); - } else if (value_id == 2) { - memcpy(data + 5, brightness_buffer + led_index, led_count); - } - break; - - case id_custom_save: - // optional: implement persistent save here - break; - - default: - *command_id = id_unhandled; - break; - } -} -#endif // VIA_ENABLE - -#ifdef DIP_SWITCH_ENABLE - -bool dip_switch_update_user(uint8_t index, bool active) { - - if (index == 0) { - if (active){ - layer_off(MACOS_BL); - layer_on(WIN_BL); - } else { - layer_off(WIN_BL); - layer_on(MACOS_BL); - } - } - - return true; -} - -#endif \ No newline at end of file diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rgb_matrix_user.inc b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rgb_matrix_user.inc deleted file mode 100644 index 194f79c4313..00000000000 --- a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rgb_matrix_user.inc +++ /dev/null @@ -1 +0,0 @@ -#include "animations/direct.h" diff --git a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rules.mk b/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rules.mk deleted file mode 100644 index 2803f85fb4d..00000000000 --- a/keyboards/gmmk/gmmk3/p100/iso/keymaps/viach/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -ENCODER_MAP_ENABLE = yes -VIA_ENABLE = yes -BOOTMAGIC_ENABLE = yes -RGB_MATRIX_CUSTOM_USER = yes From cb70a76562fe99eaf88900d667fab07740c69ea3 Mon Sep 17 00:00:00 2001 From: James Guillochon Date: Sun, 6 Jul 2025 18:13:22 -0700 Subject: [PATCH 10/10] remove .old file --- keyboards/gmmk/gmmk3/p100/info.old | 51 ------------------------------ 1 file changed, 51 deletions(-) delete mode 100644 keyboards/gmmk/gmmk3/p100/info.old diff --git a/keyboards/gmmk/gmmk3/p100/info.old b/keyboards/gmmk/gmmk3/p100/info.old deleted file mode 100644 index 91080575194..00000000000 --- a/keyboards/gmmk/gmmk3/p100/info.old +++ /dev/null @@ -1,51 +0,0 @@ -{ - "rgb_matrix": { - "animations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, - "band_pinwheel_sat": true, - "band_pinwheel_val": true, - "band_spiral_sat": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_rain": true, - "pixel_flow": true, - "pixel_fractal": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, - "solid_reactive_cross": true, - "solid_reactive_multicross": true, - "solid_reactive_nexus": true, - "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, - "solid_splash": true, - "solid_multisplash": true - }, - "driver": "aw20216s", - "sleep": true - } -} \ No newline at end of file