From 279e1864794f1e31918217098860acaa1b571e1d Mon Sep 17 00:00:00 2001
From: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com>
Date: Tue, 12 Apr 2022 10:18:36 +0800
Subject: [PATCH] Revert "Add new keyboard q3 for keychron"
---
keyboards/keychron/q3/chconf.h | 25 ---
keyboards/keychron/q3/config.h | 113 ----------
keyboards/keychron/q3/halconf.h | 22 --
keyboards/keychron/q3/matrix.c | 172 ---------------
keyboards/keychron/q3/mcuconf.h | 22 --
keyboards/keychron/q3/q3.c | 74 -------
keyboards/keychron/q3/q3.h | 29 ---
keyboards/keychron/q3/readme.md | 20 --
keyboards/keychron/q3/rev_0120/config.h | 37 ----
keyboards/keychron/q3/rev_0120/info.json | 103 ---------
.../q3/rev_0120/keymaps/default/keymap.c | 161 --------------
.../keychron/q3/rev_0120/keymaps/via/keymap.c | 161 --------------
.../keychron/q3/rev_0120/keymaps/via/rules.mk | 1 -
keyboards/keychron/q3/rev_0120/readme.md | 1 -
keyboards/keychron/q3/rev_0120/rev_0120.c | 154 -------------
keyboards/keychron/q3/rev_0120/rev_0120.h | 37 ----
keyboards/keychron/q3/rev_0120/rules.mk | 26 ---
keyboards/keychron/q3/rev_0121/config.h | 39 ----
keyboards/keychron/q3/rev_0121/info.json | 203 -----------------
.../q3/rev_0121/keymaps/default/keymap.c | 161 --------------
.../keychron/q3/rev_0121/keymaps/via/keymap.c | 202 -----------------
.../keychron/q3/rev_0121/keymaps/via/rules.mk | 1 -
keyboards/keychron/q3/rev_0121/readme.md | 5 -
keyboards/keychron/q3/rev_0121/rev_0121.c | 170 ---------------
keyboards/keychron/q3/rev_0121/rev_0121.h | 52 -----
keyboards/keychron/q3/rev_0121/rules.mk | 31 ---
keyboards/keychron/q3/rev_0122/config.h | 33 ---
keyboards/keychron/q3/rev_0122/info.json | 104 ---------
.../q3/rev_0122/keymaps/default/keymap.c | 161 --------------
.../keychron/q3/rev_0122/keymaps/via/keymap.c | 161 --------------
.../keychron/q3/rev_0122/keymaps/via/rules.mk | 1 -
keyboards/keychron/q3/rev_0122/readme.md | 1 -
keyboards/keychron/q3/rev_0122/rev_0122.c | 155 -------------
keyboards/keychron/q3/rev_0122/rev_0122.h | 37 ----
keyboards/keychron/q3/rev_0122/rules.mk | 26 ---
keyboards/keychron/q3/rev_0123/config.h | 39 ----
keyboards/keychron/q3/rev_0123/info.json | 205 ------------------
.../q3/rev_0123/keymaps/default/keymap.c | 161 --------------
.../keychron/q3/rev_0123/keymaps/via/keymap.c | 202 -----------------
.../keychron/q3/rev_0123/keymaps/via/rules.mk | 1 -
keyboards/keychron/q3/rev_0123/readme.md | 5 -
keyboards/keychron/q3/rev_0123/rev_0123.c | 171 ---------------
keyboards/keychron/q3/rev_0123/rev_0123.h | 52 -----
keyboards/keychron/q3/rev_0123/rules.mk | 31 ---
44 files changed, 3568 deletions(-)
delete mode 100644 keyboards/keychron/q3/chconf.h
delete mode 100644 keyboards/keychron/q3/config.h
delete mode 100644 keyboards/keychron/q3/halconf.h
delete mode 100644 keyboards/keychron/q3/matrix.c
delete mode 100644 keyboards/keychron/q3/mcuconf.h
delete mode 100644 keyboards/keychron/q3/q3.c
delete mode 100644 keyboards/keychron/q3/q3.h
delete mode 100644 keyboards/keychron/q3/readme.md
delete mode 100644 keyboards/keychron/q3/rev_0120/config.h
delete mode 100644 keyboards/keychron/q3/rev_0120/info.json
delete mode 100644 keyboards/keychron/q3/rev_0120/keymaps/default/keymap.c
delete mode 100644 keyboards/keychron/q3/rev_0120/keymaps/via/keymap.c
delete mode 100644 keyboards/keychron/q3/rev_0120/keymaps/via/rules.mk
delete mode 100644 keyboards/keychron/q3/rev_0120/readme.md
delete mode 100644 keyboards/keychron/q3/rev_0120/rev_0120.c
delete mode 100644 keyboards/keychron/q3/rev_0120/rev_0120.h
delete mode 100644 keyboards/keychron/q3/rev_0120/rules.mk
delete mode 100644 keyboards/keychron/q3/rev_0121/config.h
delete mode 100644 keyboards/keychron/q3/rev_0121/info.json
delete mode 100644 keyboards/keychron/q3/rev_0121/keymaps/default/keymap.c
delete mode 100644 keyboards/keychron/q3/rev_0121/keymaps/via/keymap.c
delete mode 100644 keyboards/keychron/q3/rev_0121/keymaps/via/rules.mk
delete mode 100644 keyboards/keychron/q3/rev_0121/readme.md
delete mode 100644 keyboards/keychron/q3/rev_0121/rev_0121.c
delete mode 100644 keyboards/keychron/q3/rev_0121/rev_0121.h
delete mode 100644 keyboards/keychron/q3/rev_0121/rules.mk
delete mode 100644 keyboards/keychron/q3/rev_0122/config.h
delete mode 100644 keyboards/keychron/q3/rev_0122/info.json
delete mode 100644 keyboards/keychron/q3/rev_0122/keymaps/default/keymap.c
delete mode 100644 keyboards/keychron/q3/rev_0122/keymaps/via/keymap.c
delete mode 100644 keyboards/keychron/q3/rev_0122/keymaps/via/rules.mk
delete mode 100644 keyboards/keychron/q3/rev_0122/readme.md
delete mode 100644 keyboards/keychron/q3/rev_0122/rev_0122.c
delete mode 100644 keyboards/keychron/q3/rev_0122/rev_0122.h
delete mode 100644 keyboards/keychron/q3/rev_0122/rules.mk
delete mode 100644 keyboards/keychron/q3/rev_0123/config.h
delete mode 100644 keyboards/keychron/q3/rev_0123/info.json
delete mode 100644 keyboards/keychron/q3/rev_0123/keymaps/default/keymap.c
delete mode 100644 keyboards/keychron/q3/rev_0123/keymaps/via/keymap.c
delete mode 100644 keyboards/keychron/q3/rev_0123/keymaps/via/rules.mk
delete mode 100644 keyboards/keychron/q3/rev_0123/readme.md
delete mode 100644 keyboards/keychron/q3/rev_0123/rev_0123.c
delete mode 100644 keyboards/keychron/q3/rev_0123/rev_0123.h
delete mode 100644 keyboards/keychron/q3/rev_0123/rules.mk
diff --git a/keyboards/keychron/q3/chconf.h b/keyboards/keychron/q3/chconf.h
deleted file mode 100644
index cbbae31079fb..000000000000
--- a/keyboards/keychron/q3/chconf.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2020 QMK
- *
- * 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 CH_CFG_ST_FREQUENCY 10000
-
-#define CH_CFG_OPTIMIZE_SPEED FALSE
-
-#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
-
-#include_next
diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h
deleted file mode 100644
index 0b8a90f74e25..000000000000
--- a/keyboards/keychron/q3/config.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2021 @ Keychron(https://www.keychron.com)
- *
- * 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
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x3434
-#define MANUFACTURER Keychron
-#define PRODUCT Keychron Q3
-
-/* key matrix size */
-#define MATRIX_ROWS 6
-#define MATRIX_COLS 16
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION ROW2COL
-
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCE 5
-
-/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
-
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* NKRO */
-#define FORCE_NKRO
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* We have 2KB EEPROM size on STM32L432 */
-// #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047
-
-/* Total size of the EEPROM storage in bytes */
-#define TRANSIENT_EEPROM_SIZE 4096
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-#define ENABLE_RGB_MATRIX_RAINDROPS
-// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-// #define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-#define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-// #define RGB_MATRIX_KEYPRESSES
-
-/* Allow VIA to edit lighting */
-#ifdef VIA_ENABLE
-# define VIA_QMK_RGBLIGHT_ENABLE
-#endif
diff --git a/keyboards/keychron/q3/halconf.h b/keyboards/keychron/q3/halconf.h
deleted file mode 100644
index 74821ffac718..000000000000
--- a/keyboards/keychron/q3/halconf.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 QMK
- *
- * 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_I2C TRUE
-#define PAL_USE_CALLBACKS FALSE
-
-#include_next
diff --git a/keyboards/keychron/q3/matrix.c b/keyboards/keychron/q3/matrix.c
deleted file mode 100644
index 1bcd4b5d0c94..000000000000
--- a/keyboards/keychron/q3/matrix.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-#include
-#include
-#include "util.h"
-#include "matrix.h"
-#include "debounce.h"
-#include "quantum.h"
-
-#define DS A7
-#define STCP B0
-#define SHCP B1
-
-#ifdef MATRIX_ROW_PINS
-static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
-#endif // MATRIX_ROW_PINS
-#ifdef MATRIX_COL_PINS
-static pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
-#endif // MATRIX_COL_PINS
-
-/* matrix state(1:on, 0:off) */
-extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values
-extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values
-
-static inline void setPinOutput_writeLow(pin_t pin) {
- ATOMIC_BLOCK_FORCEON {
- setPinOutput(pin);
- writePinLow(pin);
- }
-}
-
-static inline void setPinOutput_writeHigh(pin_t pin) {
- ATOMIC_BLOCK_FORCEON {
- setPinOutput(pin);
- writePinHigh(pin);
- }
-}
-
-static inline void setPinInputHigh_atomic(pin_t pin) {
- ATOMIC_BLOCK_FORCEON { setPinInputHigh(pin); }
-}
-
-static inline uint8_t readMatrixPin(pin_t pin) {
- if (pin != NO_PIN) {
- return readPin(pin);
- } else {
- return 1;
- }
-}
-
-static void delay_nTime(uint8_t time) {
- while(time--);
-}
-
-static void SendTo595(uint8_t byteData) {
- uint8_t i = 0;
-
- for (; i < 8; i++) {
- if (byteData & 0x1) {
- setPinOutput_writeHigh(DS);
- } else {
- setPinOutput_writeLow(DS);
- }
- byteData = byteData>>1;
-
- setPinOutput_writeHigh(SHCP);
- delay_nTime(10);
- setPinOutput_writeLow(SHCP);
- }
- setPinOutput_writeHigh(STCP);
- delay_nTime(10);
- setPinOutput_writeLow(STCP);
-}
-
-static bool select_col(uint8_t col) {
- pin_t pin = col_pins[col];
-
- if (pin != NO_PIN) {
- setPinOutput_writeLow(pin);
- return true;
- } else {
- SendTo595(~(0x1<<(MATRIX_COLS - col -1)));
- return true;
- }
- return false;
-}
-
-static void unselect_col(uint8_t col) {
- pin_t pin = col_pins[col];
-
- if (pin != NO_PIN) {
- setPinInputHigh_atomic(pin);
- } else {
- SendTo595(0xFF);
- }
-}
-
-static void unselect_cols(void) {
- for (uint8_t x = 0; x < MATRIX_COLS; x++) {
- unselect_col(x);
- }
-}
-
-static void matrix_init_pins(void) {
- unselect_cols();
- for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
- if (row_pins[x] != NO_PIN) {
- setPinInputHigh_atomic(row_pins[x]);
- }
- }
-}
-
-void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
- bool key_pressed = false;
-
- // Select col
- if (!select_col(current_col)) {
- return; // skip NO_PIN col
- }
- matrix_output_select_delay();
-
- // For each row...
- for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
- // Check row pin state
- if (readMatrixPin(row_pins[row_index]) == 0) {
- // Pin LO, set col bit
- current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col);
- key_pressed = true;
- } else {
- // Pin HI, clear col bit
- current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col);
- }
- }
-
- // Unselect col
- unselect_col(current_col);
- matrix_output_unselect_delay(current_col, key_pressed); // wait for all Row signals to go HIGH
-}
-
-void matrix_init_custom(void) {
- // initialize key pins
- matrix_init_pins();
-}
-
-bool matrix_scan_custom(matrix_row_t current_matrix[]) {
- matrix_row_t curr_matrix[MATRIX_ROWS] = {0};
-
- // Set col, read rows
- for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
- matrix_read_rows_on_col(curr_matrix, current_col);
- }
-
- bool changed = memcmp(current_matrix, curr_matrix, sizeof(curr_matrix)) != 0;
- if (changed) memcpy(current_matrix, curr_matrix, sizeof(curr_matrix));
-
- return changed;
-}
diff --git a/keyboards/keychron/q3/mcuconf.h b/keyboards/keychron/q3/mcuconf.h
deleted file mode 100644
index 0ca8c64850f4..000000000000
--- a/keyboards/keychron/q3/mcuconf.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 QMK
- *
- * 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 STM32_I2C_USE_I2C1
-#define STM32_I2C_USE_I2C1 TRUE
diff --git a/keyboards/keychron/q3/q3.c b/keyboards/keychron/q3/q3.c
deleted file mode 100644
index 1f79ecede361..000000000000
--- a/keyboards/keychron/q3/q3.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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 "q3.h"
-
-// clang-format off
-
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
-// clang-format on
-
-#ifdef DIP_SWITCH_ENABLE
-
-bool dip_switch_update_kb(uint8_t index, bool active) {
- if (!dip_switch_update_user(index, active)) {
- return false;
- }
- if (index == 0) {
- default_layer_set(1UL << (active ? 2 : 0));
- }
- return true;
-}
-
-#endif
-
-#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
-
-# define CAPS_LOCK_MAX_BRIGHTNESS 0xFF
-# ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS
-# undef CAPS_LOCK_MAX_BRIGHTNESS
-# define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
-# endif
-
-# define CAPS_LOCK_VAL_STEP 8
-# ifdef RGB_MATRIX_VAL_STEP
-# undef CAPS_LOCK_VAL_STEP
-# define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
-# endif
-
-void rgb_matrix_indicators_kb(void) {
- if (host_keyboard_led_state().caps_lock) {
- uint8_t b = rgb_matrix_get_val();
- if (b < CAPS_LOCK_VAL_STEP) {
- b = CAPS_LOCK_VAL_STEP;
- } else if (b < (CAPS_LOCK_MAX_BRIGHTNESS - CAPS_LOCK_VAL_STEP)) {
- b += CAPS_LOCK_VAL_STEP; // one step more than current brightness
- } else {
- b = CAPS_LOCK_MAX_BRIGHTNESS;
- }
- rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, b, b, b); // white, with the adjusted brightness
- }
-}
-
-#endif
diff --git a/keyboards/keychron/q3/q3.h b/keyboards/keychron/q3/q3.h
deleted file mode 100644
index 905b6b8680a0..000000000000
--- a/keyboards/keychron/q3/q3.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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 "quantum.h"
-
-#if defined(KEYBOARD_keychron_q3_rev_0120)
-# include "rev_0120.h"
-#elif defined(KEYBOARD_keychron_q3_rev_0121)
-# include "rev_0121.h"
-#elif defined(KEYBOARD_keychron_q3_rev_0122)
-# include "rev_0122.h"
-#elif defined(KEYBOARD_keychron_q3_rev_0123)
-# include "rev_0123.h"
-#endif
diff --git a/keyboards/keychron/q3/readme.md b/keyboards/keychron/q3/readme.md
deleted file mode 100644
index 6807867e966f..000000000000
--- a/keyboards/keychron/q3/readme.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Keychron Q3
-
-A customizable 87 keys keyboard.
-
-* Keyboard Maintainer: [Keychron](https://github.com/keychron)
-* Hardware Supported: Keychron Q3
-* Hardware Availability: [Keychron](https://www.keychron.com)
-
-Make example for this keyboard (after setting up your build environment):
-
- make keychron/q3/rev_0120:default
-
-Flashing example for this keyboard:
-
- make keychron/q3/rev_0120:default:flash
-
-**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
-
-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).
-
diff --git a/keyboards/keychron/q3/rev_0120/config.h b/keyboards/keychron/q3/rev_0120/config.h
deleted file mode 100644
index 3dfee8b0376c..000000000000
--- a/keyboards/keychron/q3/rev_0120/config.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-/* USB Device descriptor parameter */
-#define PRODUCT_ID 0x0120
-#define DEVICE_VER 0x0100
-
-/* key matrix pins */
-#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
-#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, A8, A9, A10, H3 }
-
-/* We uses a pin with a stronger pull resistor than the internal MCU pins */
-// #define MATRIX_UNSELECT_DRIVE_HIGH
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 39
-#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Enable CapsLcok LED */
-#define CAPS_LOCK_LED_INDEX 50
-
diff --git a/keyboards/keychron/q3/rev_0120/info.json b/keyboards/keychron/q3/rev_0120/info.json
deleted file mode 100644
index f540d9e637c1..000000000000
--- a/keyboards/keychron/q3/rev_0120/info.json
+++ /dev/null
@@ -1,103 +0,0 @@
-{
- "keyboard_name": "Keychron Q3",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "layouts": {
- "LAYOUT_ansi_87": {
- "layout": [
- {"label":"Esc", "x":0, "y":0},
- {"label":"F1", "x":2, "y":0},
- {"label":"F2", "x":3, "y":0},
- {"label":"F3", "x":4, "y":0},
- {"label":"F4", "x":5, "y":0},
- {"label":"F5", "x":6.5, "y":0},
- {"label":"F5", "x":7.5, "y":0},
- {"label":"F7", "x":8.5, "y":0},
- {"label":"F8", "x":9.5, "y":0},
- {"label":"F9", "x":11, "y":0},
- {"label":"F10", "x":12, "y":0},
- {"label":"F11", "x":13, "y":0},
- {"label":"F12", "x":14, "y":0},
- {"label":"Print", "x":15.25, "y":0},
- {"label":"Cortana", "x":16.25, "y":0},
- {"label":"Light", "x":17.25, "y":0},
-
- {"label":"`~", "x":0, "y":1.25},
- {"label":"1!", "x":1, "y":1.25},
- {"label":"2@", "x":2, "y":1.25},
- {"label":"3#", "x":3, "y":1.25},
- {"label":"4$", "x":4, "y":1.25},
- {"label":"5%", "x":5, "y":1.25},
- {"label":"6^", "x":6, "y":1.25},
- {"label":"7&", "x":7, "y":1.25},
- {"label":"8*", "x":8, "y":1.25},
- {"label":"9(", "x":9, "y":1.25},
- {"label":"0)", "x":10, "y":1.25},
- {"label":"-_", "x":11, "y":1.25},
- {"label":"=+", "x":12, "y":1.25},
- {"label":"Backspace", "x":13, "y":1.25, "w":2},
- {"label":"Insert", "x":15.25, "y":1.25},
- {"label":"Home", "x":16.25, "y":1.25},
- {"label":"Page Up", "x":17.25, "y":1.25},
-
- {"label":"Tab", "x":0, "y":2.25, "w":1.5},
- {"label":"Q", "x":1.5, "y":2.25},
- {"label":"W", "x":2.5, "y":2.25},
- {"label":"E", "x":3.5, "y":2.25},
- {"label":"R", "x":4.5, "y":2.25},
- {"label":"T", "x":5.5, "y":2.25},
- {"label":"Y", "x":6.5, "y":2.25},
- {"label":"U", "x":7.5, "y":2.25},
- {"label":"I", "x":8.5, "y":2.25},
- {"label":"O", "x":9.5, "y":2.25},
- {"label":"P", "x":10.5, "y":2.25},
- {"label":"[{", "x":11.5, "y":2.25},
- {"label":"]}", "x":12.5, "y":2.25},
- {"label":"\\|", "x":13.5, "y":2.25, "w":1.5},
- {"label":"Delete", "x":15.25, "y":2.25},
- {"label":"End", "x":16.25, "y":2.25},
- {"label":"Page Down", "x":17.25, "y":2.25},
-
- {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
- {"label":"A", "x":1.75, "y":3.25},
- {"label":"S", "x":2.75, "y":3.25},
- {"label":"D", "x":3.75, "y":3.25},
- {"label":"F", "x":4.75, "y":3.25},
- {"label":"G", "x":5.75, "y":3.25},
- {"label":"H", "x":6.75, "y":3.25},
- {"label":"J", "x":7.75, "y":3.25},
- {"label":"K", "x":8.75, "y":3.25},
- {"label":"L", "x":9.75, "y":3.25},
- {"label":";:", "x":10.75, "y":3.25},
- {"label":"'\"", "x":11.75, "y":3.25},
- {"label":"Enter", "x":12.75, "y":3.25, "w":2.25},
-
- {"label":"Left Shift", "x":0, "y":4.25, "w":2.25},
- {"label":"Z", "x":2.25, "y":4.25},
- {"label":"X", "x":3.25, "y":4.25},
- {"label":"C", "x":4.25, "y":4.25},
- {"label":"V", "x":5.25, "y":4.25},
- {"label":"B", "x":6.25, "y":4.25},
- {"label":"N", "x":7.25, "y":4.25},
- {"label":"M", "x":8.25, "y":4.25},
- {"label":",<", "x":9.25, "y":4.25},
- {"label":".>", "x":10.25, "y":4.25},
- {"label":"/?", "x":11.25, "y":4.25},
- {"label":"Right Shift", "x":12.25, "y":4.25, "w":2.75},
- {"label":"Up", "x":16.25, "y":4.25},
-
- {"label":"Left Ctrl", "x":0, "y":5.25, "w":1.25}
- {"label":"Left Win", "x":1.25, "y":5.25, "w":1.25},
- {"label":"Left Alt", "x":2.5, "y":5.25, "w":1.25},
- {"label":"Space", "x":3.75, "y":5.25, "w":6.25},
- {"label":"Right Alt", "x":10, "y":5.25, "w":1.25},
- {"label":"Right Win", "x":11.25, "y":5.25, "w":1.25},
- {"label":"Fn", "x":12.5, "y":5.25, "w":1.25},
- {"label":"Right Ctrl", "x":13.75, "y":5.25, "w":1.25},
- {"label":"Left", "x":15.25, "y":5.25},
- {"label":"Down", "x":16.25, "y":5.25},
- {"label":"Right", "x":17.25, "y":5.25}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q3/rev_0120/keymaps/default/keymap.c b/keyboards/keychron/q3/rev_0120/keymaps/default/keymap.c
deleted file mode 100644
index 281f4d5f7d3f..000000000000
--- a/keyboards/keychron/q3/rev_0120/keymaps/default/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-enum layers{
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-enum custom_keycodes {
- KC_MISSION_CONTROL = SAFE_RANGE,
- KC_LAUNCHPAD,
- KC_LOPTN,
- KC_ROPTN,
- KC_LCMMD,
- KC_RCMMD,
- KC_SIRI,
- KC_TASK_VIEW,
- KC_FILE_EXPLORER,
- KC_SCREEN_SHOT,
- KC_CORTANA
-};
-
-#define KC_MCTL KC_MISSION_CONTROL
-#define KC_LPAD KC_LAUNCHPAD
-#define KC_TASK KC_TASK_VIEW
-#define KC_FLXP KC_FILE_EXPLORER
-#define KC_SNAP KC_SCREEN_SHOT
-#define KC_CRTA KC_CORTANA
-
-typedef struct PACKED {
- uint8_t len;
- uint8_t keycode[3];
-} key_combination_t;
-
-key_combination_t key_comb_list[4] = {
- {2, {KC_LWIN, KC_TAB}},
- {2, {KC_LWIN, KC_E}},
- {3, {KC_LSFT, KC_LCMD, KC_4}},
- {2, {KC_LWIN, KC_C}}
-};
-
-static uint8_t mac_keycode[4] = { KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_87(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,
- 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_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_ansi_87(
- KC_TRNS, 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_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [WIN_BASE] = LAYOUT_ansi_87(
- 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_CRTA, RGB_MOD,
- 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_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_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_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_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_ansi_87(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-uint16_t prev;
-bool siri;
-
-void matrix_scan_user(void) {
- if (siri) {
- if (timer_elapsed(prev) >= 500) {
- siri = false;
- unregister_code(KC_LCMD);
- unregister_code(KC_SPACE);
- }
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MISSION_CONTROL:
- if (record->event.pressed) {
- host_consumer_send(0x29F);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LAUNCHPAD:
- if (record->event.pressed) {
- host_consumer_send(0x2A0);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LOPTN:
- case KC_ROPTN:
- case KC_LCMMD:
- case KC_RCMMD:
- if (record->event.pressed) {
- register_code(mac_keycode[keycode - KC_LOPTN]);
- } else {
- unregister_code(mac_keycode[keycode - KC_LOPTN]);
- }
- return false; // Skip all further processing of this key
- case KC_SIRI:
- if (record->event.pressed) {
- register_code(KC_LCMD);
- register_code(KC_SPACE);
- prev = timer_read() | 1;
- siri = true;
- } else {
- // Do something else when release
- }
- return false; // Skip all further processing of this key
- case KC_TASK:
- case KC_FLXP:
- case KC_SNAP:
- case KC_CRTA:
- if (record->event.pressed) {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- register_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- } else {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- }
- return false; // Skip all further processing of this key
- default:
- return true; // Process all other keycodes normally
- }
-}
diff --git a/keyboards/keychron/q3/rev_0120/keymaps/via/keymap.c b/keyboards/keychron/q3/rev_0120/keymaps/via/keymap.c
deleted file mode 100644
index 9bff56eaf065..000000000000
--- a/keyboards/keychron/q3/rev_0120/keymaps/via/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-enum layers{
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-enum custom_keycodes {
- KC_MISSION_CONTROL = USER00,
- KC_LAUNCHPAD,
- KC_LOPTN,
- KC_ROPTN,
- KC_LCMMD,
- KC_RCMMD,
- KC_SIRI,
- KC_TASK_VIEW,
- KC_FILE_EXPLORER,
- KC_SCREEN_SHOT,
- KC_CORTANA
-};
-
-#define KC_MCTL KC_MISSION_CONTROL
-#define KC_LPAD KC_LAUNCHPAD
-#define KC_TASK KC_TASK_VIEW
-#define KC_FLXP KC_FILE_EXPLORER
-#define KC_SNAP KC_SCREEN_SHOT
-#define KC_CRTA KC_CORTANA
-
-typedef struct PACKED {
- uint8_t len;
- uint8_t keycode[3];
-} key_combination_t;
-
-key_combination_t key_comb_list[4] = {
- {2, {KC_LWIN, KC_TAB}},
- {2, {KC_LWIN, KC_E}},
- {3, {KC_LSFT, KC_LCMD, KC_4}},
- {2, {KC_LWIN, KC_C}}
-};
-
-static uint8_t mac_keycode[4] = { KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_87(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,
- 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_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_ansi_87(
- KC_TRNS, 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_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [WIN_BASE] = LAYOUT_ansi_87(
- 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_CRTA, RGB_MOD,
- 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_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_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_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_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_ansi_87(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-uint16_t prev;
-bool siri;
-
-void matrix_scan_user(void) {
- if (siri) {
- if (timer_elapsed(prev) >= 500) {
- siri = false;
- unregister_code(KC_LCMD);
- unregister_code(KC_SPACE);
- }
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MISSION_CONTROL:
- if (record->event.pressed) {
- host_consumer_send(0x29F);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LAUNCHPAD:
- if (record->event.pressed) {
- host_consumer_send(0x2A0);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LOPTN:
- case KC_ROPTN:
- case KC_LCMMD:
- case KC_RCMMD:
- if (record->event.pressed) {
- register_code(mac_keycode[keycode - KC_LOPTN]);
- } else {
- unregister_code(mac_keycode[keycode - KC_LOPTN]);
- }
- return false; // Skip all further processing of this key
- case KC_SIRI:
- if (record->event.pressed) {
- register_code(KC_LCMD);
- register_code(KC_SPACE);
- prev = timer_read() | 1;
- siri = true;
- } else {
- // Do something else when release
- }
- return false; // Skip all further processing of this key
- case KC_TASK:
- case KC_FLXP:
- case KC_SNAP:
- case KC_CRTA:
- if (record->event.pressed) {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- register_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- } else {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- }
- return false; // Skip all further processing of this key
- default:
- return true; // Process all other keycodes normally
- }
-}
diff --git a/keyboards/keychron/q3/rev_0120/keymaps/via/rules.mk b/keyboards/keychron/q3/rev_0120/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb7..000000000000
--- a/keyboards/keychron/q3/rev_0120/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/keychron/q3/rev_0120/readme.md b/keyboards/keychron/q3/rev_0120/readme.md
deleted file mode 100644
index 1e7ea53e233e..000000000000
--- a/keyboards/keychron/q3/rev_0120/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The ANSI variant of the Keychron Q3
diff --git a/keyboards/keychron/q3/rev_0120/rev_0120.c b/keyboards/keychron/q3/rev_0120/rev_0120.c
deleted file mode 100644
index 3958f5466d8f..000000000000
--- a/keyboards/keychron/q3/rev_0120/rev_0120.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_15, G_15, H_15},
- {0, I_16, G_16, H_16},
- {1, I_15, G_15, H_15},
-
- {0, C_1, A_1, B_1},
- {0, C_2, A_2, B_2},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
- {1, I_16, G_16, H_16},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_14, D_14, E_14},
- {0, F_15, D_15, E_15},
- {0, F_16, D_16, E_16},
- {1, I_13, G_13, H_13},
-
- {1, I_1, G_1, H_1},
- {1, I_2, G_2, H_2},
- {1, I_3, G_3, H_3},
- {1, I_4, G_4, H_4},
- {1, I_5, G_5, H_5},
- {1, I_6, G_6, H_6},
- {1, I_7, G_7, H_7},
- {1, I_8, G_8, H_8},
- {1, I_9, G_9, H_9},
- {1, I_10, G_10, H_10},
- {1, I_11, G_11, H_11},
- {1, I_12, G_12, H_12},
- {1, I_14, G_14, H_14},
-
- {1, C_1, A_1, B_1},
- {1, C_3, A_3, B_3},
- {1, C_4, A_4, B_4},
- {1, C_5, A_5, B_5},
- {1, C_6, A_6, B_6},
- {1, C_7, A_7, B_7},
- {1, C_8, A_8, B_8},
- {1, C_9, A_9, B_9},
- {1, C_10, A_10, B_10},
- {1, C_11, A_11, B_11},
- {1, C_12, A_12, B_12},
- {1, C_14, A_14, B_14},
- {1, C_16, A_16, B_16},
-
- {1, F_1, D_1, E_1},
- {1, F_2, D_2, E_2},
- {1, F_3, D_3, E_3},
- {1, F_7, D_7, E_7},
- {1, F_11, D_11, E_11},
- {1, F_12, D_12, E_12},
- {1, F_13, D_13, E_13},
- {1, F_14, D_14, E_14},
- {1, F_15, D_15, E_15},
- {1, F_16, D_16, E_16},
- {1, C_15, A_15, B_15},
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
- { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 },
- { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 },
- { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 },
- { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {85,0}, {98,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {20,28}, {33,28}, {46,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40},
- {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
- {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
-#endif
diff --git a/keyboards/keychron/q3/rev_0120/rev_0120.h b/keyboards/keychron/q3/rev_0120/rev_0120.h
deleted file mode 100644
index 24ac8936f991..000000000000
--- a/keyboards/keychron/q3/rev_0120/rev_0120.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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 "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_ansi_87( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K3E, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K3F, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K3C, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
- K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
- K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K4E \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
- { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \
- { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F } \
-}
diff --git a/keyboards/keychron/q3/rev_0120/rules.mk b/keyboards/keychron/q3/rev_0120/rules.mk
deleted file mode 100644
index 26d88a0545bb..000000000000
--- a/keyboards/keychron/q3/rev_0120/rules.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# MCU name
-MCU = STM32L433
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = no # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = CKLED2001
-EEPROM_DRIVER = transient
-
-# Enter lower-power sleep mode when on the ChibiOS idle thread
-OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/keychron/q3/rev_0121/config.h b/keyboards/keychron/q3/rev_0121/config.h
deleted file mode 100644
index 796b3850ecad..000000000000
--- a/keyboards/keychron/q3/rev_0121/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-/* USB Device descriptor parameter */
-#define PRODUCT_ID 0x0121
-#define DEVICE_VER 0x0100
-
-/* key matrix pins */
-#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
-#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 39
-#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Encoder Configuration */
-#define ENCODERS_PAD_A { A10 }
-#define ENCODERS_PAD_B { A8 }
-#define ENCODER_RESOLUTION 4
-#define ENCODER_DEFAULT_POS 0x3
-
-/* Enable CapsLcok LED */
-#define CAPS_LOCK_LED_INDEX 50
diff --git a/keyboards/keychron/q3/rev_0121/info.json b/keyboards/keychron/q3/rev_0121/info.json
deleted file mode 100644
index 300f6275acce..000000000000
--- a/keyboards/keychron/q3/rev_0121/info.json
+++ /dev/null
@@ -1,203 +0,0 @@
-{
- "keyboard_name": "Keychron Q3",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "layouts": {
- "LAYOUT_ansi_87": {
- "layout": [
- {"label":"Esc", "x":0, "y":0},
- {"label":"F1", "x":1.25, "y":0},
- {"label":"F2", "x":2.25, "y":0},
- {"label":"F3", "x":3.25, "y":0},
- {"label":"F4", "x":4.25, "y":0},
- {"label":"F5", "x":5.5, "y":0},
- {"label":"F5", "x":6.5, "y":0},
- {"label":"F7", "x":7.5, "y":0},
- {"label":"F8", "x":8.5, "y":0},
- {"label":"F9", "x":9.75, "y":0},
- {"label":"F10", "x":10.75, "y":0},
- {"label":"F11", "x":11.75, "y":0},
- {"label":"F12", "x":12.75, "y":0},
- {"label":"Mute", "x":14, "y":0},
- {"label":"Print", "x":15.75, "y":0},
- {"label":"Cortana", "x":16.75, "y":0},
- {"label":"Light", "x":17.75, "y":0},
-
- {"label":"`~", "x":0, "y":1.25},
- {"label":"1!", "x":1, "y":1.25},
- {"label":"2@", "x":2, "y":1.25},
- {"label":"3#", "x":3, "y":1.25},
- {"label":"4$", "x":4, "y":1.25},
- {"label":"5%", "x":5, "y":1.25},
- {"label":"6^", "x":6, "y":1.25},
- {"label":"7&", "x":7, "y":1.25},
- {"label":"8*", "x":8, "y":1.25},
- {"label":"9(", "x":9, "y":1.25},
- {"label":"0)", "x":10, "y":1.25},
- {"label":"-_", "x":11, "y":1.25},
- {"label":"=+", "x":12, "y":1.25},
- {"label":"Backspace", "x":13, "y":1.25, "w":2},
- {"label":"Insert", "x":15.75, "y":1.25},
- {"label":"Home", "x":16.75, "y":1.25},
- {"label":"Page Up", "x":17.75, "y":1.25},
-
- {"label":"Tab", "x":0, "y":2.25, "w":1.5},
- {"label":"Q", "x":1.5, "y":2.25},
- {"label":"W", "x":2.5, "y":2.25},
- {"label":"E", "x":3.5, "y":2.25},
- {"label":"R", "x":4.5, "y":2.25},
- {"label":"T", "x":5.5, "y":2.25},
- {"label":"Y", "x":6.5, "y":2.25},
- {"label":"U", "x":7.5, "y":2.25},
- {"label":"I", "x":8.5, "y":2.25},
- {"label":"O", "x":9.5, "y":2.25},
- {"label":"P", "x":10.5, "y":2.25},
- {"label":"[{", "x":11.5, "y":2.25},
- {"label":"]}", "x":12.5, "y":2.25},
- {"label":"\\|", "x":13.5, "y":2.25, "w":1.5},
- {"label":"Delete", "x":15.75, "y":2.25},
- {"label":"End", "x":16.75, "y":2.25},
- {"label":"Page Down", "x":17.75, "y":2.25},
-
- {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
- {"label":"A", "x":1.75, "y":3.25},
- {"label":"S", "x":2.75, "y":3.25},
- {"label":"D", "x":3.75, "y":3.25},
- {"label":"F", "x":4.75, "y":3.25},
- {"label":"G", "x":5.75, "y":3.25},
- {"label":"H", "x":6.75, "y":3.25},
- {"label":"J", "x":7.75, "y":3.25},
- {"label":"K", "x":8.75, "y":3.25},
- {"label":"L", "x":9.75, "y":3.25},
- {"label":";:", "x":10.75, "y":3.25},
- {"label":"'\"", "x":11.75, "y":3.25},
- {"label":"Enter", "x":12.75, "y":3.25, "w":2.25},
-
- {"label":"Left Shift", "x":0, "y":4.25, "w":2.25},
- {"label":"Z", "x":2.25, "y":4.25},
- {"label":"X", "x":3.25, "y":4.25},
- {"label":"C", "x":4.25, "y":4.25},
- {"label":"V", "x":5.25, "y":4.25},
- {"label":"B", "x":6.25, "y":4.25},
- {"label":"N", "x":7.25, "y":4.25},
- {"label":"M", "x":8.25, "y":4.25},
- {"label":",<", "x":9.25, "y":4.25},
- {"label":".>", "x":10.25, "y":4.25},
- {"label":"/?", "x":11.25, "y":4.25},
- {"label":"Right Shift", "x":12.25, "y":4.25, "w":2.75},
- {"label":"Up", "x":16.75, "y":4.25},
-
- {"label":"Left Ctrl", "x":0, "y":5.25, "w":1.25},
- {"label":"Left Win", "x":1.25, "y":5.25, "w":1.25},
- {"label":"Left Alt", "x":2.5, "y":5.25, "w":1.25},
- {"label":"Space", "x":3.75, "y":5.25, "w":6.25},
- {"label":"Right Alt", "x":10, "y":5.25, "w":1.25},
- {"label":"Right Win", "x":11.25, "y":5.25, "w":1.25},
- {"label":"Fn", "x":12.5, "y":5.25, "w":1.25},
- {"label":"Right Ctrl", "x":13.75, "y":5.25, "w":1.25},
- {"label":"Left", "x":15.75, "y":5.25},
- {"label":"Down", "x":16.75, "y":5.25},
- {"label":"Right", "x":17.75, "y":5.25}
- ]
- },
- "LAYOUT_all": {
- "layout": [
- {"label":"Esc", "x":0, "y":0.5},
- {"label":"F1", "x":1.25, "y":0.5},
- {"label":"F2", "x":2.25, "y":0.5},
- {"label":"F3", "x":3.25, "y":0.5},
- {"label":"F4", "x":4.25, "y":0.5},
- {"label":"F5", "x":5.5, "y":0.5},
- {"label":"F5", "x":6.5, "y":0.5},
- {"label":"F7", "x":7.5, "y":0.5},
- {"label":"F8", "x":8.5, "y":0.5},
- {"label":"F9", "x":9.75, "y":0.5},
- {"label":"F10", "x":10.75, "y":0.5},
- {"label":"F11", "x":11.75, "y":0.5},
- {"label":"F12", "x":12.75, "y":0.5},
- {"label":"CCW", "x":13.9, "y":0, "w":0.6, "h":0.5},
- {"label":"Mute", "x":14, "y":0.5},
- {"label":"CW", "x":14.5, "y":0, "w":0.6, "h":0.5},
- {"label":"Print", "x":15.75, "y":0.5},
- {"label":"Cortana", "x":16.75, "y":0.5},
- {"label":"Light", "x":17.75, "y":0.5},
-
- {"label":"`~", "x":0, "y":1.75},
- {"label":"1!", "x":1, "y":1.75},
- {"label":"2@", "x":2, "y":1.75},
- {"label":"3#", "x":3, "y":1.75},
- {"label":"4$", "x":4, "y":1.75},
- {"label":"5%", "x":5, "y":1.75},
- {"label":"6^", "x":6, "y":1.75},
- {"label":"7&", "x":7, "y":1.75},
- {"label":"8*", "x":8, "y":1.75},
- {"label":"9(", "x":9, "y":1.75},
- {"label":"0)", "x":10, "y":1.75},
- {"label":"-_", "x":11, "y":1.75},
- {"label":"=+", "x":12, "y":1.75},
- {"label":"Backspace", "x":13, "y":1.75, "w":2},
- {"label":"Insert", "x":15.75, "y":1.75},
- {"label":"Home", "x":16.75, "y":1.75},
- {"label":"Page Up", "x":17.75, "y":1.75},
-
- {"label":"Tab", "x":0, "y":2.75, "w":1.5},
- {"label":"Q", "x":1.5, "y":2.75},
- {"label":"W", "x":2.5, "y":2.75},
- {"label":"E", "x":3.5, "y":2.75},
- {"label":"R", "x":4.5, "y":2.75},
- {"label":"T", "x":5.5, "y":2.75},
- {"label":"Y", "x":6.5, "y":2.75},
- {"label":"U", "x":7.5, "y":2.75},
- {"label":"I", "x":8.5, "y":2.75},
- {"label":"O", "x":9.5, "y":2.75},
- {"label":"P", "x":10.5, "y":2.75},
- {"label":"[{", "x":11.5, "y":2.75},
- {"label":"]}", "x":12.5, "y":2.75},
- {"label":"\\|", "x":13.5, "y":2.75, "w":1.5},
- {"label":"Delete", "x":15.75, "y":2.75},
- {"label":"End", "x":16.75, "y":2.75},
- {"label":"Page Down", "x":17.75, "y":2.75},
-
- {"label":"Caps Lock", "x":0, "y":3.75, "w":1.75},
- {"label":"A", "x":1.75, "y":3.75},
- {"label":"S", "x":2.75, "y":3.75},
- {"label":"D", "x":3.75, "y":3.75},
- {"label":"F", "x":4.75, "y":3.75},
- {"label":"G", "x":5.75, "y":3.75},
- {"label":"H", "x":6.75, "y":3.75},
- {"label":"J", "x":7.75, "y":3.75},
- {"label":"K", "x":8.75, "y":3.75},
- {"label":"L", "x":9.75, "y":3.75},
- {"label":";:", "x":10.75, "y":3.75},
- {"label":"'\"", "x":11.75, "y":3.75},
- {"label":"Enter", "x":12.75, "y":3.75, "w":2.25},
-
- {"label":"Left Shift", "x":0, "y":4.75, "w":2.25},
- {"label":"Z", "x":2.25, "y":4.75},
- {"label":"X", "x":3.25, "y":4.75},
- {"label":"C", "x":4.25, "y":4.75},
- {"label":"V", "x":5.25, "y":4.75},
- {"label":"B", "x":6.25, "y":4.75},
- {"label":"N", "x":7.25, "y":4.75},
- {"label":"M", "x":8.25, "y":4.75},
- {"label":",<", "x":9.25, "y":4.75},
- {"label":".>", "x":10.25, "y":4.75},
- {"label":"/?", "x":11.25, "y":4.75},
- {"label":"Right Shift", "x":12.25, "y":4.75, "w":2.75},
- {"label":"Up", "x":16.75, "y":4.75},
-
- {"label":"Left Ctrl", "x":0, "y":5.75, "w":1.25},
- {"label":"Left Win", "x":1.25, "y":5.75, "w":1.25},
- {"label":"Left Alt", "x":2.5, "y":5.75, "w":1.25},
- {"label":"Space", "x":3.75, "y":5.75, "w":6.25},
- {"label":"Right Alt", "x":10, "y":5.75, "w":1.25},
- {"label":"Right Win", "x":11.25, "y":5.75, "w":1.25},
- {"label":"Fn", "x":12.5, "y":5.75, "w":1.25},
- {"label":"Right Ctrl", "x":13.75, "y":5.75, "w":1.25},
- {"label":"Left", "x":15.75, "y":5.75},
- {"label":"Down", "x":16.75, "y":5.75},
- {"label":"Right", "x":17.75, "y":5.75}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q3/rev_0121/keymaps/default/keymap.c b/keyboards/keychron/q3/rev_0121/keymaps/default/keymap.c
deleted file mode 100644
index 699aa41cc64e..000000000000
--- a/keyboards/keychron/q3/rev_0121/keymaps/default/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-enum layers{
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-enum custom_keycodes {
- KC_MISSION_CONTROL = SAFE_RANGE,
- KC_LAUNCHPAD,
- KC_LOPTN,
- KC_ROPTN,
- KC_LCMMD,
- KC_RCMMD,
- KC_SIRI,
- KC_TASK_VIEW,
- KC_FILE_EXPLORER,
- KC_SCREEN_SHOT,
- KC_CORTANA
-};
-
-#define KC_MCTL KC_MISSION_CONTROL
-#define KC_LPAD KC_LAUNCHPAD
-#define KC_TASK KC_TASK_VIEW
-#define KC_FLXP KC_FILE_EXPLORER
-#define KC_SNAP KC_SCREEN_SHOT
-#define KC_CRTA KC_CORTANA
-
-typedef struct PACKED {
- uint8_t len;
- uint8_t keycode[3];
-} key_combination_t;
-
-key_combination_t key_comb_list[4] = {
- {2, {KC_LWIN, KC_TAB}},
- {2, {KC_LWIN, KC_E}},
- {3, {KC_LSFT, KC_LCMD, KC_4}},
- {2, {KC_LWIN, KC_C}}
-};
-
-static uint8_t mac_keycode[4] = { KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_87(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_SNAP, KC_SIRI, RGB_MOD,
- 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_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_ansi_87(
- KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [WIN_BASE] = LAYOUT_ansi_87(
- 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_MUTE, KC_PSCR, KC_CRTA, RGB_MOD,
- 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_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_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_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_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_ansi_87(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-uint16_t prev;
-bool siri;
-
-void matrix_scan_user(void) {
- if (siri) {
- if (timer_elapsed(prev) >= 500) {
- siri = false;
- unregister_code(KC_LCMD);
- unregister_code(KC_SPACE);
- }
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MISSION_CONTROL:
- if (record->event.pressed) {
- host_consumer_send(0x29F);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LAUNCHPAD:
- if (record->event.pressed) {
- host_consumer_send(0x2A0);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LOPTN:
- case KC_ROPTN:
- case KC_LCMMD:
- case KC_RCMMD:
- if (record->event.pressed) {
- register_code(mac_keycode[keycode - KC_LOPTN]);
- } else {
- unregister_code(mac_keycode[keycode - KC_LOPTN]);
- }
- return false; // Skip all further processing of this key
- case KC_SIRI:
- if (record->event.pressed) {
- register_code(KC_LCMD);
- register_code(KC_SPACE);
- prev = timer_read() | 1;
- siri = true;
- } else {
- // Do something else when release
- }
- return false; // Skip all further processing of this key
- case KC_TASK:
- case KC_FLXP:
- case KC_SNAP:
- case KC_CRTA:
- if (record->event.pressed) {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- register_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- } else {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- }
- return false; // Skip all further processing of this key
- default:
- return true; // Process all other keycodes normally
- }
-}
diff --git a/keyboards/keychron/q3/rev_0121/keymaps/via/keymap.c b/keyboards/keychron/q3/rev_0121/keymaps/via/keymap.c
deleted file mode 100644
index 40fff018570f..000000000000
--- a/keyboards/keychron/q3/rev_0121/keymaps/via/keymap.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-enum layers{
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-enum custom_keycodes {
- KC_MISSION_CONTROL = USER00,
- KC_LAUNCHPAD,
- KC_LOPTN,
- KC_ROPTN,
- KC_LCMMD,
- KC_RCMMD,
- KC_SIRI,
- KC_TASK_VIEW,
- KC_FILE_EXPLORER,
- KC_SCREEN_SHOT,
- KC_CORTANA
-};
-
-#define KC_MCTL KC_MISSION_CONTROL
-#define KC_LPAD KC_LAUNCHPAD
-#define KC_TASK KC_TASK_VIEW
-#define KC_FLXP KC_FILE_EXPLORER
-#define KC_SNAP KC_SCREEN_SHOT
-#define KC_CRTA KC_CORTANA
-
-typedef struct PACKED {
- uint8_t len;
- uint8_t keycode[3];
-} key_combination_t;
-
-key_combination_t key_comb_list[4] = {
- {2, {KC_LWIN, KC_TAB}},
- {2, {KC_LWIN, KC_E}},
- {3, {KC_LSFT, KC_LCMD, KC_4}},
- {2, {KC_LWIN, KC_C}}
-};
-
-static uint8_t mac_keycode[4] = { KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_all(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_VOLD, KC_MUTE, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,
- 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_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_all(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_VAD, RGB_TOG, RGB_VAI, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [WIN_BASE] = LAYOUT_all(
- 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_VOLD, KC_MUTE, KC_VOLU, KC_PSCR, KC_CRTA, RGB_MOD,
- 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_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_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_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_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_all(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAD, RGB_TOG, RGB_VAI, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE)
-
-#define ENCODERS 1
-static uint8_t encoder_state[ENCODERS] = {0};
-static keypos_t encoder_cw[ENCODERS] = {{ 8, 5 }};
-static keypos_t encoder_ccw[ENCODERS] = {{ 7, 5 }};
-
-void encoder_action_unregister(void) {
- for (int index = 0; index < ENCODERS; ++index) {
- if (encoder_state[index]) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
- .pressed = false,
- .time = (timer_read() | 1)
- };
- encoder_state[index] = 0;
- action_exec(encoder_event);
- }
- }
-}
-
-void encoder_action_register(uint8_t index, bool clockwise) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
- .pressed = true,
- .time = (timer_read() | 1)
- };
- encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
- action_exec(encoder_event);
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- encoder_action_register(index, clockwise);
- return false;
-};
-
-#endif
-
-uint16_t prev;
-bool siri;
-
-void matrix_scan_user(void) {
- if (siri) {
- if (timer_elapsed(prev) >= 500) {
- siri = false;
- unregister_code(KC_LCMD);
- unregister_code(KC_SPACE);
- }
- }
-#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE)
- encoder_action_unregister();
-#endif
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MISSION_CONTROL:
- if (record->event.pressed) {
- host_consumer_send(0x29F);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LAUNCHPAD:
- if (record->event.pressed) {
- host_consumer_send(0x2A0);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LOPTN:
- case KC_ROPTN:
- case KC_LCMMD:
- case KC_RCMMD:
- if (record->event.pressed) {
- register_code(mac_keycode[keycode - KC_LOPTN]);
- } else {
- unregister_code(mac_keycode[keycode - KC_LOPTN]);
- }
- return false; // Skip all further processing of this key
- case KC_SIRI:
- if (record->event.pressed) {
- register_code(KC_LCMD);
- register_code(KC_SPACE);
- prev = timer_read() | 1;
- siri = true;
- } else {
- // Do something else when release
- }
- return false; // Skip all further processing of this key
- case KC_TASK:
- case KC_FLXP:
- case KC_SNAP:
- case KC_CRTA:
- if (record->event.pressed) {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- register_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- } else {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- }
- return false; // Skip all further processing of this key
- default:
- return true; // Process all other keycodes normally
- }
-}
diff --git a/keyboards/keychron/q3/rev_0121/keymaps/via/rules.mk b/keyboards/keychron/q3/rev_0121/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb7..000000000000
--- a/keyboards/keychron/q3/rev_0121/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/keychron/q3/rev_0121/readme.md b/keyboards/keychron/q3/rev_0121/readme.md
deleted file mode 100644
index 9dbbbd6b1073..000000000000
--- a/keyboards/keychron/q3/rev_0121/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# The ANSI variant of the Keychron Q3
-
-- Enable rotary encoder support.
-- Turn colckwise to increase volume and turn anti-colckwise to decrease volume.
-- Press top right key pushbutton to mute.
diff --git a/keyboards/keychron/q3/rev_0121/rev_0121.c b/keyboards/keychron/q3/rev_0121/rev_0121.c
deleted file mode 100644
index 40f3a8494107..000000000000
--- a/keyboards/keychron/q3/rev_0121/rev_0121.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_15, G_15, H_15},
- {0, I_16, G_16, H_16},
- {1, I_15, G_15, H_15},
-
- {0, C_1, A_1, B_1},
- {0, C_2, A_2, B_2},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
- {1, I_16, G_16, H_16},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_14, D_14, E_14},
- {0, F_15, D_15, E_15},
- {0, F_16, D_16, E_16},
- {1, I_13, G_13, H_13},
-
- {1, I_1, G_1, H_1},
- {1, I_2, G_2, H_2},
- {1, I_3, G_3, H_3},
- {1, I_4, G_4, H_4},
- {1, I_5, G_5, H_5},
- {1, I_6, G_6, H_6},
- {1, I_7, G_7, H_7},
- {1, I_8, G_8, H_8},
- {1, I_9, G_9, H_9},
- {1, I_10, G_10, H_10},
- {1, I_11, G_11, H_11},
- {1, I_12, G_12, H_12},
- {1, I_14, G_14, H_14},
-
- {1, C_1, A_1, B_1},
- {1, C_3, A_3, B_3},
- {1, C_4, A_4, B_4},
- {1, C_5, A_5, B_5},
- {1, C_6, A_6, B_6},
- {1, C_7, A_7, B_7},
- {1, C_8, A_8, B_8},
- {1, C_9, A_9, B_9},
- {1, C_10, A_10, B_10},
- {1, C_11, A_11, B_11},
- {1, C_12, A_12, B_12},
- {1, C_14, A_14, B_14},
- {1, C_16, A_16, B_16},
-
- {1, F_1, D_1, E_1},
- {1, F_2, D_2, E_2},
- {1, F_3, D_3, E_3},
- {1, F_7, D_7, E_7},
- {1, F_11, D_11, E_11},
- {1, F_12, D_12, E_12},
- {1, F_13, D_13, E_13},
- {1, F_14, D_14, E_14},
- {1, F_15, D_15, E_15},
- {1, F_16, D_16, E_16},
- {1, C_15, A_15, B_15},
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
- { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 },
- { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 },
- { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 },
- { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40},
- {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
- {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
-#endif
-
-#ifdef ENCODER_ENABLE
-
-bool encoder_update_kb(uint8_t index, bool clockwise) {
- if (!encoder_update_user(index, clockwise)) { return false; }
- if (index == 0) {
- if (clockwise) {
- tap_code_delay(KC_VOLU, TAP_CODE_DELAY);
- } else {
- tap_code_delay(KC_VOLD, TAP_CODE_DELAY);
- }
- }
- return true;
-}
-
-#endif
diff --git a/keyboards/keychron/q3/rev_0121/rev_0121.h b/keyboards/keychron/q3/rev_0121/rev_0121.h
deleted file mode 100644
index 0de224424b2d..000000000000
--- a/keyboards/keychron/q3/rev_0121/rev_0121.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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 "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_all( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K57, K0D, K58, K0E, K0F, K3E, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K3F, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K3C, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
- K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
- K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K4E \
- ) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
- { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \
- { K50, K51, K52, XXX, XXX, XXX, K56, K57, K58, XXX, K5A, K5B, K5C, K5D, K5E, K5F } \
- }
-#define LAYOUT_ansi_87( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K3E, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K3F, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K3C, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
- K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
- K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K4E \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
- { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \
- { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F } \
-}
diff --git a/keyboards/keychron/q3/rev_0121/rules.mk b/keyboards/keychron/q3/rev_0121/rules.mk
deleted file mode 100644
index 2c3e6b177e4c..000000000000
--- a/keyboards/keychron/q3/rev_0121/rules.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# MCU name
-MCU = STM32L433
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = CKLED2001
-EEPROM_DRIVER = transient
-
-# Enter lower-power sleep mode when on the ChibiOS idle thread
-OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
-
-# custom matrix setup
-CUSTOM_MATRIX = lite
-
-SRC += matrix.c
diff --git a/keyboards/keychron/q3/rev_0122/config.h b/keyboards/keychron/q3/rev_0122/config.h
deleted file mode 100644
index 045dd05f2aec..000000000000
--- a/keyboards/keychron/q3/rev_0122/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-/* USB Device descriptor parameter */
-#define PRODUCT_ID 0x0122
-#define DEVICE_VER 0x0100
-
-/* key matrix pins */
-#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
-#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, A8, A9, A10, H3 }
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 40
-#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Enable caps-lock LED */
-#define CAPS_LOCK_LED_INDEX 49
diff --git a/keyboards/keychron/q3/rev_0122/info.json b/keyboards/keychron/q3/rev_0122/info.json
deleted file mode 100644
index 368c96ef1495..000000000000
--- a/keyboards/keychron/q3/rev_0122/info.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "keyboard_name": "Keychron Q3",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "layouts": {
- "LAYOUT_iso_88": {
- "layout": [
- {"label":"Esc", "x":0, "y":0},
- {"label":"F1", "x":2, "y":0},
- {"label":"F2", "x":3, "y":0},
- {"label":"F3", "x":4, "y":0},
- {"label":"F4", "x":5, "y":0},
- {"label":"F5", "x":6.5, "y":0},
- {"label":"F5", "x":7.5, "y":0},
- {"label":"F7", "x":8.5, "y":0},
- {"label":"F8", "x":9.5, "y":0},
- {"label":"F9", "x":11, "y":0},
- {"label":"F10", "x":12, "y":0},
- {"label":"F11", "x":13, "y":0},
- {"label":"F12", "x":14, "y":0},
- {"label":"Print", "x":15.25, "y":0},
- {"label":"Cortana", "x":16.25, "y":0},
- {"label":"Light", "x":17.25, "y":0},
-
- {"label":"`~", "x":0, "y":1.25},
- {"label":"1!", "x":1, "y":1.25},
- {"label":"2@", "x":2, "y":1.25},
- {"label":"3#", "x":3, "y":1.25},
- {"label":"4$", "x":4, "y":1.25},
- {"label":"5%", "x":5, "y":1.25},
- {"label":"6^", "x":6, "y":1.25},
- {"label":"7&", "x":7, "y":1.25},
- {"label":"8*", "x":8, "y":1.25},
- {"label":"9(", "x":9, "y":1.25},
- {"label":"0)", "x":10, "y":1.25},
- {"label":"-_", "x":11, "y":1.25},
- {"label":"=+", "x":12, "y":1.25},
- {"label":"Backspace", "x":13, "y":1.25, "w":2},
- {"label":"Insert", "x":15.25, "y":1.25},
- {"label":"Home", "x":16.25, "y":1.25},
- {"label":"Page Up", "x":17.25, "y":1.25},
-
- {"label":"Tab", "x":0, "y":2.25, "w":1.5},
- {"label":"Q", "x":1.5, "y":2.25},
- {"label":"W", "x":2.5, "y":2.25},
- {"label":"E", "x":3.5, "y":2.25},
- {"label":"R", "x":4.5, "y":2.25},
- {"label":"T", "x":5.5, "y":2.25},
- {"label":"Y", "x":6.5, "y":2.25},
- {"label":"U", "x":7.5, "y":2.25},
- {"label":"I", "x":8.5, "y":2.25},
- {"label":"O", "x":9.5, "y":2.25},
- {"label":"P", "x":10.5, "y":2.25},
- {"label":"[{", "x":11.5, "y":2.25},
- {"label":"]}", "x":12.5, "y":2.25},
- {"label":"Delete", "x":15.25, "y":2.25},
- {"label":"End", "x":16.25, "y":2.25},
- {"label":"Page Down", "x":17.25, "y":2.25},
-
- {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
- {"label":"A", "x":1.75, "y":3.25},
- {"label":"S", "x":2.75, "y":3.25},
- {"label":"D", "x":3.75, "y":3.25},
- {"label":"F", "x":4.75, "y":3.25},
- {"label":"G", "x":5.75, "y":3.25},
- {"label":"H", "x":6.75, "y":3.25},
- {"label":"J", "x":7.75, "y":3.25},
- {"label":"K", "x":8.75, "y":3.25},
- {"label":"L", "x":9.75, "y":3.25},
- {"label":";:", "x":10.75, "y":3.25},
- {"label":"'\"", "x":11.75, "y":3.25},
- {"label":"#~", "x":12.75, "y":3.25},
- {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2},
-
- {"label":"Left Shift", "x":0, "y":4.25, "w":1.25},
- {"label":"\\|", "x":1.25, "y":4.25},
- {"label":"Z", "x":2.25, "y":4.25},
- {"label":"X", "x":3.25, "y":4.25},
- {"label":"C", "x":4.25, "y":4.25},
- {"label":"V", "x":5.25, "y":4.25},
- {"label":"B", "x":6.25, "y":4.25},
- {"label":"N", "x":7.25, "y":4.25},
- {"label":"M", "x":8.25, "y":4.25},
- {"label":",<", "x":9.25, "y":4.25},
- {"label":".>", "x":10.25, "y":4.25},
- {"label":"/?", "x":11.25, "y":4.25},
- {"label":"Right Shift", "x":12.25, "y":4.25, "w":2.75},
- {"label":"Up", "x":16.25, "y":4.25},
-
- {"label":"Left Ctrl", "x":0, "y":5.25, "w":1.25},
- {"label":"Left Win", "x":1.25, "y":5.25, "w":1.25},
- {"label":"Left Alt", "x":2.5, "y":5.25, "w":1.25},
- {"label":"Space", "x":3.75, "y":5.25, "w":6.25},
- {"label":"Right Alt", "x":10, "y":5.25, "w":1.25},
- {"label":"Right Win", "x":11.25, "y":5.25, "w":1.25},
- {"label":"Fn", "x":12.5, "y":5.25, "w":1.25},
- {"label":"Right Ctrl", "x":13.75, "y":5.25, "w":1.25},
- {"label":"Left", "x":15.25, "y":5.25},
- {"label":"Down", "x":16.25, "y":5.25},
- {"label":"Right", "x":17.25, "y":5.25}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q3/rev_0122/keymaps/default/keymap.c b/keyboards/keychron/q3/rev_0122/keymaps/default/keymap.c
deleted file mode 100644
index deb5713c47d8..000000000000
--- a/keyboards/keychron/q3/rev_0122/keymaps/default/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-enum layers{
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-enum custom_keycodes {
- KC_MISSION_CONTROL = SAFE_RANGE,
- KC_LAUNCHPAD,
- KC_LOPTN,
- KC_ROPTN,
- KC_LCMMD,
- KC_RCMMD,
- KC_SIRI,
- KC_TASK_VIEW,
- KC_FILE_EXPLORER,
- KC_SCREEN_SHOT,
- KC_CORTANA
-};
-
-#define KC_MCTL KC_MISSION_CONTROL
-#define KC_LPAD KC_LAUNCHPAD
-#define KC_TASK KC_TASK_VIEW
-#define KC_FLXP KC_FILE_EXPLORER
-#define KC_SNAP KC_SCREEN_SHOT
-#define KC_CRTA KC_CORTANA
-
-typedef struct PACKED {
- uint8_t len;
- uint8_t keycode[3];
-} key_combination_t;
-
-key_combination_t key_comb_list[4] = {
- {2, {KC_LWIN, KC_TAB}},
- {2, {KC_LWIN, KC_E}},
- {3, {KC_LSFT, KC_LCMD, KC_4}},
- {2, {KC_LWIN, KC_C}}
-};
-
-static uint8_t mac_keycode[4] = { KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_iso_88(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,
- 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_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_iso_88(
- KC_TRNS, 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_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [WIN_BASE] = LAYOUT_iso_88(
- 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_CRTA, RGB_MOD,
- 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_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_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_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_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_iso_88(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-uint16_t prev;
-bool siri;
-
-void matrix_scan_user(void) {
- if (siri) {
- if (timer_elapsed(prev) >= 500) {
- siri = false;
- unregister_code(KC_LCMD);
- unregister_code(KC_SPACE);
- }
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MISSION_CONTROL:
- if (record->event.pressed) {
- host_consumer_send(0x29F);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LAUNCHPAD:
- if (record->event.pressed) {
- host_consumer_send(0x2A0);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LOPTN:
- case KC_ROPTN:
- case KC_LCMMD:
- case KC_RCMMD:
- if (record->event.pressed) {
- register_code(mac_keycode[keycode - KC_LOPTN]);
- } else {
- unregister_code(mac_keycode[keycode - KC_LOPTN]);
- }
- return false; // Skip all further processing of this key
- case KC_SIRI:
- if (record->event.pressed) {
- register_code(KC_LCMD);
- register_code(KC_SPACE);
- prev = timer_read() | 1;
- siri = true;
- } else {
- // Do something else when release
- }
- return false; // Skip all further processing of this key
- case KC_TASK:
- case KC_FLXP:
- case KC_SNAP:
- case KC_CRTA:
- if (record->event.pressed) {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- register_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- } else {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- }
- return false; // Skip all further processing of this key
- default:
- return true; // Process all other keycodes normally
- }
-}
diff --git a/keyboards/keychron/q3/rev_0122/keymaps/via/keymap.c b/keyboards/keychron/q3/rev_0122/keymaps/via/keymap.c
deleted file mode 100644
index 430c189c54df..000000000000
--- a/keyboards/keychron/q3/rev_0122/keymaps/via/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-enum layers{
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-enum custom_keycodes {
- KC_MISSION_CONTROL = USER00,
- KC_LAUNCHPAD,
- KC_LOPTN,
- KC_ROPTN,
- KC_LCMMD,
- KC_RCMMD,
- KC_SIRI,
- KC_TASK_VIEW,
- KC_FILE_EXPLORER,
- KC_SCREEN_SHOT,
- KC_CORTANA
-};
-
-#define KC_MCTL KC_MISSION_CONTROL
-#define KC_LPAD KC_LAUNCHPAD
-#define KC_TASK KC_TASK_VIEW
-#define KC_FLXP KC_FILE_EXPLORER
-#define KC_SNAP KC_SCREEN_SHOT
-#define KC_CRTA KC_CORTANA
-
-typedef struct PACKED {
- uint8_t len;
- uint8_t keycode[3];
-} key_combination_t;
-
-key_combination_t key_comb_list[4] = {
- {2, {KC_LWIN, KC_TAB}},
- {2, {KC_LWIN, KC_E}},
- {3, {KC_LSFT, KC_LCMD, KC_4}},
- {2, {KC_LWIN, KC_C}}
-};
-
-static uint8_t mac_keycode[4] = { KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_iso_88(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,
- 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_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_iso_88(
- KC_TRNS, 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_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [WIN_BASE] = LAYOUT_iso_88(
- 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_CRTA, RGB_MOD,
- 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_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_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_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_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_iso_88(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-uint16_t prev;
-bool siri;
-
-void matrix_scan_user(void) {
- if (siri) {
- if (timer_elapsed(prev) >= 500) {
- siri = false;
- unregister_code(KC_LCMD);
- unregister_code(KC_SPACE);
- }
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MISSION_CONTROL:
- if (record->event.pressed) {
- host_consumer_send(0x29F);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LAUNCHPAD:
- if (record->event.pressed) {
- host_consumer_send(0x2A0);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LOPTN:
- case KC_ROPTN:
- case KC_LCMMD:
- case KC_RCMMD:
- if (record->event.pressed) {
- register_code(mac_keycode[keycode - KC_LOPTN]);
- } else {
- unregister_code(mac_keycode[keycode - KC_LOPTN]);
- }
- return false; // Skip all further processing of this key
- case KC_SIRI:
- if (record->event.pressed) {
- register_code(KC_LCMD);
- register_code(KC_SPACE);
- prev = timer_read() | 1;
- siri = true;
- } else {
- // Do something else when release
- }
- return false; // Skip all further processing of this key
- case KC_TASK:
- case KC_FLXP:
- case KC_SNAP:
- case KC_CRTA:
- if (record->event.pressed) {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- register_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- } else {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- }
- return false; // Skip all further processing of this key
- default:
- return true; // Process all other keycodes normally
- }
-}
diff --git a/keyboards/keychron/q3/rev_0122/keymaps/via/rules.mk b/keyboards/keychron/q3/rev_0122/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb7..000000000000
--- a/keyboards/keychron/q3/rev_0122/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/keychron/q3/rev_0122/readme.md b/keyboards/keychron/q3/rev_0122/readme.md
deleted file mode 100644
index 69db8ff53268..000000000000
--- a/keyboards/keychron/q3/rev_0122/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The ISO variant of the Keychron Q3
diff --git a/keyboards/keychron/q3/rev_0122/rev_0122.c b/keyboards/keychron/q3/rev_0122/rev_0122.c
deleted file mode 100644
index b509c627627f..000000000000
--- a/keyboards/keychron/q3/rev_0122/rev_0122.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_15, G_15, H_15},
- {0, I_16, G_16, H_16},
- {1, I_15, G_15, H_15},
-
- {0, C_1, A_1, B_1},
- {0, C_2, A_2, B_2},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
- {1, I_16, G_16, H_16},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_15, D_15, E_15},
- {0, F_16, D_16, E_16},
- {1, I_13, G_13, H_13},
-
- {1, I_1, G_1, H_1},
- {1, I_2, G_2, H_2},
- {1, I_3, G_3, H_3},
- {1, I_4, G_4, H_4},
- {1, I_5, G_5, H_5},
- {1, I_6, G_6, H_6},
- {1, I_7, G_7, H_7},
- {1, I_8, G_8, H_8},
- {1, I_9, G_9, H_9},
- {1, I_10, G_10, H_10},
- {1, I_11, G_11, H_11},
- {1, I_12, G_12, H_12},
- {1, I_14, G_14, H_14},
- {0, F_14, D_14, E_14},
-
- {1, C_1, A_1, B_1},
- {1, C_2, A_2, B_2},
- {1, C_3, A_3, B_3},
- {1, C_4, A_4, B_4},
- {1, C_5, A_5, B_5},
- {1, C_6, A_6, B_6},
- {1, C_7, A_7, B_7},
- {1, C_8, A_8, B_8},
- {1, C_9, A_9, B_9},
- {1, C_10, A_10, B_10},
- {1, C_11, A_11, B_11},
- {1, C_12, A_12, B_12},
- {1, C_14, A_14, B_14},
- {1, C_16, A_16, B_16},
-
- {1, F_1, D_1, E_1},
- {1, F_2, D_2, E_2},
- {1, F_3, D_3, E_3},
- {1, F_7, D_7, E_7},
- {1, F_11, D_11, E_11},
- {1, F_12, D_12, E_12},
- {1, F_13, D_13, E_13},
- {1, F_14, D_14, E_14},
- {1, F_15, D_15, E_15},
- {1, F_16, D_16, E_16},
- {1, C_15, A_15, B_15},
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
- { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 },
- { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 },
- { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 },
- { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
- {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
- {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
-#endif
diff --git a/keyboards/keychron/q3/rev_0122/rev_0122.h b/keyboards/keychron/q3/rev_0122/rev_0122.h
deleted file mode 100644
index 440764a8e302..000000000000
--- a/keyboards/keychron/q3/rev_0122/rev_0122.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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 "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_iso_88( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K3E, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K3F, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K3C, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K2D, \
- K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
- K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K4E \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
- { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \
- { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F } \
-}
diff --git a/keyboards/keychron/q3/rev_0122/rules.mk b/keyboards/keychron/q3/rev_0122/rules.mk
deleted file mode 100644
index 26d88a0545bb..000000000000
--- a/keyboards/keychron/q3/rev_0122/rules.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# MCU name
-MCU = STM32L433
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = no # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = CKLED2001
-EEPROM_DRIVER = transient
-
-# Enter lower-power sleep mode when on the ChibiOS idle thread
-OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/keychron/q3/rev_0123/config.h b/keyboards/keychron/q3/rev_0123/config.h
deleted file mode 100644
index 3bd04d05b804..000000000000
--- a/keyboards/keychron/q3/rev_0123/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-/* USB Device descriptor parameter */
-#define PRODUCT_ID 0x0123
-#define DEVICE_VER 0x0100
-
-/* key matrix pins */
-#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
-#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 40
-#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Encoder Configuration */
-#define ENCODERS_PAD_A { A10 }
-#define ENCODERS_PAD_B { A8 }
-#define ENCODER_RESOLUTION 4
-#define ENCODER_DEFAULT_POS 0x3
-
-/* Enable caps-lock LED */
-#define CAPS_LOCK_LED_INDEX 49
diff --git a/keyboards/keychron/q3/rev_0123/info.json b/keyboards/keychron/q3/rev_0123/info.json
deleted file mode 100644
index f3a379591295..000000000000
--- a/keyboards/keychron/q3/rev_0123/info.json
+++ /dev/null
@@ -1,205 +0,0 @@
-{
- "keyboard_name": "Keychron Q3",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "layouts": {
- "LAYOUT_iso_88": {
- "layout": [
- {"label":"Esc", "x":0, "y":0},
- {"label":"F1", "x":1.25, "y":0},
- {"label":"F2", "x":2.25, "y":0},
- {"label":"F3", "x":3.25, "y":0},
- {"label":"F4", "x":4.25, "y":0},
- {"label":"F5", "x":5.5, "y":0},
- {"label":"F5", "x":6.5, "y":0},
- {"label":"F7", "x":7.5, "y":0},
- {"label":"F8", "x":8.5, "y":0},
- {"label":"F9", "x":9.75, "y":0},
- {"label":"F10", "x":10.75, "y":0},
- {"label":"F11", "x":11.75, "y":0},
- {"label":"F12", "x":12.75, "y":0},
- {"label":"Mute", "x":14, "y":0},
- {"label":"Print", "x":15.75, "y":0},
- {"label":"Cortana", "x":16.75, "y":0},
- {"label":"Light", "x":17.75, "y":0},
-
- {"label":"`~", "x":0, "y":1.25},
- {"label":"1!", "x":1, "y":1.25},
- {"label":"2@", "x":2, "y":1.25},
- {"label":"3#", "x":3, "y":1.25},
- {"label":"4$", "x":4, "y":1.25},
- {"label":"5%", "x":5, "y":1.25},
- {"label":"6^", "x":6, "y":1.25},
- {"label":"7&", "x":7, "y":1.25},
- {"label":"8*", "x":8, "y":1.25},
- {"label":"9(", "x":9, "y":1.25},
- {"label":"0)", "x":10, "y":1.25},
- {"label":"-_", "x":11, "y":1.25},
- {"label":"=+", "x":12, "y":1.25},
- {"label":"Backspace", "x":13, "y":1.25, "w":2},
- {"label":"Insert", "x":15.25, "y":1.25},
- {"label":"Home", "x":16.25, "y":1.25},
- {"label":"Page Up", "x":17.25, "y":1.25},
-
- {"label":"Tab", "x":0, "y":2.25, "w":1.5},
- {"label":"Q", "x":1.5, "y":2.25},
- {"label":"W", "x":2.5, "y":2.25},
- {"label":"E", "x":3.5, "y":2.25},
- {"label":"R", "x":4.5, "y":2.25},
- {"label":"T", "x":5.5, "y":2.25},
- {"label":"Y", "x":6.5, "y":2.25},
- {"label":"U", "x":7.5, "y":2.25},
- {"label":"I", "x":8.5, "y":2.25},
- {"label":"O", "x":9.5, "y":2.25},
- {"label":"P", "x":10.5, "y":2.25},
- {"label":"[{", "x":11.5, "y":2.25},
- {"label":"]}", "x":12.5, "y":2.25},
- {"label":"Delete", "x":15.25, "y":2.25},
- {"label":"End", "x":16.25, "y":2.25},
- {"label":"Page Down", "x":17.25, "y":2.25},
-
- {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
- {"label":"A", "x":1.75, "y":3.25},
- {"label":"S", "x":2.75, "y":3.25},
- {"label":"D", "x":3.75, "y":3.25},
- {"label":"F", "x":4.75, "y":3.25},
- {"label":"G", "x":5.75, "y":3.25},
- {"label":"H", "x":6.75, "y":3.25},
- {"label":"J", "x":7.75, "y":3.25},
- {"label":"K", "x":8.75, "y":3.25},
- {"label":"L", "x":9.75, "y":3.25},
- {"label":";:", "x":10.75, "y":3.25},
- {"label":"'\"", "x":11.75, "y":3.25},
- {"label":"#~", "x":12.75, "y":3.25},
- {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2},
-
- {"label":"Left Shift", "x":0, "y":4.25, "w":1.25},
- {"label":"\\|", "x":1.25, "y":4.25},
- {"label":"Z", "x":2.25, "y":4.25},
- {"label":"X", "x":3.25, "y":4.25},
- {"label":"C", "x":4.25, "y":4.25},
- {"label":"V", "x":5.25, "y":4.25},
- {"label":"B", "x":6.25, "y":4.25},
- {"label":"N", "x":7.25, "y":4.25},
- {"label":"M", "x":8.25, "y":4.25},
- {"label":",<", "x":9.25, "y":4.25},
- {"label":".>", "x":10.25, "y":4.25},
- {"label":"/?", "x":11.25, "y":4.25},
- {"label":"Right Shift", "x":12.25, "y":4.25, "w":2.75},
- {"label":"Up", "x":16.25, "y":4.25},
-
- {"label":"Left Ctrl", "x":0, "y":5.25, "w":1.25},
- {"label":"Left Win", "x":1.25, "y":5.25, "w":1.25},
- {"label":"Left Alt", "x":2.5, "y":5.25, "w":1.25},
- {"label":"Space", "x":3.75, "y":5.25, "w":6.25},
- {"label":"Right Alt", "x":10, "y":5.25, "w":1.25},
- {"label":"Right Win", "x":11.25, "y":5.25, "w":1.25},
- {"label":"Fn", "x":12.5, "y":5.25, "w":1.25},
- {"label":"Right Ctrl", "x":13.75, "y":5.25, "w":1.25},
- {"label":"Left", "x":15.25, "y":5.25},
- {"label":"Down", "x":16.25, "y":5.25},
- {"label":"Right", "x":17.25, "y":5.25}
- ]
- },
- "LAYOUT_all": {
- "layout": [
- {"label":"Esc", "x":0, "y":0.5},
- {"label":"F1", "x":1.25, "y":0.5},
- {"label":"F2", "x":2.25, "y":0.5},
- {"label":"F3", "x":3.25, "y":0.5},
- {"label":"F4", "x":4.25, "y":0.5},
- {"label":"F5", "x":5.5, "y":0.5},
- {"label":"F5", "x":6.5, "y":0.5},
- {"label":"F7", "x":7.5, "y":0.5},
- {"label":"F8", "x":8.5, "y":0.5},
- {"label":"F9", "x":9.75, "y":0.5},
- {"label":"F10", "x":10.75, "y":0.5},
- {"label":"F11", "x":11.75, "y":0.5},
- {"label":"F12", "x":12.75, "y":0.5},
- {"label":"CCW", "x":13.9, "y":0, "w":0.6, "h":0.5},
- {"label":"Mute", "x":14, "y":0.5},
- {"label":"CW", "x":14.5, "y":0, "w":0.6, "h":0.5},
- {"label":"Print", "x":15.75, "y":0.5},
- {"label":"Cortana", "x":16.75, "y":0.5},
- {"label":"Light", "x":17.75, "y":0.5},
-
- {"label":"`~", "x":0, "y":1.75},
- {"label":"1!", "x":1, "y":1.75},
- {"label":"2@", "x":2, "y":1.75},
- {"label":"3#", "x":3, "y":1.75},
- {"label":"4$", "x":4, "y":1.75},
- {"label":"5%", "x":5, "y":1.75},
- {"label":"6^", "x":6, "y":1.75},
- {"label":"7&", "x":7, "y":1.75},
- {"label":"8*", "x":8, "y":1.75},
- {"label":"9(", "x":9, "y":1.75},
- {"label":"0)", "x":10, "y":1.75},
- {"label":"-_", "x":11, "y":1.75},
- {"label":"=+", "x":12, "y":1.75},
- {"label":"Backspace", "x":13, "y":1.75, "w":2},
- {"label":"Insert", "x":15.75, "y":1.75},
- {"label":"Home", "x":16.75, "y":1.75},
- {"label":"Page Up", "x":17.75, "y":1.75},
-
- {"label":"Tab", "x":0, "y":2.75, "w":1.5},
- {"label":"Q", "x":1.5, "y":2.75},
- {"label":"W", "x":2.5, "y":2.75},
- {"label":"E", "x":3.5, "y":2.75},
- {"label":"R", "x":4.5, "y":2.75},
- {"label":"T", "x":5.5, "y":2.75},
- {"label":"Y", "x":6.5, "y":2.75},
- {"label":"U", "x":7.5, "y":2.75},
- {"label":"I", "x":8.5, "y":2.75},
- {"label":"O", "x":9.5, "y":2.75},
- {"label":"P", "x":10.5, "y":2.75},
- {"label":"[{", "x":11.5, "y":2.75},
- {"label":"]}", "x":12.5, "y":2.75},
- {"label":"Delete", "x":15.75, "y":2.75},
- {"label":"End", "x":16.75, "y":2.75},
- {"label":"Page Down", "x":17.75, "y":2.75},
-
- {"label":"Caps Lock", "x":0, "y":3.75, "w":1.75},
- {"label":"A", "x":1.75, "y":3.75},
- {"label":"S", "x":2.75, "y":3.75},
- {"label":"D", "x":3.75, "y":3.75},
- {"label":"F", "x":4.75, "y":3.75},
- {"label":"G", "x":5.75, "y":3.75},
- {"label":"H", "x":6.75, "y":3.75},
- {"label":"J", "x":7.75, "y":3.75},
- {"label":"K", "x":8.75, "y":3.75},
- {"label":"L", "x":9.75, "y":3.75},
- {"label":";:", "x":10.75, "y":3.75},
- {"label":"'\"", "x":11.75, "y":3.75},
- {"label":"#~", "x":12.75, "y":3.75},
- {"label":"Enter", "x":13.75, "y":2.75, "w":1.25, "h":2},
-
- {"label":"Left Shift", "x":0, "y":4.25, "w":1.25},
- {"label":"\\|", "x":1.25, "y":4.25},
- {"label":"Z", "x":2.25, "y":4.25},
- {"label":"X", "x":3.25, "y":4.25},
- {"label":"C", "x":4.25, "y":4.25},
- {"label":"V", "x":5.25, "y":4.25},
- {"label":"B", "x":6.25, "y":4.25},
- {"label":"N", "x":7.25, "y":4.25},
- {"label":"M", "x":8.25, "y":4.25},
- {"label":",<", "x":9.25, "y":4.25},
- {"label":".>", "x":10.25, "y":4.25},
- {"label":"/?", "x":11.25, "y":4.25},
- {"label":"Right Shift", "x":12.25, "y":4.25, "w":2.75},
- {"label":"Up", "x":16.25, "y":4.25},
-
- {"label":"Left Ctrl", "x":0, "y":5.75, "w":1.25},
- {"label":"Left Win", "x":1.25, "y":5.75, "w":1.25},
- {"label":"Left Alt", "x":2.5, "y":5.75, "w":1.25},
- {"label":"Space", "x":3.75, "y":5.75, "w":6.25},
- {"label":"Right Alt", "x":10, "y":5.75, "w":1.25},
- {"label":"Right Win", "x":11.25, "y":5.75, "w":1.25},
- {"label":"Fn", "x":12.5, "y":5.75, "w":1.25},
- {"label":"Right Ctrl", "x":13.75, "y":5.75, "w":1.25},
- {"label":"Left", "x":15.75, "y":5.75},
- {"label":"Down", "x":16.75, "y":5.75},
- {"label":"Right", "x":17.75, "y":5.75}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q3/rev_0123/keymaps/default/keymap.c b/keyboards/keychron/q3/rev_0123/keymaps/default/keymap.c
deleted file mode 100644
index e51a4df56360..000000000000
--- a/keyboards/keychron/q3/rev_0123/keymaps/default/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-enum layers{
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-enum custom_keycodes {
- KC_MISSION_CONTROL = SAFE_RANGE,
- KC_LAUNCHPAD,
- KC_LOPTN,
- KC_ROPTN,
- KC_LCMMD,
- KC_RCMMD,
- KC_SIRI,
- KC_TASK_VIEW,
- KC_FILE_EXPLORER,
- KC_SCREEN_SHOT,
- KC_CORTANA
-};
-
-#define KC_MCTL KC_MISSION_CONTROL
-#define KC_LPAD KC_LAUNCHPAD
-#define KC_TASK KC_TASK_VIEW
-#define KC_FLXP KC_FILE_EXPLORER
-#define KC_SNAP KC_SCREEN_SHOT
-#define KC_CRTA KC_CORTANA
-
-typedef struct PACKED {
- uint8_t len;
- uint8_t keycode[3];
-} key_combination_t;
-
-key_combination_t key_comb_list[4] = {
- {2, {KC_LWIN, KC_TAB}},
- {2, {KC_LWIN, KC_E}},
- {3, {KC_LSFT, KC_LCMD, KC_4}},
- {2, {KC_LWIN, KC_C}}
-};
-
-static uint8_t mac_keycode[4] = { KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_iso_88(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_SNAP, KC_SIRI, RGB_MOD,
- 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_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_iso_88(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [WIN_BASE] = LAYOUT_iso_88(
- 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_MUTE, KC_PSCR, KC_CRTA, RGB_MOD,
- 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_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_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_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_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_iso_88(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_TOG, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-uint16_t prev;
-bool siri;
-
-void matrix_scan_user(void) {
- if (siri) {
- if (timer_elapsed(prev) >= 500) {
- siri = false;
- unregister_code(KC_LCMD);
- unregister_code(KC_SPACE);
- }
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MISSION_CONTROL:
- if (record->event.pressed) {
- host_consumer_send(0x29F);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LAUNCHPAD:
- if (record->event.pressed) {
- host_consumer_send(0x2A0);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LOPTN:
- case KC_ROPTN:
- case KC_LCMMD:
- case KC_RCMMD:
- if (record->event.pressed) {
- register_code(mac_keycode[keycode - KC_LOPTN]);
- } else {
- unregister_code(mac_keycode[keycode - KC_LOPTN]);
- }
- return false; // Skip all further processing of this key
- case KC_SIRI:
- if (record->event.pressed) {
- register_code(KC_LCMD);
- register_code(KC_SPACE);
- prev = timer_read() | 1;;
- siri = true;
- } else {
- // Do something else when release
- }
- return false; // Skip all further processing of this key
- case KC_TASK:
- case KC_FLXP:
- case KC_SNAP:
- case KC_CRTA:
- if (record->event.pressed) {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- register_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- } else {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- }
- return false; // Skip all further processing of this key
- default:
- return true; // Process all other keycodes normally
- }
-}
diff --git a/keyboards/keychron/q3/rev_0123/keymaps/via/keymap.c b/keyboards/keychron/q3/rev_0123/keymaps/via/keymap.c
deleted file mode 100644
index 8653d0e98e47..000000000000
--- a/keyboards/keychron/q3/rev_0123/keymaps/via/keymap.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-enum layers{
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-enum custom_keycodes {
- KC_MISSION_CONTROL = USER00,
- KC_LAUNCHPAD,
- KC_LOPTN,
- KC_ROPTN,
- KC_LCMMD,
- KC_RCMMD,
- KC_SIRI,
- KC_TASK_VIEW,
- KC_FILE_EXPLORER,
- KC_SCREEN_SHOT,
- KC_CORTANA
-};
-
-#define KC_MCTL KC_MISSION_CONTROL
-#define KC_LPAD KC_LAUNCHPAD
-#define KC_TASK KC_TASK_VIEW
-#define KC_FLXP KC_FILE_EXPLORER
-#define KC_SNAP KC_SCREEN_SHOT
-#define KC_CRTA KC_CORTANA
-
-typedef struct PACKED {
- uint8_t len;
- uint8_t keycode[3];
-} key_combination_t;
-
-key_combination_t key_comb_list[4] = {
- {2, {KC_LWIN, KC_TAB}},
- {2, {KC_LWIN, KC_E}},
- {3, {KC_LSFT, KC_LCMD, KC_4}},
- {2, {KC_LWIN, KC_C}}
-};
-
-static uint8_t mac_keycode[4] = { KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_all(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_VOLD, KC_MUTE, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,
- 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_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_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_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_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN,MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_all(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_VAD, RGB_TOG, RGB_VAI, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [WIN_BASE] = LAYOUT_all(
- 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_VOLD, KC_MUTE, KC_VOLU, KC_PSCR, KC_CRTA, RGB_MOD,
- 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_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_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_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_LCTL, KC_LCMD, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_all(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAD, RGB_TOG, RGB_VAI, KC_TRNS, KC_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-uint16_t prev;
-bool siri;
-
-#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE)
-
-#define ENCODERS 1
-static uint8_t encoder_state[ENCODERS] = {0};
-static keypos_t encoder_cw[ENCODERS] = {{ 8, 5 }};
-static keypos_t encoder_ccw[ENCODERS] = {{ 7, 5 }};
-
-void encoder_action_unregister(void) {
- for (int index = 0; index < ENCODERS; ++index) {
- if (encoder_state[index]) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
- .pressed = false,
- .time = (timer_read() | 1)
- };
- encoder_state[index] = 0;
- action_exec(encoder_event);
- }
- }
-}
-
-void encoder_action_register(uint8_t index, bool clockwise) {
- keyevent_t encoder_event = (keyevent_t) {
- .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
- .pressed = true,
- .time = (timer_read() | 1)
- };
- encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
- action_exec(encoder_event);
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- encoder_action_register(index, clockwise);
- return false;
-};
-
-#endif
-
-void matrix_scan_user(void) {
- if (siri) {
- if (timer_elapsed(prev) >= 500) {
- siri = false;
- unregister_code(KC_LCMD);
- unregister_code(KC_SPACE);
- }
- }
-#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE)
- encoder_action_unregister();
-#endif
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MISSION_CONTROL:
- if (record->event.pressed) {
- host_consumer_send(0x29F);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LAUNCHPAD:
- if (record->event.pressed) {
- host_consumer_send(0x2A0);
- } else {
- host_consumer_send(0);
- }
- return false; // Skip all further processing of this key
- case KC_LOPTN:
- case KC_ROPTN:
- case KC_LCMMD:
- case KC_RCMMD:
- if (record->event.pressed) {
- register_code(mac_keycode[keycode - KC_LOPTN]);
- } else {
- unregister_code(mac_keycode[keycode - KC_LOPTN]);
- }
- return false; // Skip all further processing of this key
- case KC_SIRI:
- if (record->event.pressed) {
- register_code(KC_LCMD);
- register_code(KC_SPACE);
- prev = timer_read() | 1;
- siri = true;
- } else {
- // Do something else when release
- }
- return false; // Skip all further processing of this key
- case KC_TASK:
- case KC_FLXP:
- case KC_SNAP:
- case KC_CRTA:
- if (record->event.pressed) {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- register_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- } else {
- for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) {
- unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]);
- }
- }
- return false; // Skip all further processing of this key
- default:
- return true; // Process all other keycodes normally
- }
-}
diff --git a/keyboards/keychron/q3/rev_0123/keymaps/via/rules.mk b/keyboards/keychron/q3/rev_0123/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb7..000000000000
--- a/keyboards/keychron/q3/rev_0123/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/keychron/q3/rev_0123/readme.md b/keyboards/keychron/q3/rev_0123/readme.md
deleted file mode 100644
index fe903e689da8..000000000000
--- a/keyboards/keychron/q3/rev_0123/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# The ISO variant of the Keychron Q3
-
-- Enable EC11 rotary encoder.
-- Turn colckwise to increase volume and turn anti-colckwise to decrease volume.
-- Press top right key pushbutton to mute.
diff --git a/keyboards/keychron/q3/rev_0123/rev_0123.c b/keyboards/keychron/q3/rev_0123/rev_0123.c
deleted file mode 100644
index b1094d4006cb..000000000000
--- a/keyboards/keychron/q3/rev_0123/rev_0123.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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
-
-const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_15, G_15, H_15},
- {0, I_16, G_16, H_16},
- {1, I_15, G_15, H_15},
-
- {0, C_1, A_1, B_1},
- {0, C_2, A_2, B_2},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
- {1, I_16, G_16, H_16},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_15, D_15, E_15},
- {0, F_16, D_16, E_16},
- {1, I_13, G_13, H_13},
-
- {1, I_1, G_1, H_1},
- {1, I_2, G_2, H_2},
- {1, I_3, G_3, H_3},
- {1, I_4, G_4, H_4},
- {1, I_5, G_5, H_5},
- {1, I_6, G_6, H_6},
- {1, I_7, G_7, H_7},
- {1, I_8, G_8, H_8},
- {1, I_9, G_9, H_9},
- {1, I_10, G_10, H_10},
- {1, I_11, G_11, H_11},
- {1, I_12, G_12, H_12},
- {1, I_14, G_14, H_14},
- {0, F_14, D_14, E_14},
-
- {1, C_1, A_1, B_1},
- {1, C_2, A_2, B_2},
- {1, C_3, A_3, B_3},
- {1, C_4, A_4, B_4},
- {1, C_5, A_5, B_5},
- {1, C_6, A_6, B_6},
- {1, C_7, A_7, B_7},
- {1, C_8, A_8, B_8},
- {1, C_9, A_9, B_9},
- {1, C_10, A_10, B_10},
- {1, C_11, A_11, B_11},
- {1, C_12, A_12, B_12},
- {1, C_14, A_14, B_14},
- {1, C_16, A_16, B_16},
-
- {1, F_1, D_1, E_1},
- {1, F_2, D_2, E_2},
- {1, F_3, D_3, E_3},
- {1, F_7, D_7, E_7},
- {1, F_11, D_11, E_11},
- {1, F_12, D_12, E_12},
- {1, F_13, D_13, E_13},
- {1, F_14, D_14, E_14},
- {1, F_15, D_15, E_15},
- {1, F_16, D_16, E_16},
- {1, C_15, A_15, B_15},
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
- { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 },
- { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 },
- { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 },
- { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
- {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
- {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
-#endif
-
-#ifdef ENCODER_ENABLE
-
-bool encoder_update_kb(uint8_t index, bool clockwise) {
- if (!encoder_update_user(index, clockwise)) { return false; }
- if (index == 0) {
- if (clockwise) {
- tap_code_delay(KC_VOLU, TAP_CODE_DELAY);
- } else {
- tap_code_delay(KC_VOLD, TAP_CODE_DELAY);
- }
- }
- return true;
-}
-
-#endif
diff --git a/keyboards/keychron/q3/rev_0123/rev_0123.h b/keyboards/keychron/q3/rev_0123/rev_0123.h
deleted file mode 100644
index 54f6aa2188a0..000000000000
--- a/keyboards/keychron/q3/rev_0123/rev_0123.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * 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 "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_iso_88( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K3E, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K3F, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K3C, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K2D, \
- K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
- K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K4E \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
- { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \
- { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F } \
-}
-#define LAYOUT_all( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K57, K0D, K58, K0E, K0F, K3E, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K3F, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K3C, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K2D, \
- K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
- K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K4E \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
- { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \
- { K50, K51, K52, XXX, XXX, XXX, K56, K57, K58, XXX, K5A, K5B, K5C, K5D, K5E, K5F } \
-}
diff --git a/keyboards/keychron/q3/rev_0123/rules.mk b/keyboards/keychron/q3/rev_0123/rules.mk
deleted file mode 100644
index 2c3e6b177e4c..000000000000
--- a/keyboards/keychron/q3/rev_0123/rules.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# MCU name
-MCU = STM32L433
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = CKLED2001
-EEPROM_DRIVER = transient
-
-# Enter lower-power sleep mode when on the ChibiOS idle thread
-OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
-
-# custom matrix setup
-CUSTOM_MATRIX = lite
-
-SRC += matrix.c