From 0826e4f99b60b55f2f92284e54ff0a6d2d0c42e8 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Mon, 7 Feb 2022 12:50:50 +0800 Subject: [PATCH 01/34] [Keychron C1 Series] Initial step to restructure - Consolidated some files in RGB variant especially. - Currently, Plain variant has only been restructured. Will appreciate your review about my commits. Co-Authored-By: dexter93 Co-Authored-By: IsaacDynamo <61521674+IsaacDynamo@users.noreply.github.com> Co-Authored-By: noldevin <85706813+noldevin@users.noreply.github.com> Co-Authored-By: edlf <93866317+edlf@users.noreply.github.com> --- keyboards/keychron/c1-old/plain/config.h | 67 ++++++ keyboards/keychron/c1-old/plain/info.json | 18 ++ .../plain/keymaps/default/keymap.c | 0 .../{c1 => c1-old}/plain/keymaps/via/keymap.c | 0 .../{c1 => c1-old}/plain/keymaps/via/rules.mk | 0 keyboards/keychron/c1-old/plain/plain.c | 92 ++++++++ .../white/white.h => c1-old/plain/plain.h} | 0 keyboards/keychron/c1-old/plain/plain.json | 188 +++++++++++++++++ .../{c1/white => c1-old/plain}/rand.c | 0 .../keychron/{c1 => c1-old}/plain/readme.md | 0 keyboards/keychron/c1-old/plain/rules.mk | 23 ++ .../keychron/{c1 => c1-old}/rgb/config.h | 0 .../keychron/{c1 => c1-old}/rgb/config_led.c | 0 .../keychron/{c1 => c1-old}/rgb/config_led.h | 0 .../keychron/{c1 => c1-old}/rgb/info.json | 0 .../rgb/keymaps/default/keymap.c | 0 .../{c1 => c1-old}/rgb/keymaps/via/config.h | 0 .../{c1 => c1-old}/rgb/keymaps/via/keymap.c | 0 .../{c1 => c1-old}/rgb/keymaps/via/rules.mk | 0 .../keychron/{c1 => c1-old}/rgb/readme.md | 0 keyboards/keychron/{c1 => c1-old}/rgb/rgb.c | 0 keyboards/keychron/{c1 => c1-old}/rgb/rgb.h | 0 .../keychron/{c1 => c1-old}/rgb/rgb.json | 0 .../keychron/{c1 => c1-old}/rgb/rules.mk | 0 .../keychron/{c1 => c1-old}/white/config.h | 0 .../keychron/{c1 => c1-old}/white/info.json | 0 .../white/keychron_c1_white_via.json | 0 .../white/keymaps/default/keymap.c | 0 .../{c1 => c1-old}/white/keymaps/via/keymap.c | 0 .../white/keymaps/via/no_idle_thread.c | 0 .../{c1 => c1-old}/white/keymaps/via/rules.mk | 0 keyboards/keychron/c1-old/white/rand.c | 31 +++ .../keychron/{c1 => c1-old}/white/readme.md | 0 .../{c1 => c1-old}/white/rgb_matrix_kb.inc | 0 .../keychron/{c1 => c1-old}/white/rules.mk | 0 .../keychron/{c1 => c1-old}/white/white.c | 0 keyboards/keychron/c1-old/white/white.h | 31 +++ keyboards/keychron/c1-remake/plain/config.h | 67 ++++++ keyboards/keychron/c1-remake/plain/info.json | 18 ++ .../c1-remake/plain/keymaps/default/keymap.c | 102 +++++++++ .../c1-remake/plain/keymaps/via/keymap.c | 3 + .../c1-remake/plain/keymaps/via/rules.mk | 1 + keyboards/keychron/c1-remake/plain/plain.c | 92 ++++++++ keyboards/keychron/c1-remake/plain/plain.h | 31 +++ keyboards/keychron/c1-remake/plain/plain.json | 188 +++++++++++++++++ keyboards/keychron/c1-remake/plain/rand.c | 31 +++ keyboards/keychron/c1-remake/plain/readme.md | 74 +++++++ keyboards/keychron/c1-remake/plain/rules.mk | 23 ++ keyboards/keychron/c1-remake/rgb/config.h | 120 +++++++++++ keyboards/keychron/c1-remake/rgb/info.json | 18 ++ .../c1-remake/rgb/keymaps/default/keymap.c | 113 ++++++++++ .../c1-remake/rgb/keymaps/via/config.h | 4 + .../c1-remake/rgb/keymaps/via/keymap.c | 113 ++++++++++ .../c1-remake/rgb/keymaps/via/rules.mk | 1 + keyboards/keychron/c1-remake/rgb/readme.md | 85 ++++++++ keyboards/keychron/c1-remake/rgb/rgb.c | 101 +++++++++ keyboards/keychron/c1-remake/rgb/rgb.h | 22 ++ keyboards/keychron/c1-remake/rgb/rgb.json | 196 ++++++++++++++++++ keyboards/keychron/c1-remake/rgb/rules.mk | 32 +++ keyboards/keychron/c1-remake/white/config.h | 91 ++++++++ keyboards/keychron/c1-remake/white/info.json | 18 ++ .../white/keychron_c1_white_via.json | 185 +++++++++++++++++ .../c1-remake/white/keymaps/default/keymap.c | 100 +++++++++ .../c1-remake/white/keymaps/via/keymap.c | 3 + .../white/keymaps/via/no_idle_thread.c | 30 +++ .../c1-remake/white/keymaps/via/rules.mk | 21 ++ keyboards/keychron/c1-remake/white/rand.c | 31 +++ keyboards/keychron/c1-remake/white/readme.md | 86 ++++++++ .../c1-remake/white/rgb_matrix_kb.inc | 40 ++++ keyboards/keychron/c1-remake/white/rules.mk | 25 +++ keyboards/keychron/c1-remake/white/white.c | 122 +++++++++++ keyboards/keychron/c1-remake/white/white.h | 31 +++ keyboards/keychron/c1/c1.c | 19 ++ keyboards/keychron/c1/c1.h | 29 +++ keyboards/keychron/c1/config.h | 35 ++++ .../keychron/c1/keymaps/plain_ansi/keymap.c | 102 +++++++++ .../keychron/c1/keymaps/plain_via/keymap.c | 3 + .../keychron/c1/keymaps/plain_via/rules.mk | 1 + keyboards/keychron/c1/plain/config.h | 16 +- keyboards/keychron/c1/plain/rules.mk | 12 +- keyboards/keychron/c1/readme.md | 74 +++++++ keyboards/keychron/c1/rules.mk | 11 + 82 files changed, 2944 insertions(+), 26 deletions(-) create mode 100644 keyboards/keychron/c1-old/plain/config.h create mode 100644 keyboards/keychron/c1-old/plain/info.json rename keyboards/keychron/{c1 => c1-old}/plain/keymaps/default/keymap.c (100%) rename keyboards/keychron/{c1 => c1-old}/plain/keymaps/via/keymap.c (100%) rename keyboards/keychron/{c1 => c1-old}/plain/keymaps/via/rules.mk (100%) create mode 100644 keyboards/keychron/c1-old/plain/plain.c rename keyboards/keychron/{c1/white/white.h => c1-old/plain/plain.h} (100%) create mode 100644 keyboards/keychron/c1-old/plain/plain.json rename keyboards/keychron/{c1/white => c1-old/plain}/rand.c (100%) rename keyboards/keychron/{c1 => c1-old}/plain/readme.md (100%) create mode 100644 keyboards/keychron/c1-old/plain/rules.mk rename keyboards/keychron/{c1 => c1-old}/rgb/config.h (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/config_led.c (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/config_led.h (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/info.json (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/keymaps/default/keymap.c (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/keymaps/via/config.h (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/keymaps/via/keymap.c (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/keymaps/via/rules.mk (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/readme.md (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/rgb.c (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/rgb.h (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/rgb.json (100%) rename keyboards/keychron/{c1 => c1-old}/rgb/rules.mk (100%) rename keyboards/keychron/{c1 => c1-old}/white/config.h (100%) rename keyboards/keychron/{c1 => c1-old}/white/info.json (100%) rename keyboards/keychron/{c1 => c1-old}/white/keychron_c1_white_via.json (100%) rename keyboards/keychron/{c1 => c1-old}/white/keymaps/default/keymap.c (100%) rename keyboards/keychron/{c1 => c1-old}/white/keymaps/via/keymap.c (100%) rename keyboards/keychron/{c1 => c1-old}/white/keymaps/via/no_idle_thread.c (100%) rename keyboards/keychron/{c1 => c1-old}/white/keymaps/via/rules.mk (100%) create mode 100644 keyboards/keychron/c1-old/white/rand.c rename keyboards/keychron/{c1 => c1-old}/white/readme.md (100%) rename keyboards/keychron/{c1 => c1-old}/white/rgb_matrix_kb.inc (100%) rename keyboards/keychron/{c1 => c1-old}/white/rules.mk (100%) rename keyboards/keychron/{c1 => c1-old}/white/white.c (100%) create mode 100644 keyboards/keychron/c1-old/white/white.h create mode 100644 keyboards/keychron/c1-remake/plain/config.h create mode 100644 keyboards/keychron/c1-remake/plain/info.json create mode 100644 keyboards/keychron/c1-remake/plain/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c1-remake/plain/keymaps/via/keymap.c create mode 100644 keyboards/keychron/c1-remake/plain/keymaps/via/rules.mk create mode 100644 keyboards/keychron/c1-remake/plain/plain.c create mode 100644 keyboards/keychron/c1-remake/plain/plain.h create mode 100644 keyboards/keychron/c1-remake/plain/plain.json create mode 100644 keyboards/keychron/c1-remake/plain/rand.c create mode 100644 keyboards/keychron/c1-remake/plain/readme.md create mode 100644 keyboards/keychron/c1-remake/plain/rules.mk create mode 100644 keyboards/keychron/c1-remake/rgb/config.h create mode 100644 keyboards/keychron/c1-remake/rgb/info.json create mode 100644 keyboards/keychron/c1-remake/rgb/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c1-remake/rgb/keymaps/via/config.h create mode 100644 keyboards/keychron/c1-remake/rgb/keymaps/via/keymap.c create mode 100644 keyboards/keychron/c1-remake/rgb/keymaps/via/rules.mk create mode 100644 keyboards/keychron/c1-remake/rgb/readme.md create mode 100644 keyboards/keychron/c1-remake/rgb/rgb.c create mode 100644 keyboards/keychron/c1-remake/rgb/rgb.h create mode 100644 keyboards/keychron/c1-remake/rgb/rgb.json create mode 100644 keyboards/keychron/c1-remake/rgb/rules.mk create mode 100644 keyboards/keychron/c1-remake/white/config.h create mode 100644 keyboards/keychron/c1-remake/white/info.json create mode 100644 keyboards/keychron/c1-remake/white/keychron_c1_white_via.json create mode 100644 keyboards/keychron/c1-remake/white/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c1-remake/white/keymaps/via/keymap.c create mode 100644 keyboards/keychron/c1-remake/white/keymaps/via/no_idle_thread.c create mode 100644 keyboards/keychron/c1-remake/white/keymaps/via/rules.mk create mode 100644 keyboards/keychron/c1-remake/white/rand.c create mode 100644 keyboards/keychron/c1-remake/white/readme.md create mode 100644 keyboards/keychron/c1-remake/white/rgb_matrix_kb.inc create mode 100644 keyboards/keychron/c1-remake/white/rules.mk create mode 100644 keyboards/keychron/c1-remake/white/white.c create mode 100644 keyboards/keychron/c1-remake/white/white.h create mode 100644 keyboards/keychron/c1/c1.c create mode 100644 keyboards/keychron/c1/c1.h create mode 100644 keyboards/keychron/c1/config.h create mode 100644 keyboards/keychron/c1/keymaps/plain_ansi/keymap.c create mode 100644 keyboards/keychron/c1/keymaps/plain_via/keymap.c create mode 100644 keyboards/keychron/c1/keymaps/plain_via/rules.mk create mode 100644 keyboards/keychron/c1/readme.md create mode 100644 keyboards/keychron/c1/rules.mk diff --git a/keyboards/keychron/c1-old/plain/config.h b/keyboards/keychron/c1-old/plain/config.h new file mode 100644 index 000000000000..b70037a069c3 --- /dev/null +++ b/keyboards/keychron/c1-old/plain/config.h @@ -0,0 +1,67 @@ +/* Copyright 2020 Adam Honse + * Copyright 2020 Dimitris Mantzouranis + * + * 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3434 +#define PRODUCT_ID 0xFE20 +#define DEVICE_VER 0x0001 + +#define MANUFACTURER Keychron +// \x43\x31 is "C1" in ASCII hex, this is used to prevent macro expansion, because C1 is also a pin macro. +#define PRODUCT \x43\x31 +#define DESCRIPTION \x43\x31 QMK + +#define WAIT_FOR_USB +#define USB_MAX_POWER_CONSUMPTION 100 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, D0 } +#define MATRIX_ROW_PINS { C3, C4, C5, C6, C7, C8 } + +/* Keep LED Matrix pins so that we can set them low */ +#define LED_MATRIX_ROW_PINS { C0, C1, C2, D4, C9, C10 } + +/* Connects each switch in the dip switch to the GPIO pin of the MCU */ +#define DIP_SWITCH_PINS { D7 } + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* LED Status indicators */ +#define LED_CAPS_LOCK_PIN B3 +#define LED_PIN_ON_STATE 1 + +#define LED_MAC_PIN B4 +#define LED_WIN_PIN B5 + +/* Enable NKRO by default */ +#define FORCE_NKRO + +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 +#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 1000 + +/* Polling Rate */ +#define USB_POLLING_INTERVAL_MS 1 diff --git a/keyboards/keychron/c1-old/plain/info.json b/keyboards/keychron/c1-old/plain/info.json new file mode 100644 index 000000000000..0a26b78b16a6 --- /dev/null +++ b/keyboards/keychron/c1-old/plain/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "Keychron C1", + "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", + "maintainer": "IsaacDynamo", + "width": 17, + "height": 6, + "layouts": { + "LAYOUT": { + "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Mic", "x":16.25, "y":0}, {"label":"Lamp", "x":17.25, "y":0}, + {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/keychron/c1/plain/keymaps/default/keymap.c b/keyboards/keychron/c1-old/plain/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/c1/plain/keymaps/default/keymap.c rename to keyboards/keychron/c1-old/plain/keymaps/default/keymap.c diff --git a/keyboards/keychron/c1/plain/keymaps/via/keymap.c b/keyboards/keychron/c1-old/plain/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/c1/plain/keymaps/via/keymap.c rename to keyboards/keychron/c1-old/plain/keymaps/via/keymap.c diff --git a/keyboards/keychron/c1/plain/keymaps/via/rules.mk b/keyboards/keychron/c1-old/plain/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/c1/plain/keymaps/via/rules.mk rename to keyboards/keychron/c1-old/plain/keymaps/via/rules.mk diff --git a/keyboards/keychron/c1-old/plain/plain.c b/keyboards/keychron/c1-old/plain/plain.c new file mode 100644 index 000000000000..9e0d1f10eda3 --- /dev/null +++ b/keyboards/keychron/c1-old/plain/plain.c @@ -0,0 +1,92 @@ +/* Copyright 2021 IsaacDynamo + * + * 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 "plain.h" + +// Manage Windows and Mac LEDs +// - Show status of mode switch +// - Turn LEDs off durring USB suspend +static bool mode_leds_show = true; +static bool mode_leds_windows; + +static void mode_leds_update(void){ + writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); + writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); +} + +bool dip_switch_update_kb(uint8_t index, bool active){ + if(index == 0) { + if(active) { // Mac mode + layer_move(MAC_BASE); + } else { // Windows mode + layer_move(WIN_BASE); + } + + // Update mode and update leds + mode_leds_windows = !active; + mode_leds_update(); + } + + dip_switch_update_user(index, active); + return true; +} + +void keyboard_pre_init_kb(void) { + // Setup Win & Mac LED Pins as output + setPinOutput(LED_WIN_PIN); + setPinOutput(LED_MAC_PIN); + + keyboard_pre_init_user(); +} + +void suspend_power_down_kb(void) { + // Turn leds off + mode_leds_show = false; + mode_leds_update(); + + suspend_power_down_user(); +} + +/// TODO: Clean-up workaround +/// Currently the suspend_wakeup_init_kb() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 +/// A workaround is to use housekeeping_task_kb() instead. +void housekeeping_task_kb(void) { + // Turn on + mode_leds_show = true; + mode_leds_update(); + + housekeeping_task_user(); +} + +#if CH_CFG_NO_IDLE_THREAD == TRUE + +# define CYCLES_PER_LOOP 9 +# define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) + +void chThdSleep(sysinterval_t time) { + uint32_t loops = time * LOOP_TIMES; + + for (uint32_t i = 0; i < loops; i++) __NOP(); +} + +/* suspend thread used in usb_main.c */ +msg_t chThdSuspendTimeoutS(thread_reference_t* trp, sysinterval_t timeout) { + osalSysUnlock(); + osalSysLock(); + + return MSG_OK; +} + +#endif /* CH_CFG_NO_IDLE_THREAD */ diff --git a/keyboards/keychron/c1/white/white.h b/keyboards/keychron/c1-old/plain/plain.h similarity index 100% rename from keyboards/keychron/c1/white/white.h rename to keyboards/keychron/c1-old/plain/plain.h diff --git a/keyboards/keychron/c1-old/plain/plain.json b/keyboards/keychron/c1-old/plain/plain.json new file mode 100644 index 000000000000..dd407c47f0a7 --- /dev/null +++ b/keyboards/keychron/c1-old/plain/plain.json @@ -0,0 +1,188 @@ +{ + "name": "Keychron C1", + "lighting": "none", + "vendorId": "0x3434", + "productId": "0xfe20", + "matrix": { + "rows": 6, + "cols": 17 + }, + "layouts": { + "keymap": [ + [ + "0,1", + { + "x": 1 + }, + "0,2", + "0,3", + "0,4", + "0,5", + { + "x": 0.5 + }, + "0,6", + "0,7", + "0,8", + "0,9", + { + "x": 0.5 + }, + "0,10", + "0,11", + "0,12", + "0,13", + { + "x": 0.25 + }, + "0,14", + "0,15", + "0,16" + ], + [ + { + "y": 0.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 2 + }, + "1,13", + { + "x": 0.25 + }, + "1,14", + "1,15", + "1,16" + ], + [ + { + "w": 1.5 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "w": 1.5 + }, + "2,13", + { + "x": 0.25 + }, + "2,14", + "2,15", + "2,16" + ], + [ + { + "w": 1.75 + }, + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "w": 2.25 + }, + "3,13" + ], + [ + { + "w": 2.25 + }, + "4,0", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + "4,11", + { + "w": 2.75 + }, + "4,13", + { + "x": 1.25 + }, + "4,15", + { + "x": 1.25 + } + ], + [ + { + "w": 1.25 + }, + "5,0", + { + "w": 1.25 + }, + "5,1", + { + "w": 1.25 + }, + "5,2", + { + "w": 6.25 + }, + "5,6", + { + "w": 1.25 + }, + "5,10", + { + "w": 1.25 + }, + "5,11", + { + "w": 1.25 + }, + "5,12", + { + "w": 1.25 + }, + "5,13", + { + "x": 0.25 + }, + "5,14", + "5,15", + "5,16" + ] + ] + } +} \ No newline at end of file diff --git a/keyboards/keychron/c1/white/rand.c b/keyboards/keychron/c1-old/plain/rand.c similarity index 100% rename from keyboards/keychron/c1/white/rand.c rename to keyboards/keychron/c1-old/plain/rand.c diff --git a/keyboards/keychron/c1/plain/readme.md b/keyboards/keychron/c1-old/plain/readme.md similarity index 100% rename from keyboards/keychron/c1/plain/readme.md rename to keyboards/keychron/c1-old/plain/readme.md diff --git a/keyboards/keychron/c1-old/plain/rules.mk b/keyboards/keychron/c1-old/plain/rules.mk new file mode 100644 index 000000000000..cf9c8ce55426 --- /dev/null +++ b/keyboards/keychron/c1-old/plain/rules.mk @@ -0,0 +1,23 @@ +# project specific files +SRC = rand.c + +# MCU name +MCU = SN32F268F + +# Build Options +# comment out to disable the options. +# +MAGIC_ENABLE = yes +MAGIC_KEYCODE_ENABLE = yes +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +EXTRAKEY_ENABLE = yes # Audio control and System control +NKRO_ENABLE = yes # USB Nkey Rollover +DIP_SWITCH_ENABLE = yes + +# Custom Key and LED matrix handling +CUSTOM_MATRIX = no +RGB_MATRIX_ENABLE = no + +# Reduce code size +USE_PROCESS_STACKSIZE = 0x1E0 +USE_EXCEPTIONS_STACKSIZE = 0xE0 \ No newline at end of file diff --git a/keyboards/keychron/c1/rgb/config.h b/keyboards/keychron/c1-old/rgb/config.h similarity index 100% rename from keyboards/keychron/c1/rgb/config.h rename to keyboards/keychron/c1-old/rgb/config.h diff --git a/keyboards/keychron/c1/rgb/config_led.c b/keyboards/keychron/c1-old/rgb/config_led.c similarity index 100% rename from keyboards/keychron/c1/rgb/config_led.c rename to keyboards/keychron/c1-old/rgb/config_led.c diff --git a/keyboards/keychron/c1/rgb/config_led.h b/keyboards/keychron/c1-old/rgb/config_led.h similarity index 100% rename from keyboards/keychron/c1/rgb/config_led.h rename to keyboards/keychron/c1-old/rgb/config_led.h diff --git a/keyboards/keychron/c1/rgb/info.json b/keyboards/keychron/c1-old/rgb/info.json similarity index 100% rename from keyboards/keychron/c1/rgb/info.json rename to keyboards/keychron/c1-old/rgb/info.json diff --git a/keyboards/keychron/c1/rgb/keymaps/default/keymap.c b/keyboards/keychron/c1-old/rgb/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/c1/rgb/keymaps/default/keymap.c rename to keyboards/keychron/c1-old/rgb/keymaps/default/keymap.c diff --git a/keyboards/keychron/c1/rgb/keymaps/via/config.h b/keyboards/keychron/c1-old/rgb/keymaps/via/config.h similarity index 100% rename from keyboards/keychron/c1/rgb/keymaps/via/config.h rename to keyboards/keychron/c1-old/rgb/keymaps/via/config.h diff --git a/keyboards/keychron/c1/rgb/keymaps/via/keymap.c b/keyboards/keychron/c1-old/rgb/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/c1/rgb/keymaps/via/keymap.c rename to keyboards/keychron/c1-old/rgb/keymaps/via/keymap.c diff --git a/keyboards/keychron/c1/rgb/keymaps/via/rules.mk b/keyboards/keychron/c1-old/rgb/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/c1/rgb/keymaps/via/rules.mk rename to keyboards/keychron/c1-old/rgb/keymaps/via/rules.mk diff --git a/keyboards/keychron/c1/rgb/readme.md b/keyboards/keychron/c1-old/rgb/readme.md similarity index 100% rename from keyboards/keychron/c1/rgb/readme.md rename to keyboards/keychron/c1-old/rgb/readme.md diff --git a/keyboards/keychron/c1/rgb/rgb.c b/keyboards/keychron/c1-old/rgb/rgb.c similarity index 100% rename from keyboards/keychron/c1/rgb/rgb.c rename to keyboards/keychron/c1-old/rgb/rgb.c diff --git a/keyboards/keychron/c1/rgb/rgb.h b/keyboards/keychron/c1-old/rgb/rgb.h similarity index 100% rename from keyboards/keychron/c1/rgb/rgb.h rename to keyboards/keychron/c1-old/rgb/rgb.h diff --git a/keyboards/keychron/c1/rgb/rgb.json b/keyboards/keychron/c1-old/rgb/rgb.json similarity index 100% rename from keyboards/keychron/c1/rgb/rgb.json rename to keyboards/keychron/c1-old/rgb/rgb.json diff --git a/keyboards/keychron/c1/rgb/rules.mk b/keyboards/keychron/c1-old/rgb/rules.mk similarity index 100% rename from keyboards/keychron/c1/rgb/rules.mk rename to keyboards/keychron/c1-old/rgb/rules.mk diff --git a/keyboards/keychron/c1/white/config.h b/keyboards/keychron/c1-old/white/config.h similarity index 100% rename from keyboards/keychron/c1/white/config.h rename to keyboards/keychron/c1-old/white/config.h diff --git a/keyboards/keychron/c1/white/info.json b/keyboards/keychron/c1-old/white/info.json similarity index 100% rename from keyboards/keychron/c1/white/info.json rename to keyboards/keychron/c1-old/white/info.json diff --git a/keyboards/keychron/c1/white/keychron_c1_white_via.json b/keyboards/keychron/c1-old/white/keychron_c1_white_via.json similarity index 100% rename from keyboards/keychron/c1/white/keychron_c1_white_via.json rename to keyboards/keychron/c1-old/white/keychron_c1_white_via.json diff --git a/keyboards/keychron/c1/white/keymaps/default/keymap.c b/keyboards/keychron/c1-old/white/keymaps/default/keymap.c similarity index 100% rename from keyboards/keychron/c1/white/keymaps/default/keymap.c rename to keyboards/keychron/c1-old/white/keymaps/default/keymap.c diff --git a/keyboards/keychron/c1/white/keymaps/via/keymap.c b/keyboards/keychron/c1-old/white/keymaps/via/keymap.c similarity index 100% rename from keyboards/keychron/c1/white/keymaps/via/keymap.c rename to keyboards/keychron/c1-old/white/keymaps/via/keymap.c diff --git a/keyboards/keychron/c1/white/keymaps/via/no_idle_thread.c b/keyboards/keychron/c1-old/white/keymaps/via/no_idle_thread.c similarity index 100% rename from keyboards/keychron/c1/white/keymaps/via/no_idle_thread.c rename to keyboards/keychron/c1-old/white/keymaps/via/no_idle_thread.c diff --git a/keyboards/keychron/c1/white/keymaps/via/rules.mk b/keyboards/keychron/c1-old/white/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/c1/white/keymaps/via/rules.mk rename to keyboards/keychron/c1-old/white/keymaps/via/rules.mk diff --git a/keyboards/keychron/c1-old/white/rand.c b/keyboards/keychron/c1-old/white/rand.c new file mode 100644 index 000000000000..a1096bbe2b58 --- /dev/null +++ b/keyboards/keychron/c1-old/white/rand.c @@ -0,0 +1,31 @@ +// Small rand() implementation +// +// The libc rand implementation takes to much flash space, so an smaller rand() function is used. +#include "quantum.h" + +int rand(void) +{ + // static unsigned int z4; + unsigned int z1, z2, z3, z4; + int r; + unsigned int b; + + z1 = timer_read32(); + z2 = 12345; + z3 = 12345; + z4 = z1 << 8; + + b = ((z1 << 6) ^ z1) >> 13; + z1 = ((z1 & 4294967294U) << 18) ^ b; + b = ((z2 << 2) ^ z2) >> 27; + z2 = ((z2 & 4294967288U) << 2) ^ b; + b = ((z3 << 13) ^ z3) >> 21; + z3 = ((z3 & 4294967280U) << 7) ^ b; + b = ((z4 << 3) ^ z4) >> 12; + z4 = ((z4 & 4294967168U) << 13) ^ b; + + r = z1 ^ z2 ^ z3 ^ z4; + // z4 = r; + + return r; +} diff --git a/keyboards/keychron/c1/white/readme.md b/keyboards/keychron/c1-old/white/readme.md similarity index 100% rename from keyboards/keychron/c1/white/readme.md rename to keyboards/keychron/c1-old/white/readme.md diff --git a/keyboards/keychron/c1/white/rgb_matrix_kb.inc b/keyboards/keychron/c1-old/white/rgb_matrix_kb.inc similarity index 100% rename from keyboards/keychron/c1/white/rgb_matrix_kb.inc rename to keyboards/keychron/c1-old/white/rgb_matrix_kb.inc diff --git a/keyboards/keychron/c1/white/rules.mk b/keyboards/keychron/c1-old/white/rules.mk similarity index 100% rename from keyboards/keychron/c1/white/rules.mk rename to keyboards/keychron/c1-old/white/rules.mk diff --git a/keyboards/keychron/c1/white/white.c b/keyboards/keychron/c1-old/white/white.c similarity index 100% rename from keyboards/keychron/c1/white/white.c rename to keyboards/keychron/c1-old/white/white.c diff --git a/keyboards/keychron/c1-old/white/white.h b/keyboards/keychron/c1-old/white/white.h new file mode 100644 index 000000000000..d996ca48d968 --- /dev/null +++ b/keyboards/keychron/c1-old/white/white.h @@ -0,0 +1,31 @@ +#pragma once + +#include "quantum.h" + +// Each layer gets a name for readability +enum layer_names { + WIN_BASE = 0, + WIN_FN = 1, + MAC_BASE = 2, + MAC_FN = 3, +}; + +// readability +#define XXX KC_NO + +#define LAYOUT( \ + k00, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + 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, k5g \ +) \ +{ \ + {k00, XXX, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX}, \ + {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, k4f, XXX}, \ + {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g} \ +} diff --git a/keyboards/keychron/c1-remake/plain/config.h b/keyboards/keychron/c1-remake/plain/config.h new file mode 100644 index 000000000000..ae6fcaafce24 --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/config.h @@ -0,0 +1,67 @@ +/* Copyright 2020 Adam Honse + * Copyright 2020 Dimitris Mantzouranis + * + * 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3434 +#define PRODUCT_ID 0xFE20 +#define DEVICE_VER 0x0001 + +#define MANUFACTURER Keychron +// \x43\x31 is "C1" in ASCII hex, this is used to prevent macro expansion, because C1 is also a pin macro. +#define PRODUCT Keychron \x43\x31 +#define DESCRIPTION Keychron \x43\x31 Plain + +#define WAIT_FOR_USB +#define USB_MAX_POWER_CONSUMPTION 100 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, D0 } +#define MATRIX_ROW_PINS { C3, C4, C5, C6, C7, C8 } + +/* Keep LED Matrix pins so that we can set them low */ +#define LED_MATRIX_ROW_PINS { C0, C1, C2, D4, C9, C10 } + +/* Connects each switch in the dip switch to the GPIO pin of the MCU */ +#define DIP_SWITCH_PINS { D7 } + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* LED Status indicators */ +#define LED_CAPS_LOCK_PIN B3 +#define LED_PIN_ON_STATE 1 + +#define LED_MAC_PIN B4 +#define LED_WIN_PIN B5 + +/* Enable NKRO by default */ +#define FORCE_NKRO + +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 +#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 1000 + +/* Polling Rate */ +#define USB_POLLING_INTERVAL_MS 1 diff --git a/keyboards/keychron/c1-remake/plain/info.json b/keyboards/keychron/c1-remake/plain/info.json new file mode 100644 index 000000000000..0a26b78b16a6 --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "Keychron C1", + "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", + "maintainer": "IsaacDynamo", + "width": 17, + "height": 6, + "layouts": { + "LAYOUT": { + "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Mic", "x":16.25, "y":0}, {"label":"Lamp", "x":17.25, "y":0}, + {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/plain/keymaps/default/keymap.c b/keyboards/keychron/c1-remake/plain/keymaps/default/keymap.c new file mode 100644 index 000000000000..16e60e95f6bd --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/keymaps/default/keymap.c @@ -0,0 +1,102 @@ +/* +Copyright 2020 Dimitris Mantzouranis + +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 + +#define KC_TASK LGUI(KC_TAB) // Task viewer +#define KC_FLXP LGUI(KC_E) // Windows file explorer +#define KC_CORT LGUI(KC_C) // Cortana +#define KC_LOCK LGUI(KC_L) // Lock +#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool +#define KC_W_FN MO(WIN_FN) // Windows Fn + +#define KC_MSSN LGUI(KC_F3) // Mission Control +#define KC_FIND LALT(LGUI(KC_SPC)) // Finder +#define KC_SIRI LGUI(KC_SPC) // Siri +#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot +#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool +#define KC_M_FN MO(MAC_FN) // Mac Fn +#define KD_M_LK LCMD(LCTL(KC_Q)) // Mac Lock + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|LOCK| + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [WIN_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, KC_LOCK, \ + 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [WIN_FN] = LAYOUT( \ + RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + /* Mac layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|LOCK| + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [MAC_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, KD_M_LK, \ + 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [MAC_FN] = LAYOUT( \ + RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; diff --git a/keyboards/keychron/c1-remake/plain/keymaps/via/keymap.c b/keyboards/keychron/c1-remake/plain/keymaps/via/keymap.c new file mode 100644 index 000000000000..9b448f5d59ca --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/keymaps/via/keymap.c @@ -0,0 +1,3 @@ +// Include default keymap +// This way the VIA keymap is always up to date with the default keymap +#include "../default/keymap.c" \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/plain/keymaps/via/rules.mk b/keyboards/keychron/c1-remake/plain/keymaps/via/rules.mk new file mode 100644 index 000000000000..74edb2bf0d41 --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE=yes diff --git a/keyboards/keychron/c1-remake/plain/plain.c b/keyboards/keychron/c1-remake/plain/plain.c new file mode 100644 index 000000000000..9e0d1f10eda3 --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/plain.c @@ -0,0 +1,92 @@ +/* Copyright 2021 IsaacDynamo + * + * 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 "plain.h" + +// Manage Windows and Mac LEDs +// - Show status of mode switch +// - Turn LEDs off durring USB suspend +static bool mode_leds_show = true; +static bool mode_leds_windows; + +static void mode_leds_update(void){ + writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); + writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); +} + +bool dip_switch_update_kb(uint8_t index, bool active){ + if(index == 0) { + if(active) { // Mac mode + layer_move(MAC_BASE); + } else { // Windows mode + layer_move(WIN_BASE); + } + + // Update mode and update leds + mode_leds_windows = !active; + mode_leds_update(); + } + + dip_switch_update_user(index, active); + return true; +} + +void keyboard_pre_init_kb(void) { + // Setup Win & Mac LED Pins as output + setPinOutput(LED_WIN_PIN); + setPinOutput(LED_MAC_PIN); + + keyboard_pre_init_user(); +} + +void suspend_power_down_kb(void) { + // Turn leds off + mode_leds_show = false; + mode_leds_update(); + + suspend_power_down_user(); +} + +/// TODO: Clean-up workaround +/// Currently the suspend_wakeup_init_kb() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 +/// A workaround is to use housekeeping_task_kb() instead. +void housekeeping_task_kb(void) { + // Turn on + mode_leds_show = true; + mode_leds_update(); + + housekeeping_task_user(); +} + +#if CH_CFG_NO_IDLE_THREAD == TRUE + +# define CYCLES_PER_LOOP 9 +# define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) + +void chThdSleep(sysinterval_t time) { + uint32_t loops = time * LOOP_TIMES; + + for (uint32_t i = 0; i < loops; i++) __NOP(); +} + +/* suspend thread used in usb_main.c */ +msg_t chThdSuspendTimeoutS(thread_reference_t* trp, sysinterval_t timeout) { + osalSysUnlock(); + osalSysLock(); + + return MSG_OK; +} + +#endif /* CH_CFG_NO_IDLE_THREAD */ diff --git a/keyboards/keychron/c1-remake/plain/plain.h b/keyboards/keychron/c1-remake/plain/plain.h new file mode 100644 index 000000000000..d996ca48d968 --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/plain.h @@ -0,0 +1,31 @@ +#pragma once + +#include "quantum.h" + +// Each layer gets a name for readability +enum layer_names { + WIN_BASE = 0, + WIN_FN = 1, + MAC_BASE = 2, + MAC_FN = 3, +}; + +// readability +#define XXX KC_NO + +#define LAYOUT( \ + k00, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + 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, k5g \ +) \ +{ \ + {k00, XXX, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX}, \ + {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, k4f, XXX}, \ + {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g} \ +} diff --git a/keyboards/keychron/c1-remake/plain/plain.json b/keyboards/keychron/c1-remake/plain/plain.json new file mode 100644 index 000000000000..dd407c47f0a7 --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/plain.json @@ -0,0 +1,188 @@ +{ + "name": "Keychron C1", + "lighting": "none", + "vendorId": "0x3434", + "productId": "0xfe20", + "matrix": { + "rows": 6, + "cols": 17 + }, + "layouts": { + "keymap": [ + [ + "0,1", + { + "x": 1 + }, + "0,2", + "0,3", + "0,4", + "0,5", + { + "x": 0.5 + }, + "0,6", + "0,7", + "0,8", + "0,9", + { + "x": 0.5 + }, + "0,10", + "0,11", + "0,12", + "0,13", + { + "x": 0.25 + }, + "0,14", + "0,15", + "0,16" + ], + [ + { + "y": 0.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 2 + }, + "1,13", + { + "x": 0.25 + }, + "1,14", + "1,15", + "1,16" + ], + [ + { + "w": 1.5 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "w": 1.5 + }, + "2,13", + { + "x": 0.25 + }, + "2,14", + "2,15", + "2,16" + ], + [ + { + "w": 1.75 + }, + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "w": 2.25 + }, + "3,13" + ], + [ + { + "w": 2.25 + }, + "4,0", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + "4,11", + { + "w": 2.75 + }, + "4,13", + { + "x": 1.25 + }, + "4,15", + { + "x": 1.25 + } + ], + [ + { + "w": 1.25 + }, + "5,0", + { + "w": 1.25 + }, + "5,1", + { + "w": 1.25 + }, + "5,2", + { + "w": 6.25 + }, + "5,6", + { + "w": 1.25 + }, + "5,10", + { + "w": 1.25 + }, + "5,11", + { + "w": 1.25 + }, + "5,12", + { + "w": 1.25 + }, + "5,13", + { + "x": 0.25 + }, + "5,14", + "5,15", + "5,16" + ] + ] + } +} \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/plain/rand.c b/keyboards/keychron/c1-remake/plain/rand.c new file mode 100644 index 000000000000..a1096bbe2b58 --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/rand.c @@ -0,0 +1,31 @@ +// Small rand() implementation +// +// The libc rand implementation takes to much flash space, so an smaller rand() function is used. +#include "quantum.h" + +int rand(void) +{ + // static unsigned int z4; + unsigned int z1, z2, z3, z4; + int r; + unsigned int b; + + z1 = timer_read32(); + z2 = 12345; + z3 = 12345; + z4 = z1 << 8; + + b = ((z1 << 6) ^ z1) >> 13; + z1 = ((z1 & 4294967294U) << 18) ^ b; + b = ((z2 << 2) ^ z2) >> 27; + z2 = ((z2 & 4294967288U) << 2) ^ b; + b = ((z3 << 13) ^ z3) >> 21; + z3 = ((z3 & 4294967280U) << 7) ^ b; + b = ((z4 << 3) ^ z4) >> 12; + z4 = ((z4 & 4294967168U) << 13) ^ b; + + r = z1 ^ z2 ^ z3 ^ z4; + // z4 = r; + + return r; +} diff --git a/keyboards/keychron/c1-remake/plain/readme.md b/keyboards/keychron/c1-remake/plain/readme.md new file mode 100644 index 000000000000..1d4f27a84659 --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/readme.md @@ -0,0 +1,74 @@ +# Keychron C1 plain + +![Keychron C1](https://i.imgur.com/oB9h56v.png) + +A customizable TKL keyboard. + +* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) +* Hardware Supported: Keychron C1 plain (no leds, shares PCB with White Led version) +* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) + +# Install +1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. +1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/tag/v0.2.1). +1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x00` as the qmk offset. +1. Click 'Flash QMK...' and flash jumploader-keychron_c1_white.bin. This can be found in 'Pre-Compiled Jumploaders' build by the latest [Sonix keyboard bootloader action](https://github.com/SonixQMK/sonix-keyboard-bootloader/actions). +1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x200` as the qmk offset. +1. Lastly, click 'Flash QMK...' and flash keychron_c1_white_default.bin. This can be found in 'Pre-Compiled Firmware' build by the latest [Sonix QMK firmware action](https://github.com/SonixQMK/qmk_firmware/actions). + +# Keymapping +### Windows Mode +
+ +Without Fn | With Fn +---------- | ------- +ESC | Reset keyboard +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Task View +F4 | File Explorer +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Print Screen | Snip & Sketch +Cortana | - +Lock PC | - + +
+ +### Mac Mode +
+ +Without Fn | With Fn +---------- | ------- +ESC | Reset keyboard +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | None +F4 | Finder +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Take a screenshot (whole screen) | Take a screenshot (specific area) +Siri (hold down) | - +Lock Mac | - + +
+ +# More Info + +Make example for this keyboard (after setting up your build environment): + + make keychron/c1/plain + +[Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. + +For more info and detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme + +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/c1-remake/plain/rules.mk b/keyboards/keychron/c1-remake/plain/rules.mk new file mode 100644 index 000000000000..cf9c8ce55426 --- /dev/null +++ b/keyboards/keychron/c1-remake/plain/rules.mk @@ -0,0 +1,23 @@ +# project specific files +SRC = rand.c + +# MCU name +MCU = SN32F268F + +# Build Options +# comment out to disable the options. +# +MAGIC_ENABLE = yes +MAGIC_KEYCODE_ENABLE = yes +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +EXTRAKEY_ENABLE = yes # Audio control and System control +NKRO_ENABLE = yes # USB Nkey Rollover +DIP_SWITCH_ENABLE = yes + +# Custom Key and LED matrix handling +CUSTOM_MATRIX = no +RGB_MATRIX_ENABLE = no + +# Reduce code size +USE_PROCESS_STACKSIZE = 0x1E0 +USE_EXCEPTIONS_STACKSIZE = 0xE0 \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/rgb/config.h b/keyboards/keychron/c1-remake/rgb/config.h new file mode 100644 index 000000000000..048a29d1edc7 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/config.h @@ -0,0 +1,120 @@ +/* Copyright 2020 Adam Honse + * Copyright 2020 Dimitris Mantzouranis + * + * 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3434 +#define PRODUCT_ID 0xFE20 +#define DEVICE_VER 0x0001 + +#define MANUFACTURER Keychron +#define PRODUCT Keychron \x43\x31 +#define DESCRIPTION \x43\x31 RGB + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_COL_PINS { A8, A9, A10, A11, A12, A13, A14, A15, B0, B1, B2, B3, B4, B5, B6, B7, B8 } +#define MATRIX_ROW_PINS { C15, D11, D10, D9, D8, D7 } + +// Backlight configuration +#define BACKLIGHT_LEVELS 8 + +#define LED_MATRIX_ROWS MATRIX_ROWS +#define LED_MATRIX_ROW_CHANNELS 3 +#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS) +#define LED_MATRIX_ROW_PINS { C0, C1, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, B13, D3, B15, B14 } + +#define LED_MATRIX_COLS MATRIX_COLS +#define LED_MATRIX_COL_PINS MATRIX_COL_PINS + +#define DRIVER_LED_TOTAL (87) + +// Connects each switch in the dip switch to the GPIO pin of the MCU +#define DIP_SWITCH_PINS { D4 } + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 0 + +/* LED Status indicators */ +#define LED_CAPS_LOCK_PIN B10 +#define LED_MAC_PIN B11 //labeled Mac on KB since no Scroll Lock +#define LED_WIN_PIN B12 //labeled Windows on KB since no Numpad +#define LED_PIN_ON_STATE 1 + +/* Polling Rate */ +#define USB_POLLING_INTERVAL_MS 1 + +/* Disable RGB while USB is sleeping */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + +/* RGB Non-Reactive 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_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +/* RGB Reactive Effects Toggle */ +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +//#define RGB_MATRIX_KEYRELEASES + +/* RGB Reactive Effects */ +#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 diff --git a/keyboards/keychron/c1-remake/rgb/info.json b/keyboards/keychron/c1-remake/rgb/info.json new file mode 100644 index 000000000000..742d7d4e7fe4 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "Keychron C1 RGB", + "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", + "maintainer": "noldevin, vjdato21", + "width": 17, + "height": 6, + "layouts": { + "LAYOUT": { + "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Assistant", "x":16.25, "y":0}, {"label":"RGB", "x":17.25, "y":0}, + {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Fn", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} diff --git a/keyboards/keychron/c1-remake/rgb/keymaps/default/keymap.c b/keyboards/keychron/c1-remake/rgb/keymaps/default/keymap.c new file mode 100644 index 000000000000..3218de291b89 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/keymaps/default/keymap.c @@ -0,0 +1,113 @@ +/* +Copyright 2020 Dimitris Mantzouranis + +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 + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + WIN_BASE = 0, + WIN_FN = 1, + MAC_BASE = 2, + MAC_FN = 3, +}; + +#define KC_TASK LGUI(KC_TAB) // Task viewer +#define KC_FLXP LGUI(KC_E) // Windows file explorer +#define KC_CRTN LGUI(KC_C) // Cortana | Microsoft Teams +#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool + +#define KC_MSSN LGUI(KC_F3) // Mission Control +#define KC_FIND LALT(LGUI(KC_SPC)) // Finder +#define KC_SIRI LGUI(KC_SPC) // Siri +#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot +#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [WIN_BASE] = { // Windows base layout + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { 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_NO, KC_PSCR, KC_CRTN, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, + { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, + { KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } + }, + + [WIN_FN] = { // Windows Fn overlay + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { RESET, 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_NO, KC_SNIP, _______, RGB_TOG }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, + { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, + { _______, GUI_TOG, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } + }, + + /* Mac layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [MAC_BASE] = { // Mac base layout + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { 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_NO, KC_MSCR, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, + { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, + { KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_RALT, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } + }, + + [MAC_FN] = { // Mac Fn overlay + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MSNP, _______, RGB_TOG }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, + { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, + { _______, _______, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } + } +}; diff --git a/keyboards/keychron/c1-remake/rgb/keymaps/via/config.h b/keyboards/keychron/c1-remake/rgb/keymaps/via/config.h new file mode 100644 index 000000000000..176f444b24d6 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/keymaps/via/config.h @@ -0,0 +1,4 @@ +#pragma once + +// Enable RGB Matrix +#define VIA_QMK_RGBLIGHT_ENABLE diff --git a/keyboards/keychron/c1-remake/rgb/keymaps/via/keymap.c b/keyboards/keychron/c1-remake/rgb/keymaps/via/keymap.c new file mode 100644 index 000000000000..3218de291b89 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/keymaps/via/keymap.c @@ -0,0 +1,113 @@ +/* +Copyright 2020 Dimitris Mantzouranis + +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 + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + WIN_BASE = 0, + WIN_FN = 1, + MAC_BASE = 2, + MAC_FN = 3, +}; + +#define KC_TASK LGUI(KC_TAB) // Task viewer +#define KC_FLXP LGUI(KC_E) // Windows file explorer +#define KC_CRTN LGUI(KC_C) // Cortana | Microsoft Teams +#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool + +#define KC_MSSN LGUI(KC_F3) // Mission Control +#define KC_FIND LALT(LGUI(KC_SPC)) // Finder +#define KC_SIRI LGUI(KC_SPC) // Siri +#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot +#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [WIN_BASE] = { // Windows base layout + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { 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_NO, KC_PSCR, KC_CRTN, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, + { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, + { KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } + }, + + [WIN_FN] = { // Windows Fn overlay + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { RESET, 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_NO, KC_SNIP, _______, RGB_TOG }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, + { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, + { _______, GUI_TOG, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } + }, + + /* Mac layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [MAC_BASE] = { // Mac base layout + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { 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_NO, KC_MSCR, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, + { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, + { KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_RALT, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } + }, + + [MAC_FN] = { // Mac Fn overlay + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MSNP, _______, RGB_TOG }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, + { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, + { _______, _______, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } + } +}; diff --git a/keyboards/keychron/c1-remake/rgb/keymaps/via/rules.mk b/keyboards/keychron/c1-remake/rgb/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/c1-remake/rgb/readme.md b/keyboards/keychron/c1-remake/rgb/readme.md new file mode 100644 index 000000000000..6f4738b7f8c4 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/readme.md @@ -0,0 +1,85 @@ +# Keychron C1 RGB + +![Keychron C1](https://i.imgur.com/oB9h56v.png) + +A customizable TKL keyboard. + +* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) +* Hardware Supported: Keychron C1 RGB +* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make keychron/c1/rgb:default | make keychron/c1/rgb:via + +## How to Flash +Flashing example for this keyboard: +1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. +1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/latest). +1. In Sonix Flasher, select `SN32F24X` under 'Device'. And select `0x00` as the qmk offset. +1. Lastly, click 'Flash QMK...' and locate the compiled firmware. + +* * * +# Keymapping +### Windows Mode +
+ +Without Fn | With Fn +---------- | ------- +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Task View +F4 | File Explorer +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Print Screen | Snip & Sketch +Cortana / Microsoft Teams | None +Change RGB | Toggle RGB +⊞ | Windows Key Lock Toggle +Home | NKRO Toggle +↑ | Increase RGB Hue +← | Decrease RGB Saturation +↓ | Decrease RGB Hue +→ | Increase RGB Saturation + +
+ +### Mac Mode +
+ +Without Fn | With Fn +---------- | ------- +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Mission Control +F4 | Finder +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Take a screenshot (whole screen) | Take a screenshot (specific area) +Siri (hold down) | None +Change RGB | Toggle RGB +Home | NKRO Toggle +↑ | Increase RGB Hue +← | Decrease RGB Saturation +↓ | Decrease RGB Hue +→ | Increase RGB Saturation + +
+ +* * * + +For more information and more detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme + +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/c1-remake/rgb/rgb.c b/keyboards/keychron/c1-remake/rgb/rgb.c new file mode 100644 index 000000000000..f994ebc9d092 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/rgb.c @@ -0,0 +1,101 @@ +/* +Copyright 2021 Dimitris Mantzouranis + +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 "rgb.h" + +// Manage Windows and Mac LEDs +// - Show status of mode switch +// - Turn LEDs off durring USB suspend +static bool mode_leds_show = true; +static bool mode_leds_windows; + +static void mode_leds_update(void){ + writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); + writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); +} + +bool dip_switch_update_user(uint8_t index, bool active){ + if(index == 0) { + if(active) { // Mac mode + layer_move(2); + } else { // Windows mode + layer_move(0); + } + + // Update mode and update leds + mode_leds_windows = !active; + mode_leds_update(); + } + return true; +} + +void keyboard_pre_init_kb(void) { + // Setup Win & Mac LED Pins as output + setPinOutput(LED_WIN_PIN); + setPinOutput(LED_MAC_PIN); + + keyboard_pre_init_user(); +} + +void suspend_power_down_kb(void) { + // Turn leds off + mode_leds_show = false; + mode_leds_update(); + + suspend_power_down_user(); +} + +/// TODO: Clean-up workaround +/// Currently the suspend_wakeup_init_user() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 +/// A workaround is to use housekeeping_task_user() instead. +void housekeeping_task_kb(void) { + // Turn on + mode_leds_show = true; + mode_leds_update(); + + housekeeping_task_user(); +} + +#ifdef RGB_MATRIX_ENABLE + +#include "rgb_matrix.h" + +#define XX NO_LED + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, XX, 13, 14, 15}, + { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, + { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, + { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, XX, 62, XX, XX, XX}, + { 63, XX, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, XX, 74, XX, 75, XX}, + { 76, 77, 78, XX, XX, XX, 79, XX, XX, XX, 80, 81, 82, 83, 84, 85, 86} +}, { + {0 , 0}, {12 , 0}, {25 , 0}, {37 , 0}, {50 , 0}, {62 , 0}, {75 , 0}, {87 , 0}, {100, 0}, {112, 0}, {124, 0}, {137, 0}, {149, 0}, {174, 0}, {187, 0}, {199, 0}, + {0 , 13}, {12 , 13}, {25 , 13}, {37 , 13}, {50 , 13}, {62 , 13}, {75 , 13}, {87 , 13}, {100, 13}, {112, 13}, {124, 13}, {137, 13}, {149, 13}, {168, 13}, {174, 13}, {187, 13}, {199, 13}, + {3 , 26}, {19 , 26}, {31 , 26}, {44 , 26}, {56 , 26}, {68 , 26}, {81 , 26}, {93 , 26}, {106, 26}, {118, 26}, {131, 26}, {143, 26}, {156, 26}, {168, 26}, {174, 26}, {187, 26}, {199, 26}, + {5 , 38}, {22 , 38}, {34 , 38}, {47 , 38}, {59 , 38}, {72 , 38}, {84 , 38}, {96 , 38}, {109, 38}, {121, 38}, {134, 38}, {146, 38}, {166, 38}, + {8 , 51}, {28 , 51}, {40 , 51}, {53 , 51}, {65 , 51}, {78 , 51}, {90 , 51}, {103, 51}, {115, 51}, {128, 51}, {140, 51}, {157, 51}, {187, 51}, + {2 , 64}, {17 , 64}, {33 , 64}, {79 , 64}, {124, 64}, {137, 64}, {149, 64}, {162, 64}, {174, 64}, {187, 64}, {199, 64}, +}, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 +} }; + +#endif diff --git a/keyboards/keychron/c1-remake/rgb/rgb.h b/keyboards/keychron/c1-remake/rgb/rgb.h new file mode 100644 index 000000000000..6ecd143b1132 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/rgb.h @@ -0,0 +1,22 @@ +#pragma once + +#include "quantum.h" +// readability +#define XXX KC_NO + +#define LAYOUT_tkl_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + 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, k5g \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, XXX}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f, k2g}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, XXX, XXX, XXX, XXX}, \ + {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, XXX, XXX, k4f, XXX}, \ + {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d k5e, k5f, k5g} \ +} diff --git a/keyboards/keychron/c1-remake/rgb/rgb.json b/keyboards/keychron/c1-remake/rgb/rgb.json new file mode 100644 index 000000000000..2432177ec8d0 --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/rgb.json @@ -0,0 +1,196 @@ +{ + "name": "Keychron C1", + "vendorId": "0x3434", + "productId": "0xFE20", + "lighting": { + "extends": "qmk_rgblight", + "underglowEffects": [ + [ + "None", + 0 + ], + [ + "SOLID_COLOR", + 1 + ], + [ + "ALPHAS_MODS", + 1 + ], + [ + "GRADIENT_UP_DOWN", + 1 + ], + [ + "GRADIENT_LEFT_RIGHT", + 1 + ], + [ + "BREATHING", + 1 + ], + [ + "BAND_SAT", + 1 + ], + [ + "BAND_VAL", + 1 + ], + [ + "BAND_PINWHEEL_SAT", + 1 + ], + [ + "BAND_PINWHEEL_VAL", + 1 + ], + [ + "BAND_SPIRAL_SAT", + 1 + ], + [ + "BAND_SPIRAL_VAL", + 1 + ], + [ + "CYCLE_ALL", + 1 + ], + [ + "CYCLE_LEFT_RIGHT", + 1 + ], + [ + "CYCLE_UP_DOWN", + 1 + ], + [ + "CYCLE_OUT_IN", + 1 + ], + [ + "CYCLE_OUT_IN_DUAL", + 1 + ], + [ + "RAINBOW_MOVING_CHEVRON", + 1 + ], + [ + "CYCLE_PINWHEEL", + 1 + ], + [ + "CYCLE_SPIRAL", + 1 + ], + [ + "DUAL_BEACON", + 1 + ], + [ + "RAINBOW_BEACON", + 1 + ], + [ + "RAINBOW_PINWHEELS", + 1 + ], + [ + "RAINDROPS", + 1 + ], + [ + "JELLYBEAN_RAINDROPS", + 1 + ], + [ + "HUE_BREATHING", + 1 + ], + [ + "HUE_PENDULUM", + 1 + ], + [ + "HUE_WAVE", + 1 + ], + ["PIXEL_FRACTAL", 1], + ["PIXEL_RAIN", 1], + [ + "TYPING_HEATMAP", + 1 + ], + [ + "DIGITAL_RAIN", + 1 + ], + [ + "SOLID_REACTIVE_SIMPLE", + 1 + ], + [ + "SOLID_REACTIVE", + 1 + ], + [ + "SOLID_REACTIVE_WIDE", + 1 + ], + [ + "SOLID_REACTIVE_MULTIWIDE", + 1 + ], + [ + "SOLID_REACTIVE_CROSS", + 1 + ], + [ + "SOLID_REACTIVE_MULTICROSS", + 1 + ], + [ + "SOLID_REACTIVE_NEXUS", + 1 + ], + [ + "SOLID_REACTIVE_MULTINEXUS", + 1 + ], + [ + "SPLASH", + 1 + ], + [ + "MULTISPLASH", + 1 + ], + [ + "SOLID_SPLASH", + 1 + ], + [ + "SOLID_MULTISPLASH", + 1 + ] + ], + "supportedLightingValues": [ + 128, + 129, + 131 + ] + }, + "matrix": {"rows": 6, "cols": 17}, + "layouts": { + "keymap": [ + ["0,0", {"x": 1}, "0,1", "0,2", "0,3", "0,4", {"x": 0.5}, "0,5", "0,6", "0,7", "0,8", {"x": 0.5}, "0,9", "0,10", "0,11", "0,12", {"x": 0.25}, "0,14", "0,15", "0,16"], + [{"y": 0.5}, "1,0", "1,1", "1,2", "1,3", "1,4", "1,5", "1,6", "1,7", "1,8", "1,9", "1,10", "1,11", "1,12", {"w": 2}, "1,13", {"x": 0.25 }, "1,14", "1,15", "1,16"], + [{"w": 1.5 }, "2,0", "2,1", "2,2", "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", "2,9", "2,10", "2,11", "2,12", {"w": 1.5}, "2,13", { "x": 0.25 }, "2,14", "2,15", "2,16"], + [{"w": 1.75 }, "3,0", "3,1", "3,2", "3,3", "3,4", "3,5", "3,6", "3,7", "3,8", "3,9", "3,10", "3,11", { "w": 2.25 }, "3,13"], + [{"w": 2.25 }, "4,0", "4,2", "4,3", "4,4", "4,5", "4,6", "4,7", "4,8", "4,9", "4,10", "4,11", {"w": 2.75 }, "4,13", {"x": 1.25 }, "4,15"], + [{"w": 1.25 }, "5,0", {"w": 1.25 }, "5,1", {"w": 1.25 }, "5,2", {"w": 6.25 }, "5,6", {"w": 1.25 }, "5,10", {"w": 1.25 }, "5,11", {"w": 1.25 }, "5,12", {"w": 1.25 }, "5,13", {"x": 0.25 }, "5,14", "5,15", "5,16"] + ] + } +} diff --git a/keyboards/keychron/c1-remake/rgb/rules.mk b/keyboards/keychron/c1-remake/rgb/rules.mk new file mode 100644 index 000000000000..f6792f46337c --- /dev/null +++ b/keyboards/keychron/c1-remake/rgb/rules.mk @@ -0,0 +1,32 @@ +# project specific files +SRC = ../../../drivers/led/sn32/matrix_sn32f24xx.c +SRC += config_led.c + +# MCU name +MCU = SN32F248BF + +# Build Options +# comment out to disable the options. +# +LTO_ENABLE = no +BACKLIGHT_ENABLE = no +MAGIC_ENABLE = yes +MAGIC_KEYCODE_ENABLE = yes +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = no +SERIAL_LINK_ENABLE = no +WAIT_FOR_USB = yes +CUSTOM_MATRIX = yes +DIP_SWITCH_ENABLE = yes +KEYBOARD_SHARED_EP = no + +# Custom RGB matrix handling +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = SN32F24xB diff --git a/keyboards/keychron/c1-remake/white/config.h b/keyboards/keychron/c1-remake/white/config.h new file mode 100644 index 000000000000..f7fd3bcb07ec --- /dev/null +++ b/keyboards/keychron/c1-remake/white/config.h @@ -0,0 +1,91 @@ +/* Copyright 2020 Adam Honse + * Copyright 2020 Dimitris Mantzouranis + * + * 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3434 +#define PRODUCT_ID 0xFE20 +#define DEVICE_VER 0x0001 + +#define MANUFACTURER Keychron +// \x43\x31 is "C1" in ASCII hex, this is used to prevent macro expansion, because C1 is also a pin macro. +#define PRODUCT Keychron \x43\x31 +#define DESCRIPTION Keychron \x43\x31 Plain + +#define WAIT_FOR_USB +#define USB_MAX_POWER_CONSUMPTION 100 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, D0 } +#define MATRIX_ROW_PINS { C3, C4, C5, C6, C7, C8 } + +/* LED matrix */ +#define LED_MATRIX_ROWS MATRIX_ROWS +#define LED_MATRIX_ROW_CHANNELS 1 +#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS) +#define LED_MATRIX_ROW_PINS { C0, C1, C2, D4, C9, C10 } + +#define LED_MATRIX_COLS MATRIX_COLS +#define LED_MATRIX_COL_PINS MATRIX_COL_PINS + +#define DRIVER_LED_TOTAL (87) + +/* Backlight configuration */ +#define RGB_MATRIX_VAL_STEP 32 +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + +/* Connects each switch in the dip switch to the GPIO pin of the MCU */ +#define DIP_SWITCH_PINS { D7 } + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* LED Status indicators */ +#define LED_CAPS_LOCK_PIN B3 +#define LED_PIN_ON_STATE 1 + +#define LED_MAC_PIN B4 +#define LED_WIN_PIN B5 + +/* Enable NKRO by default */ +#define FORCE_NKRO + +/* Disable RGB while USB is sleeping */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + +/* Disable the following animation because they are not interesting in monochrome */ +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define DISABLE_RGB_MATRIX_DUAL_BEACON + +/* TODO: Disabled the following animation because they crash the keyboard. Probably due to a too small stack */ +#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS diff --git a/keyboards/keychron/c1-remake/white/info.json b/keyboards/keychron/c1-remake/white/info.json new file mode 100644 index 000000000000..1ccc86137007 --- /dev/null +++ b/keyboards/keychron/c1-remake/white/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "Keychron C1 white", + "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", + "maintainer": "IsaacDynamo", + "width": 17, + "height": 6, + "layouts": { + "LAYOUT": { + "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Mic", "x":16.25, "y":0}, {"label":"Lamp", "x":17.25, "y":0}, + {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/white/keychron_c1_white_via.json b/keyboards/keychron/c1-remake/white/keychron_c1_white_via.json new file mode 100644 index 000000000000..0c34cadaa017 --- /dev/null +++ b/keyboards/keychron/c1-remake/white/keychron_c1_white_via.json @@ -0,0 +1,185 @@ +{ + "name": "Keychron C1 White", + "vendorId": "0x05ac", + "productId": "0x024f", + "lighting": "qmk_rgblight", + "matrix": {"rows": 6, "cols": 17}, + "layouts": { + "keymap": [ + [ + "0,0", + { + "x": 1 + }, + "0,2", + "0,3", + "0,4", + "0,5", + { + "x": 0.5 + }, + "0,6", + "0,7", + "0,8", + "0,9", + { + "x": 0.5 + }, + "0,10", + "0,11", + "0,12", + "0,13", + { + "x": 0.25 + }, + "0,14", + "0,15", + "0,16" + ], + [ + { + "y": 0.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 2 + }, + "1,13", + { + "x": 0.25 + }, + "1,14", + "1,15", + "1,16" + ], + [ + { + "w": 1.5 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "w": 1.5 + }, + "2,13", + { + "x": 0.25 + }, + "2,14", + "2,15", + "2,16" + ], + [ + { + "w": 1.75 + }, + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "w": 2.25 + }, + "3,13" + ], + [ + { + "w": 2.25 + }, + "4,0", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + "4,11", + { + "w": 2.75 + }, + "4,13", + { + "x": 1.25 + }, + "4,15", + { + "x": 1.25 + } + ], + [ + { + "w": 1.25 + }, + "5,0", + { + "w": 1.25 + }, + "5,1", + { + "w": 1.25 + }, + "5,2", + { + "w": 6.25 + }, + "5,6", + { + "w": 1.25 + }, + "5,10", + { + "w": 1.25 + }, + "5,11", + { + "w": 1.25 + }, + "5,12", + { + "w": 1.25 + }, + "5,13", + { + "x": 0.25 + }, + "5,14", + "5,15", + "5,16" + ] + ] + } +} \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/white/keymaps/default/keymap.c b/keyboards/keychron/c1-remake/white/keymaps/default/keymap.c new file mode 100644 index 000000000000..bcfec6d5cdb7 --- /dev/null +++ b/keyboards/keychron/c1-remake/white/keymaps/default/keymap.c @@ -0,0 +1,100 @@ +/* +Copyright 2020 Dimitris Mantzouranis + +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 + +#define KC_TASK LGUI(KC_TAB) // Task viewer +#define KC_FLXP LGUI(KC_E) // Windows file explorer +#define KC_CORT LGUI(KC_C) // Cortana +#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool +#define KC_W_FN MO(WIN_FN) // Windows Fn + +#define KC_MSSN LGUI(KC_F3) // Mission Control +#define KC_FIND LALT(LGUI(KC_SPC)) // Finder +#define KC_SIRI LGUI(KC_SPC) // Siri +#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot +#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool +#define KC_M_FN MO(MAC_FN) // Mac Fn + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT| BL | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [WIN_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, RGB_TOG, \ + 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [WIN_FN] = LAYOUT( \ + RESET, 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_SNIP, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ + ), + + /* Mac layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI| BL | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [MAC_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, RGB_TOG, \ + 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [MAC_FN] = LAYOUT( \ + RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ + ) +}; diff --git a/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c b/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c new file mode 100644 index 000000000000..9b448f5d59ca --- /dev/null +++ b/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c @@ -0,0 +1,3 @@ +// Include default keymap +// This way the VIA keymap is always up to date with the default keymap +#include "../default/keymap.c" \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/white/keymaps/via/no_idle_thread.c b/keyboards/keychron/c1-remake/white/keymaps/via/no_idle_thread.c new file mode 100644 index 000000000000..d5ab9b8aafd4 --- /dev/null +++ b/keyboards/keychron/c1-remake/white/keymaps/via/no_idle_thread.c @@ -0,0 +1,30 @@ +// Size optimizations to fit VIA support +// +// These optimizations are pretty intrusive because they remove the idle thread. +// Without idle thread some sleep related functions no longer function. +// These broken functions are overwritten with patched variants. +// +// These optimization are copied from: +// https://github.com/gloryhzw/qmk_firmware/blob/sn32/keyboards/gmmk/full +// +// This file adds patch sleep related functions that work without idle threads. + +#include "quantum.h" + +/* + * must override sleep functions without idle thread + */ +#define CYCLES_PER_LOOP 9 +#define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) + +void chThdSleep(sysinterval_t time) { + uint32_t loops = time * LOOP_TIMES; + for (uint32_t i = 0; i < loops; i++) __NOP(); +} + +/* suspend thread used in usb_main.c */ +msg_t chThdSuspendTimeoutS(thread_reference_t* trp, sysinterval_t timeout) { + osalSysUnlock(); + osalSysLock(); + return MSG_OK; +} diff --git a/keyboards/keychron/c1-remake/white/keymaps/via/rules.mk b/keyboards/keychron/c1-remake/white/keymaps/via/rules.mk new file mode 100644 index 000000000000..086f21f4ae12 --- /dev/null +++ b/keyboards/keychron/c1-remake/white/keymaps/via/rules.mk @@ -0,0 +1,21 @@ +# Experimental VIA support +VIA_ENABLE=yes + +# Size optimizations to fit VIA support +# +# These optimizations are pretty intrusive because they remove the idle thread. +# Without idle thread some sleep related functions no longer function. +# These broken functions are overwritten with patched variants. +# +# These optimization are copied from: +# https://github.com/gloryhzw/qmk_firmware/blob/sn32/keyboards/gmmk/full + +# Reduce RAW endpoints +OPT_DEFS += -DRAW_IN_CAPACITY=1 +OPT_DEFS += -DRAW_OUT_CAPACITY=1 + +# Remove idle thread +OPT_DEFS += -DCH_CFG_NO_IDLE_THREAD=TRUE + +# Include the patched functions +SRC += keymaps/via/no_idle_thread.c diff --git a/keyboards/keychron/c1-remake/white/rand.c b/keyboards/keychron/c1-remake/white/rand.c new file mode 100644 index 000000000000..a1096bbe2b58 --- /dev/null +++ b/keyboards/keychron/c1-remake/white/rand.c @@ -0,0 +1,31 @@ +// Small rand() implementation +// +// The libc rand implementation takes to much flash space, so an smaller rand() function is used. +#include "quantum.h" + +int rand(void) +{ + // static unsigned int z4; + unsigned int z1, z2, z3, z4; + int r; + unsigned int b; + + z1 = timer_read32(); + z2 = 12345; + z3 = 12345; + z4 = z1 << 8; + + b = ((z1 << 6) ^ z1) >> 13; + z1 = ((z1 & 4294967294U) << 18) ^ b; + b = ((z2 << 2) ^ z2) >> 27; + z2 = ((z2 & 4294967288U) << 2) ^ b; + b = ((z3 << 13) ^ z3) >> 21; + z3 = ((z3 & 4294967280U) << 7) ^ b; + b = ((z4 << 3) ^ z4) >> 12; + z4 = ((z4 & 4294967168U) << 13) ^ b; + + r = z1 ^ z2 ^ z3 ^ z4; + // z4 = r; + + return r; +} diff --git a/keyboards/keychron/c1-remake/white/readme.md b/keyboards/keychron/c1-remake/white/readme.md new file mode 100644 index 000000000000..7b280c99badf --- /dev/null +++ b/keyboards/keychron/c1-remake/white/readme.md @@ -0,0 +1,86 @@ +# Keychron C1 white + +![Keychron C1](https://i.imgur.com/oB9h56v.png) + +A customizable TKL keyboard. + +* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) +* Hardware Supported: Keychron C1 white +* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) + +# Install +1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. +1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/tag/v0.2.1). +1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x00` as the qmk offset. +1. Click 'Flash QMK...' and flash jumploader-keychron_c1_white.bin. This can be found in 'Pre-Compiled Jumploaders' build by the latest [Sonix keyboard bootloader action](https://github.com/SonixQMK/sonix-keyboard-bootloader/actions). +1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x200` as the qmk offset. +1. Lastly, click 'Flash QMK...' and flash keychron_c1_white_default.bin. This can be found in 'Pre-Compiled Firmware' build by the latest [Sonix QMK firmware action](https://github.com/SonixQMK/qmk_firmware/actions). + +# Keymapping +### Windows Mode +
+ +Without Fn | With Fn +---------- | ------- +ESC | Reset keyboard +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Task View +F4 | File Explorer +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Print Screen | Snip & Sketch +Cortana | - +Toggle backlight | - +↑ | Increase effect speed +← | Cycle through modes in reverse +↓ | Decrease effect speed +→ | Cycle through modes + +
+ +### Mac Mode +
+ +Without Fn | With Fn +---------- | ------- +ESC | Reset keyboard +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | None +F4 | Finder +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Take a screenshot (whole screen) | Take a screenshot (specific area) +Siri (hold down) | - +Toggle backlight | - +↑ | Increase effect speed +← | Cycle through modes in reverse +↓ | Decrease effect speed +→ | Cycle through modes + +
+ +# More Info + +Make example for this keyboard (after setting up your build environment): + + make keychron/c1/white + +[Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. + +For more info and detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme + +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/c1-remake/white/rgb_matrix_kb.inc b/keyboards/keychron/c1-remake/white/rgb_matrix_kb.inc new file mode 100644 index 000000000000..cbeff4e047fc --- /dev/null +++ b/keyboards/keychron/c1-remake/white/rgb_matrix_kb.inc @@ -0,0 +1,40 @@ +#ifndef DISABLE_RGB_MATRIX_HIGH_CONTRAST +RGB_MATRIX_EFFECT(HIGH_CONTRAST) +RGB_MATRIX_EFFECT(HIGH_CONTRAST2) +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +// Only light up black keys. These are marked with 128 in g_led_config. +bool HIGH_CONTRAST(effect_params_t* params) { + RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + if (HAS_FLAGS(g_led_config.flags[i], 128)) { + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(i, 0, 0, 0); + } + } + return led_max < DRIVER_LED_TOTAL; +} + +// Only light up black and orange keys. These are marked with 128 and 64 in g_led_config. +// Use this high contrast mode when you use black keycaps for Esc and lightbulb key and what them to be lit as wel. +bool HIGH_CONTRAST2(effect_params_t* params) { + RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + if (HAS_FLAGS(g_led_config.flags[i], 128) || HAS_FLAGS(g_led_config.flags[i], 64)) { + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(i, 0, 0, 0); + } + } + return led_max < DRIVER_LED_TOTAL; +} + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS +#endif // DISABLE_RGB_MATRIX_HIGH_CONTRAST diff --git a/keyboards/keychron/c1-remake/white/rules.mk b/keyboards/keychron/c1-remake/white/rules.mk new file mode 100644 index 000000000000..e6e11ca9b794 --- /dev/null +++ b/keyboards/keychron/c1-remake/white/rules.mk @@ -0,0 +1,25 @@ +# project specific files +SRC += rand.c + +# MCU name +MCU = SN32F268F + +# Build Options +# comment out to disable the options. +# +MAGIC_ENABLE = yes +MAGIC_KEYCODE_ENABLE = yes +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +EXTRAKEY_ENABLE = yes # Audio control and System control +NKRO_ENABLE = yes # USB Nkey Rollover +DIP_SWITCH_ENABLE = yes + +# Custom Key and LED matrix handling +CUSTOM_MATRIX = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = SN32F26x +RGB_MATRIX_CUSTOM_KB = yes + +# Reduce code size +USE_PROCESS_STACKSIZE = 0x1E0 +USE_EXCEPTIONS_STACKSIZE = 0xF0 \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/white/white.c b/keyboards/keychron/c1-remake/white/white.c new file mode 100644 index 000000000000..4ce51057b133 --- /dev/null +++ b/keyboards/keychron/c1-remake/white/white.c @@ -0,0 +1,122 @@ +/* Copyright 2021 IsaacDynamo + * + * 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 "white.h" + +// Manage Windows and Mac LEDs +// - Show status of mode switch +// - Turn LEDs off durring USB suspend +static bool mode_leds_show = true; +static bool mode_leds_windows; + +static void mode_leds_update(void){ + writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); + writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); +} + +bool dip_switch_update_kb(uint8_t index, bool active){ + if(index == 0) { + if(active) { // Mac mode + layer_move(MAC_BASE); + } else { // Windows mode + layer_move(WIN_BASE); + } + + // Update mode and update leds + mode_leds_windows = !active; + mode_leds_update(); + } + + dip_switch_update_user(index, active); + return true; +} + +void keyboard_pre_init_kb(void) { + // Setup Win & Mac LED Pins as output + setPinOutput(LED_WIN_PIN); + setPinOutput(LED_MAC_PIN); + + // WORKAROUND: Mac & Windows LED flicker. + // Normally the GPIOs in DIP_SWITCH_PINS will be initialized by dip_switch_init(). + // But during startup of the keyboard the Mac/Windows dip switch seems to jitter, causing the Mac and Windows LEDs to flicker. + // Maybe the internal pull-up of this chip is really weak, and needs some time to pullup the input voltage to the high level? Seems unlikely but cannot think of a better explanation. + // By doing the configuration of the GPIOs here the pullup is enabled earlier and the flicker is gone. + const pin_t dip_switch_pad[] = DIP_SWITCH_PINS; + const size_t size = sizeof(dip_switch_pad) / sizeof(dip_switch_pad[0]); + for (size_t i=0; i + * Copyright 2020 Dimitris Mantzouranis + * Copyright 2021 Harrison Chan (Xelus) + * + * 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 "c1.h" diff --git a/keyboards/keychron/c1/c1.h b/keyboards/keychron/c1/c1.h new file mode 100644 index 000000000000..4ec8bbdb8055 --- /dev/null +++ b/keyboards/keychron/c1/c1.h @@ -0,0 +1,29 @@ +/* Copyright 2020 Adam Honse + * Copyright 2020 Dimitris Mantzouranis + * Copyright 2022 Harrison Chan (Xelus) + * + * 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_c1_rgb) + #include "rgb.h" +#elif defined(KEYBOARD_keychron_c1_white) + #include "white.h" +#elif defined(KEYBOARD_keychron_c1_plain) + #include "plain.h" +#endif diff --git a/keyboards/keychron/c1/config.h b/keyboards/keychron/c1/config.h new file mode 100644 index 000000000000..f80f1c59bae1 --- /dev/null +++ b/keyboards/keychron/c1/config.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Adam Honse + * Copyright 2020 Dimitris Mantzouranis + * Copyright 2022 Harrison Chan (Xelus) + * + * 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3434 +#define PRODUCT_ID 0xFE20 +#define DEVICE_VER 0x0001 + +#define MANUFACTURER Keychron +#define PRODUCT Keychron \x43\x31 + +/* Disable RGB while USB is sleeping */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + +/* Polling Rate */ +#define USB_POLLING_INTERVAL_MS 1 diff --git a/keyboards/keychron/c1/keymaps/plain_ansi/keymap.c b/keyboards/keychron/c1/keymaps/plain_ansi/keymap.c new file mode 100644 index 000000000000..16e60e95f6bd --- /dev/null +++ b/keyboards/keychron/c1/keymaps/plain_ansi/keymap.c @@ -0,0 +1,102 @@ +/* +Copyright 2020 Dimitris Mantzouranis + +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 + +#define KC_TASK LGUI(KC_TAB) // Task viewer +#define KC_FLXP LGUI(KC_E) // Windows file explorer +#define KC_CORT LGUI(KC_C) // Cortana +#define KC_LOCK LGUI(KC_L) // Lock +#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool +#define KC_W_FN MO(WIN_FN) // Windows Fn + +#define KC_MSSN LGUI(KC_F3) // Mission Control +#define KC_FIND LALT(LGUI(KC_SPC)) // Finder +#define KC_SIRI LGUI(KC_SPC) // Siri +#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot +#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool +#define KC_M_FN MO(MAC_FN) // Mac Fn +#define KD_M_LK LCMD(LCTL(KC_Q)) // Mac Lock + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|LOCK| + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [WIN_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, KC_LOCK, \ + 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [WIN_FN] = LAYOUT( \ + RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + /* Mac layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|LOCK| + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [MAC_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, KD_M_LK, \ + 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [MAC_FN] = LAYOUT( \ + RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; diff --git a/keyboards/keychron/c1/keymaps/plain_via/keymap.c b/keyboards/keychron/c1/keymaps/plain_via/keymap.c new file mode 100644 index 000000000000..26d8b83fe9fe --- /dev/null +++ b/keyboards/keychron/c1/keymaps/plain_via/keymap.c @@ -0,0 +1,3 @@ +// Include default keymap +// This way the VIA keymap is always up to date with the default keymap +#include "../plain_ansi/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/plain_via/rules.mk b/keyboards/keychron/c1/keymaps/plain_via/rules.mk new file mode 100644 index 000000000000..74edb2bf0d41 --- /dev/null +++ b/keyboards/keychron/c1/keymaps/plain_via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE=yes diff --git a/keyboards/keychron/c1/plain/config.h b/keyboards/keychron/c1/plain/config.h index b70037a069c3..8fff5d6df528 100644 --- a/keyboards/keychron/c1/plain/config.h +++ b/keyboards/keychron/c1/plain/config.h @@ -20,16 +20,8 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x3434 -#define PRODUCT_ID 0xFE20 -#define DEVICE_VER 0x0001 +#define DESCRIPTION Keychron \x43\x31 Plain -#define MANUFACTURER Keychron -// \x43\x31 is "C1" in ASCII hex, this is used to prevent macro expansion, because C1 is also a pin macro. -#define PRODUCT \x43\x31 -#define DESCRIPTION \x43\x31 QMK - -#define WAIT_FOR_USB #define USB_MAX_POWER_CONSUMPTION 100 /* key matrix size */ @@ -57,11 +49,5 @@ #define LED_MAC_PIN B4 #define LED_WIN_PIN B5 -/* Enable NKRO by default */ -#define FORCE_NKRO - #define DYNAMIC_KEYMAP_LAYER_COUNT 4 #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 1000 - -/* Polling Rate */ -#define USB_POLLING_INTERVAL_MS 1 diff --git a/keyboards/keychron/c1/plain/rules.mk b/keyboards/keychron/c1/plain/rules.mk index cf9c8ce55426..6bb497f78138 100644 --- a/keyboards/keychron/c1/plain/rules.mk +++ b/keyboards/keychron/c1/plain/rules.mk @@ -4,20 +4,10 @@ SRC = rand.c # MCU name MCU = SN32F268F -# Build Options -# comment out to disable the options. -# -MAGIC_ENABLE = yes -MAGIC_KEYCODE_ENABLE = yes -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover -DIP_SWITCH_ENABLE = yes - # Custom Key and LED matrix handling CUSTOM_MATRIX = no RGB_MATRIX_ENABLE = no # Reduce code size USE_PROCESS_STACKSIZE = 0x1E0 -USE_EXCEPTIONS_STACKSIZE = 0xE0 \ No newline at end of file +USE_EXCEPTIONS_STACKSIZE = 0xE0 diff --git a/keyboards/keychron/c1/readme.md b/keyboards/keychron/c1/readme.md new file mode 100644 index 000000000000..28a593004ccc --- /dev/null +++ b/keyboards/keychron/c1/readme.md @@ -0,0 +1,74 @@ +# Keychron C1 + +![Keychron C1](https://i.imgur.com/QRmjfU1.png) + +A customizable TKL keyboard. + +* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) +* Hardware Supported: Keychron C1 RGB, White, Plain +* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) + +* * * +# Keymapping +### Windows Mode +
+ +Without Fn | With Fn +---------- | ------- +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Task View +F4 | File Explorer +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Print Screen | Snip & Sketch +Cortana / Microsoft Teams | None +Change RGB | Toggle RGB +⊞ | Windows Key Lock Toggle +Home | NKRO Toggle +↑ | Increase RGB Hue +← | Decrease RGB Saturation +↓ | Decrease RGB Hue +→ | Increase RGB Saturation + +
+ +### Mac Mode +
+ +Without Fn | With Fn +---------- | ------- +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Mission Control +F4 | Finder +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Take a screenshot (whole screen) | Take a screenshot (specific area) +Siri (hold down) | None +Change RGB | Toggle RGB +Home | NKRO Toggle +↑ | Increase RGB Hue +← | Decrease RGB Saturation +↓ | Decrease RGB Hue +→ | Increase RGB Saturation + +
+ +* * * + +For more information and more detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme + +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/c1/rules.mk b/keyboards/keychron/c1/rules.mk new file mode 100644 index 000000000000..0e93f22ce812 --- /dev/null +++ b/keyboards/keychron/c1/rules.mk @@ -0,0 +1,11 @@ +# project specific files +# Build Options +# comment out to disable the options. +# +MAGIC_ENABLE = yes +MAGIC_KEYCODE_ENABLE = yes +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +EXTRAKEY_ENABLE = yes # Audio control and System control +NKRO_ENABLE = yes # USB Nkey Rollover +DIP_SWITCH_ENABLE = yes +WAIT_FOR_USB = yes From 33a7ebca61f135b33ecf51638943358b19ab7c4f Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Mon, 7 Feb 2022 13:31:59 +0800 Subject: [PATCH 02/34] [Keychron C1 Series] C1 White Restructure - Issue with `keymap.c` compilation. Need help with this @IsaacDynamo Co-Authored-By: dexter93 Co-Authored-By: IsaacDynamo <61521674+IsaacDynamo@users.noreply.github.com> Co-Authored-By: noldevin <85706813+noldevin@users.noreply.github.com> Co-Authored-By: edlf <93866317+edlf@users.noreply.github.com> --- .../c1-remake/white/keymaps/via/keymap.c | 2 +- .../keychron/c1/keymaps/white_ansi/keymap.c | 100 ++++++++++ .../keychron/c1/keymaps/white_via/keymap.c | 3 + .../c1/keymaps/white_via/no_idle_thread.c | 30 +++ .../keychron/c1/keymaps/white_via/rules.mk | 21 ++ .../c1/plain/{plain.json => plain_via.json} | 0 keyboards/keychron/c1/plain/readme.md | 72 +++++++ keyboards/keychron/c1/readme.md | 4 +- keyboards/keychron/c1/white/config.h | 77 ++++++++ keyboards/keychron/c1/white/info.json | 18 ++ keyboards/keychron/c1/white/rand.c | 31 +++ keyboards/keychron/c1/white/readme.md | 86 ++++++++ keyboards/keychron/c1/white/rgb_matrix_kb.inc | 40 ++++ keyboards/keychron/c1/white/rules.mk | 15 ++ keyboards/keychron/c1/white/white.c | 122 ++++++++++++ keyboards/keychron/c1/white/white.h | 31 +++ keyboards/keychron/c1/white/white_via.json | 185 ++++++++++++++++++ 17 files changed, 834 insertions(+), 3 deletions(-) create mode 100644 keyboards/keychron/c1/keymaps/white_ansi/keymap.c create mode 100644 keyboards/keychron/c1/keymaps/white_via/keymap.c create mode 100644 keyboards/keychron/c1/keymaps/white_via/no_idle_thread.c create mode 100644 keyboards/keychron/c1/keymaps/white_via/rules.mk rename keyboards/keychron/c1/plain/{plain.json => plain_via.json} (100%) create mode 100644 keyboards/keychron/c1/plain/readme.md create mode 100644 keyboards/keychron/c1/white/config.h create mode 100644 keyboards/keychron/c1/white/info.json create mode 100644 keyboards/keychron/c1/white/rand.c create mode 100644 keyboards/keychron/c1/white/readme.md create mode 100644 keyboards/keychron/c1/white/rgb_matrix_kb.inc create mode 100644 keyboards/keychron/c1/white/rules.mk create mode 100644 keyboards/keychron/c1/white/white.c create mode 100644 keyboards/keychron/c1/white/white.h create mode 100644 keyboards/keychron/c1/white/white_via.json diff --git a/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c b/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c index 9b448f5d59ca..a730c1821940 100644 --- a/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c +++ b/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c @@ -1,3 +1,3 @@ // Include default keymap // This way the VIA keymap is always up to date with the default keymap -#include "../default/keymap.c" \ No newline at end of file +#include "../white_ansi/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/white_ansi/keymap.c b/keyboards/keychron/c1/keymaps/white_ansi/keymap.c new file mode 100644 index 000000000000..bcfec6d5cdb7 --- /dev/null +++ b/keyboards/keychron/c1/keymaps/white_ansi/keymap.c @@ -0,0 +1,100 @@ +/* +Copyright 2020 Dimitris Mantzouranis + +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 + +#define KC_TASK LGUI(KC_TAB) // Task viewer +#define KC_FLXP LGUI(KC_E) // Windows file explorer +#define KC_CORT LGUI(KC_C) // Cortana +#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool +#define KC_W_FN MO(WIN_FN) // Windows Fn + +#define KC_MSSN LGUI(KC_F3) // Mission Control +#define KC_FIND LALT(LGUI(KC_SPC)) // Finder +#define KC_SIRI LGUI(KC_SPC) // Siri +#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot +#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool +#define KC_M_FN MO(MAC_FN) // Mac Fn + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT| BL | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [WIN_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, RGB_TOG, \ + 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [WIN_FN] = LAYOUT( \ + RESET, 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_SNIP, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ + ), + + /* Mac layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI| BL | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [MAC_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, RGB_TOG, \ + 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [MAC_FN] = LAYOUT( \ + RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ + ) +}; diff --git a/keyboards/keychron/c1/keymaps/white_via/keymap.c b/keyboards/keychron/c1/keymaps/white_via/keymap.c new file mode 100644 index 000000000000..a730c1821940 --- /dev/null +++ b/keyboards/keychron/c1/keymaps/white_via/keymap.c @@ -0,0 +1,3 @@ +// Include default keymap +// This way the VIA keymap is always up to date with the default keymap +#include "../white_ansi/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/white_via/no_idle_thread.c b/keyboards/keychron/c1/keymaps/white_via/no_idle_thread.c new file mode 100644 index 000000000000..d5ab9b8aafd4 --- /dev/null +++ b/keyboards/keychron/c1/keymaps/white_via/no_idle_thread.c @@ -0,0 +1,30 @@ +// Size optimizations to fit VIA support +// +// These optimizations are pretty intrusive because they remove the idle thread. +// Without idle thread some sleep related functions no longer function. +// These broken functions are overwritten with patched variants. +// +// These optimization are copied from: +// https://github.com/gloryhzw/qmk_firmware/blob/sn32/keyboards/gmmk/full +// +// This file adds patch sleep related functions that work without idle threads. + +#include "quantum.h" + +/* + * must override sleep functions without idle thread + */ +#define CYCLES_PER_LOOP 9 +#define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) + +void chThdSleep(sysinterval_t time) { + uint32_t loops = time * LOOP_TIMES; + for (uint32_t i = 0; i < loops; i++) __NOP(); +} + +/* suspend thread used in usb_main.c */ +msg_t chThdSuspendTimeoutS(thread_reference_t* trp, sysinterval_t timeout) { + osalSysUnlock(); + osalSysLock(); + return MSG_OK; +} diff --git a/keyboards/keychron/c1/keymaps/white_via/rules.mk b/keyboards/keychron/c1/keymaps/white_via/rules.mk new file mode 100644 index 000000000000..086f21f4ae12 --- /dev/null +++ b/keyboards/keychron/c1/keymaps/white_via/rules.mk @@ -0,0 +1,21 @@ +# Experimental VIA support +VIA_ENABLE=yes + +# Size optimizations to fit VIA support +# +# These optimizations are pretty intrusive because they remove the idle thread. +# Without idle thread some sleep related functions no longer function. +# These broken functions are overwritten with patched variants. +# +# These optimization are copied from: +# https://github.com/gloryhzw/qmk_firmware/blob/sn32/keyboards/gmmk/full + +# Reduce RAW endpoints +OPT_DEFS += -DRAW_IN_CAPACITY=1 +OPT_DEFS += -DRAW_OUT_CAPACITY=1 + +# Remove idle thread +OPT_DEFS += -DCH_CFG_NO_IDLE_THREAD=TRUE + +# Include the patched functions +SRC += keymaps/via/no_idle_thread.c diff --git a/keyboards/keychron/c1/plain/plain.json b/keyboards/keychron/c1/plain/plain_via.json similarity index 100% rename from keyboards/keychron/c1/plain/plain.json rename to keyboards/keychron/c1/plain/plain_via.json diff --git a/keyboards/keychron/c1/plain/readme.md b/keyboards/keychron/c1/plain/readme.md new file mode 100644 index 000000000000..5a98b3565084 --- /dev/null +++ b/keyboards/keychron/c1/plain/readme.md @@ -0,0 +1,72 @@ +# Keychron C1 Plain + +A customizable TKL keyboard. + +* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [edlf](https://github.com/edlf) +* Hardware Supported: Keychron C1 Plain (SN32F268) +* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) + +# Install +1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. +1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/tag/v0.2.1). +1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x00` as the qmk offset. +1. Click 'Flash QMK...' and flash jumploader-keychron_c1_white.bin. This can be found in 'Pre-Compiled Jumploaders' build by the latest [Sonix keyboard bootloader action](https://github.com/SonixQMK/sonix-keyboard-bootloader/actions). +1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x200` as the qmk offset. +1. Lastly, click 'Flash QMK...' and flash keychron_c1_white_default.bin. This can be found in 'Pre-Compiled Firmware' build by the latest [Sonix QMK firmware action](https://github.com/SonixQMK/qmk_firmware/actions). + +# Keymapping +### Windows Mode +
+ +Without Fn | With Fn +---------- | ------- +ESC | Reset keyboard +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Task View +F4 | File Explorer +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Print Screen | Snip & Sketch +Cortana | - +Lock PC | - + +
+ +### Mac Mode +
+ +Without Fn | With Fn +---------- | ------- +ESC | Reset keyboard +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | None +F4 | Finder +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Take a screenshot (whole screen) | Take a screenshot (specific area) +Siri (hold down) | - +Lock Mac | - + +
+ +# More Info + +Make example for this keyboard (after setting up your build environment): + + make keychron/c1/plain:plain_ansi + +[Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. + +For more info and detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme + +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/c1/readme.md b/keyboards/keychron/c1/readme.md index 28a593004ccc..afc1b8ca206a 100644 --- a/keyboards/keychron/c1/readme.md +++ b/keyboards/keychron/c1/readme.md @@ -4,8 +4,8 @@ A customizable TKL keyboard. -* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) -* Hardware Supported: Keychron C1 RGB, White, Plain +* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21), [IsaacDynamo](https://github.com/IsaacDynamo), [edlf](https://github.com/edlf) +* Hardware Supported: All variants of Keychron C1 * Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) * * * diff --git a/keyboards/keychron/c1/white/config.h b/keyboards/keychron/c1/white/config.h new file mode 100644 index 000000000000..16df52d227c9 --- /dev/null +++ b/keyboards/keychron/c1/white/config.h @@ -0,0 +1,77 @@ +/* Copyright 2020 Adam Honse + * Copyright 2020 Dimitris Mantzouranis + * + * 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 "config_common.h" + +/* USB Device descriptor parameter */ +#define DESCRIPTION Keychron \x43\x31 Plain + +#define USB_MAX_POWER_CONSUMPTION 100 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, D0 } +#define MATRIX_ROW_PINS { C3, C4, C5, C6, C7, C8 } + +/* LED matrix */ +#define LED_MATRIX_ROWS MATRIX_ROWS +#define LED_MATRIX_ROW_CHANNELS 1 +#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS) +#define LED_MATRIX_ROW_PINS { C0, C1, C2, D4, C9, C10 } + +#define LED_MATRIX_COLS MATRIX_COLS +#define LED_MATRIX_COL_PINS MATRIX_COL_PINS + +#define DRIVER_LED_TOTAL (87) + +/* Backlight configuration */ +#define RGB_MATRIX_VAL_STEP 32 +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + +/* Connects each switch in the dip switch to the GPIO pin of the MCU */ +#define DIP_SWITCH_PINS { D7 } + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* LED Status indicators */ +#define LED_CAPS_LOCK_PIN B3 +#define LED_PIN_ON_STATE 1 + +#define LED_MAC_PIN B4 +#define LED_WIN_PIN B5 + +/* Disable the following animation because they are not interesting in monochrome */ +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define DISABLE_RGB_MATRIX_DUAL_BEACON + +/* TODO: Disabled the following animation because they crash the keyboard. Probably due to a too small stack */ +#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS diff --git a/keyboards/keychron/c1/white/info.json b/keyboards/keychron/c1/white/info.json new file mode 100644 index 000000000000..1ccc86137007 --- /dev/null +++ b/keyboards/keychron/c1/white/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "Keychron C1 white", + "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", + "maintainer": "IsaacDynamo", + "width": 17, + "height": 6, + "layouts": { + "LAYOUT": { + "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Mic", "x":16.25, "y":0}, {"label":"Lamp", "x":17.25, "y":0}, + {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/keychron/c1/white/rand.c b/keyboards/keychron/c1/white/rand.c new file mode 100644 index 000000000000..a1096bbe2b58 --- /dev/null +++ b/keyboards/keychron/c1/white/rand.c @@ -0,0 +1,31 @@ +// Small rand() implementation +// +// The libc rand implementation takes to much flash space, so an smaller rand() function is used. +#include "quantum.h" + +int rand(void) +{ + // static unsigned int z4; + unsigned int z1, z2, z3, z4; + int r; + unsigned int b; + + z1 = timer_read32(); + z2 = 12345; + z3 = 12345; + z4 = z1 << 8; + + b = ((z1 << 6) ^ z1) >> 13; + z1 = ((z1 & 4294967294U) << 18) ^ b; + b = ((z2 << 2) ^ z2) >> 27; + z2 = ((z2 & 4294967288U) << 2) ^ b; + b = ((z3 << 13) ^ z3) >> 21; + z3 = ((z3 & 4294967280U) << 7) ^ b; + b = ((z4 << 3) ^ z4) >> 12; + z4 = ((z4 & 4294967168U) << 13) ^ b; + + r = z1 ^ z2 ^ z3 ^ z4; + // z4 = r; + + return r; +} diff --git a/keyboards/keychron/c1/white/readme.md b/keyboards/keychron/c1/white/readme.md new file mode 100644 index 000000000000..0860718f81dc --- /dev/null +++ b/keyboards/keychron/c1/white/readme.md @@ -0,0 +1,86 @@ +# Keychron C1 White + +![Keychron C1](https://i.imgur.com/oB9h56v.png) + +A customizable TKL keyboard. + +* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo) +* Hardware Supported: Keychron C1 White +* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) + +# Install +1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. +1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/latest). +1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x00` as the qmk offset. +1. Click 'Flash QMK...' and flash jumploader-keychron_c1_white.bin. This can be found in 'Pre-Compiled Jumploaders' build by the latest [Sonix keyboard bootloader action](https://github.com/SonixQMK/sonix-keyboard-bootloader/actions). +1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x200` as the qmk offset. +1. Lastly, click 'Flash QMK...' and flash keychron_c1_white_default.bin. This can be found in 'Pre-Compiled Firmware' build by the latest [Sonix QMK firmware action](https://github.com/SonixQMK/qmk_firmware/actions). + +# Keymapping +### Windows Mode +
+ +Without Fn | With Fn +---------- | ------- +ESC | Reset keyboard +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Task View +F4 | File Explorer +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Print Screen | Snip & Sketch +Cortana | - +Toggle backlight | - +↑ | Increase effect speed +← | Cycle through modes in reverse +↓ | Decrease effect speed +→ | Cycle through modes + +
+ +### Mac Mode +
+ +Without Fn | With Fn +---------- | ------- +ESC | Reset keyboard +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | None +F4 | Finder +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Take a screenshot (whole screen) | Take a screenshot (specific area) +Siri (hold down) | - +Toggle backlight | - +↑ | Increase effect speed +← | Cycle through modes in reverse +↓ | Decrease effect speed +→ | Cycle through modes + +
+ +# More Info + +Make example for this keyboard (after setting up your build environment): + + make keychron/c1/white:white_ansi + +[Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. + +For more info and detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme + +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/c1/white/rgb_matrix_kb.inc b/keyboards/keychron/c1/white/rgb_matrix_kb.inc new file mode 100644 index 000000000000..cbeff4e047fc --- /dev/null +++ b/keyboards/keychron/c1/white/rgb_matrix_kb.inc @@ -0,0 +1,40 @@ +#ifndef DISABLE_RGB_MATRIX_HIGH_CONTRAST +RGB_MATRIX_EFFECT(HIGH_CONTRAST) +RGB_MATRIX_EFFECT(HIGH_CONTRAST2) +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +// Only light up black keys. These are marked with 128 in g_led_config. +bool HIGH_CONTRAST(effect_params_t* params) { + RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + if (HAS_FLAGS(g_led_config.flags[i], 128)) { + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(i, 0, 0, 0); + } + } + return led_max < DRIVER_LED_TOTAL; +} + +// Only light up black and orange keys. These are marked with 128 and 64 in g_led_config. +// Use this high contrast mode when you use black keycaps for Esc and lightbulb key and what them to be lit as wel. +bool HIGH_CONTRAST2(effect_params_t* params) { + RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + if (HAS_FLAGS(g_led_config.flags[i], 128) || HAS_FLAGS(g_led_config.flags[i], 64)) { + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(i, 0, 0, 0); + } + } + return led_max < DRIVER_LED_TOTAL; +} + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS +#endif // DISABLE_RGB_MATRIX_HIGH_CONTRAST diff --git a/keyboards/keychron/c1/white/rules.mk b/keyboards/keychron/c1/white/rules.mk new file mode 100644 index 000000000000..061446de361c --- /dev/null +++ b/keyboards/keychron/c1/white/rules.mk @@ -0,0 +1,15 @@ +# project specific files +SRC += rand.c + +# MCU name +MCU = SN32F268F + +# Custom Key and LED matrix handling +CUSTOM_MATRIX = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = SN32F26x +RGB_MATRIX_CUSTOM_KB = yes + +# Reduce code size +USE_PROCESS_STACKSIZE = 0x1E0 +USE_EXCEPTIONS_STACKSIZE = 0xF0 diff --git a/keyboards/keychron/c1/white/white.c b/keyboards/keychron/c1/white/white.c new file mode 100644 index 000000000000..4ce51057b133 --- /dev/null +++ b/keyboards/keychron/c1/white/white.c @@ -0,0 +1,122 @@ +/* Copyright 2021 IsaacDynamo + * + * 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 "white.h" + +// Manage Windows and Mac LEDs +// - Show status of mode switch +// - Turn LEDs off durring USB suspend +static bool mode_leds_show = true; +static bool mode_leds_windows; + +static void mode_leds_update(void){ + writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); + writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); +} + +bool dip_switch_update_kb(uint8_t index, bool active){ + if(index == 0) { + if(active) { // Mac mode + layer_move(MAC_BASE); + } else { // Windows mode + layer_move(WIN_BASE); + } + + // Update mode and update leds + mode_leds_windows = !active; + mode_leds_update(); + } + + dip_switch_update_user(index, active); + return true; +} + +void keyboard_pre_init_kb(void) { + // Setup Win & Mac LED Pins as output + setPinOutput(LED_WIN_PIN); + setPinOutput(LED_MAC_PIN); + + // WORKAROUND: Mac & Windows LED flicker. + // Normally the GPIOs in DIP_SWITCH_PINS will be initialized by dip_switch_init(). + // But during startup of the keyboard the Mac/Windows dip switch seems to jitter, causing the Mac and Windows LEDs to flicker. + // Maybe the internal pull-up of this chip is really weak, and needs some time to pullup the input voltage to the high level? Seems unlikely but cannot think of a better explanation. + // By doing the configuration of the GPIOs here the pullup is enabled earlier and the flicker is gone. + const pin_t dip_switch_pad[] = DIP_SWITCH_PINS; + const size_t size = sizeof(dip_switch_pad) / sizeof(dip_switch_pad[0]); + for (size_t i=0; i Date: Mon, 7 Feb 2022 14:01:25 +0800 Subject: [PATCH 03/34] [Keychron C1 Series] Restructure C1 RGB Co-Authored-By: dexter93 Co-Authored-By: IsaacDynamo <61521674+IsaacDynamo@users.noreply.github.com> Co-Authored-By: noldevin <85706813+noldevin@users.noreply.github.com> Co-Authored-By: edlf <93866317+edlf@users.noreply.github.com> --- .../keychron/c1/keymaps/rgb_ansi/keymap.c | 113 ++++++++++ .../keychron/c1/keymaps/rgb_via/keymap.c | 3 + .../keychron/c1/keymaps/rgb_via/rules.mk | 1 + keyboards/keychron/c1/plain/config.h | 21 -- keyboards/keychron/c1/rgb/config.h | 87 ++++++++ keyboards/keychron/c1/rgb/info.json | 18 ++ keyboards/keychron/c1/rgb/readme.md | 83 ++++++++ keyboards/keychron/c1/rgb/rgb.c | 101 +++++++++ keyboards/keychron/c1/rgb/rgb.h | 22 ++ keyboards/keychron/c1/rgb/rgb.json | 196 ++++++++++++++++++ keyboards/keychron/c1/rgb/rules.mk | 10 + keyboards/keychron/c1/white/config.h | 21 -- 12 files changed, 634 insertions(+), 42 deletions(-) create mode 100644 keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c create mode 100644 keyboards/keychron/c1/keymaps/rgb_via/keymap.c create mode 100644 keyboards/keychron/c1/keymaps/rgb_via/rules.mk create mode 100644 keyboards/keychron/c1/rgb/config.h create mode 100644 keyboards/keychron/c1/rgb/info.json create mode 100644 keyboards/keychron/c1/rgb/readme.md create mode 100644 keyboards/keychron/c1/rgb/rgb.c create mode 100644 keyboards/keychron/c1/rgb/rgb.h create mode 100644 keyboards/keychron/c1/rgb/rgb.json create mode 100644 keyboards/keychron/c1/rgb/rules.mk diff --git a/keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c b/keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c new file mode 100644 index 000000000000..3218de291b89 --- /dev/null +++ b/keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c @@ -0,0 +1,113 @@ +/* +Copyright 2020 Dimitris Mantzouranis + +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 + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + WIN_BASE = 0, + WIN_FN = 1, + MAC_BASE = 2, + MAC_FN = 3, +}; + +#define KC_TASK LGUI(KC_TAB) // Task viewer +#define KC_FLXP LGUI(KC_E) // Windows file explorer +#define KC_CRTN LGUI(KC_C) // Cortana | Microsoft Teams +#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool + +#define KC_MSSN LGUI(KC_F3) // Mission Control +#define KC_FIND LALT(LGUI(KC_SPC)) // Finder +#define KC_SIRI LGUI(KC_SPC) // Siri +#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot +#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Windows layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [WIN_BASE] = { // Windows base layout + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { 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_NO, KC_PSCR, KC_CRTN, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, + { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, + { KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } + }, + + [WIN_FN] = { // Windows Fn overlay + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { RESET, 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_NO, KC_SNIP, _______, RGB_TOG }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, + { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, + { _______, GUI_TOG, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } + }, + + /* Mac layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [MAC_BASE] = { // Mac base layout + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { 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_NO, KC_MSCR, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, + { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, + { KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_RALT, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } + }, + + [MAC_FN] = { // Mac Fn overlay + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + { RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MSNP, _______, RGB_TOG }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, + { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, + { _______, _______, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } + } +}; diff --git a/keyboards/keychron/c1/keymaps/rgb_via/keymap.c b/keyboards/keychron/c1/keymaps/rgb_via/keymap.c new file mode 100644 index 000000000000..5e09c32875e0 --- /dev/null +++ b/keyboards/keychron/c1/keymaps/rgb_via/keymap.c @@ -0,0 +1,3 @@ +// Include default keymap +// This way the VIA keymap is always up to date with the default keymap +#include "../rgb_ansi/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/rgb_via/rules.mk b/keyboards/keychron/c1/keymaps/rgb_via/rules.mk new file mode 100644 index 000000000000..74edb2bf0d41 --- /dev/null +++ b/keyboards/keychron/c1/keymaps/rgb_via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE=yes diff --git a/keyboards/keychron/c1/plain/config.h b/keyboards/keychron/c1/plain/config.h index 8fff5d6df528..d5f90ac33b28 100644 --- a/keyboards/keychron/c1/plain/config.h +++ b/keyboards/keychron/c1/plain/config.h @@ -1,24 +1,3 @@ -/* Copyright 2020 Adam Honse - * Copyright 2020 Dimitris Mantzouranis - * - * 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 "config_common.h" - /* USB Device descriptor parameter */ #define DESCRIPTION Keychron \x43\x31 Plain diff --git a/keyboards/keychron/c1/rgb/config.h b/keyboards/keychron/c1/rgb/config.h new file mode 100644 index 000000000000..71bd775f23d7 --- /dev/null +++ b/keyboards/keychron/c1/rgb/config.h @@ -0,0 +1,87 @@ +/* USB Device descriptor parameter */ +#define DESCRIPTION \x43\x31 RGB + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_COL_PINS { A8, A9, A10, A11, A12, A13, A14, A15, B0, B1, B2, B3, B4, B5, B6, B7, B8 } +#define MATRIX_ROW_PINS { C15, D11, D10, D9, D8, D7 } + +// Backlight configuration +#define BACKLIGHT_LEVELS 8 + +#define LED_MATRIX_ROWS MATRIX_ROWS +#define LED_MATRIX_ROW_CHANNELS 3 +#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS) +#define LED_MATRIX_ROW_PINS { C0, C1, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, B13, D3, B15, B14 } + +#define LED_MATRIX_COLS MATRIX_COLS +#define LED_MATRIX_COL_PINS MATRIX_COL_PINS + +#define DRIVER_LED_TOTAL (87) + +// Connects each switch in the dip switch to the GPIO pin of the MCU +#define DIP_SWITCH_PINS { D4 } + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 0 + +/* LED Status indicators */ +#define LED_CAPS_LOCK_PIN B10 +#define LED_MAC_PIN B11 //labeled Mac on KB since no Scroll Lock +#define LED_WIN_PIN B12 //labeled Windows on KB since no Numpad +#define LED_PIN_ON_STATE 1 + +/* RGB Non-Reactive 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_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +/* RGB Reactive Effects Toggle */ +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +//#define RGB_MATRIX_KEYRELEASES + +/* RGB Reactive Effects */ +#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 diff --git a/keyboards/keychron/c1/rgb/info.json b/keyboards/keychron/c1/rgb/info.json new file mode 100644 index 000000000000..742d7d4e7fe4 --- /dev/null +++ b/keyboards/keychron/c1/rgb/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "Keychron C1 RGB", + "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", + "maintainer": "noldevin, vjdato21", + "width": 17, + "height": 6, + "layouts": { + "LAYOUT": { + "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Assistant", "x":16.25, "y":0}, {"label":"RGB", "x":17.25, "y":0}, + {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Fn", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} diff --git a/keyboards/keychron/c1/rgb/readme.md b/keyboards/keychron/c1/rgb/readme.md new file mode 100644 index 000000000000..83066a11184a --- /dev/null +++ b/keyboards/keychron/c1/rgb/readme.md @@ -0,0 +1,83 @@ +# Keychron C1 RGB + +A customizable TKL keyboard. + +* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) +* Hardware Supported: Keychron C1 RGB (SN32F248B) +* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make keychron/c1/rgb:rgb_ansi + +## How to Flash +Flashing example for this keyboard: +1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. +1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/latest). +1. In Sonix Flasher, select `SN32F24X` under 'Device'. And select `0x00` as the qmk offset. +1. Lastly, click 'Flash QMK...' and locate the compiled firmware. + +* * * +# Keymapping +### Windows Mode +
+ +Without Fn | With Fn +---------- | ------- +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Task View +F4 | File Explorer +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Print Screen | Snip & Sketch +Cortana / Microsoft Teams | None +Change RGB | Toggle RGB +⊞ | Windows Key Lock Toggle +Home | NKRO Toggle +↑ | Increase RGB Hue +← | Decrease RGB Saturation +↓ | Decrease RGB Hue +→ | Increase RGB Saturation + +
+ +### Mac Mode +
+ +Without Fn | With Fn +---------- | ------- +F1 | Decrease PC Brightness +F2 | Increase PC Brightness +F3 | Mission Control +F4 | Finder +F5 | Decrease KB Brightness +F6 | Increase KB Brightness +F7 | Previous Track +F8 | Play/Pause Track +F9 | Next Track +F10 | Mute +F11 | Decrease Volume +F12 | Increase Volume +Take a screenshot (whole screen) | Take a screenshot (specific area) +Siri (hold down) | None +Change RGB | Toggle RGB +Home | NKRO Toggle +↑ | Increase RGB Hue +← | Decrease RGB Saturation +↓ | Decrease RGB Hue +→ | Increase RGB Saturation + +
+ +* * * + +For more information and more detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme + +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/c1/rgb/rgb.c b/keyboards/keychron/c1/rgb/rgb.c new file mode 100644 index 000000000000..f994ebc9d092 --- /dev/null +++ b/keyboards/keychron/c1/rgb/rgb.c @@ -0,0 +1,101 @@ +/* +Copyright 2021 Dimitris Mantzouranis + +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 "rgb.h" + +// Manage Windows and Mac LEDs +// - Show status of mode switch +// - Turn LEDs off durring USB suspend +static bool mode_leds_show = true; +static bool mode_leds_windows; + +static void mode_leds_update(void){ + writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); + writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); +} + +bool dip_switch_update_user(uint8_t index, bool active){ + if(index == 0) { + if(active) { // Mac mode + layer_move(2); + } else { // Windows mode + layer_move(0); + } + + // Update mode and update leds + mode_leds_windows = !active; + mode_leds_update(); + } + return true; +} + +void keyboard_pre_init_kb(void) { + // Setup Win & Mac LED Pins as output + setPinOutput(LED_WIN_PIN); + setPinOutput(LED_MAC_PIN); + + keyboard_pre_init_user(); +} + +void suspend_power_down_kb(void) { + // Turn leds off + mode_leds_show = false; + mode_leds_update(); + + suspend_power_down_user(); +} + +/// TODO: Clean-up workaround +/// Currently the suspend_wakeup_init_user() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 +/// A workaround is to use housekeeping_task_user() instead. +void housekeeping_task_kb(void) { + // Turn on + mode_leds_show = true; + mode_leds_update(); + + housekeeping_task_user(); +} + +#ifdef RGB_MATRIX_ENABLE + +#include "rgb_matrix.h" + +#define XX NO_LED + +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, XX, 13, 14, 15}, + { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, + { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, + { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, XX, 62, XX, XX, XX}, + { 63, XX, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, XX, 74, XX, 75, XX}, + { 76, 77, 78, XX, XX, XX, 79, XX, XX, XX, 80, 81, 82, 83, 84, 85, 86} +}, { + {0 , 0}, {12 , 0}, {25 , 0}, {37 , 0}, {50 , 0}, {62 , 0}, {75 , 0}, {87 , 0}, {100, 0}, {112, 0}, {124, 0}, {137, 0}, {149, 0}, {174, 0}, {187, 0}, {199, 0}, + {0 , 13}, {12 , 13}, {25 , 13}, {37 , 13}, {50 , 13}, {62 , 13}, {75 , 13}, {87 , 13}, {100, 13}, {112, 13}, {124, 13}, {137, 13}, {149, 13}, {168, 13}, {174, 13}, {187, 13}, {199, 13}, + {3 , 26}, {19 , 26}, {31 , 26}, {44 , 26}, {56 , 26}, {68 , 26}, {81 , 26}, {93 , 26}, {106, 26}, {118, 26}, {131, 26}, {143, 26}, {156, 26}, {168, 26}, {174, 26}, {187, 26}, {199, 26}, + {5 , 38}, {22 , 38}, {34 , 38}, {47 , 38}, {59 , 38}, {72 , 38}, {84 , 38}, {96 , 38}, {109, 38}, {121, 38}, {134, 38}, {146, 38}, {166, 38}, + {8 , 51}, {28 , 51}, {40 , 51}, {53 , 51}, {65 , 51}, {78 , 51}, {90 , 51}, {103, 51}, {115, 51}, {128, 51}, {140, 51}, {157, 51}, {187, 51}, + {2 , 64}, {17 , 64}, {33 , 64}, {79 , 64}, {124, 64}, {137, 64}, {149, 64}, {162, 64}, {174, 64}, {187, 64}, {199, 64}, +}, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 +} }; + +#endif diff --git a/keyboards/keychron/c1/rgb/rgb.h b/keyboards/keychron/c1/rgb/rgb.h new file mode 100644 index 000000000000..6ecd143b1132 --- /dev/null +++ b/keyboards/keychron/c1/rgb/rgb.h @@ -0,0 +1,22 @@ +#pragma once + +#include "quantum.h" +// readability +#define XXX KC_NO + +#define LAYOUT_tkl_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + 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, k5g \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, XXX}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f, k2g}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, XXX, XXX, XXX, XXX}, \ + {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, XXX, XXX, k4f, XXX}, \ + {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d k5e, k5f, k5g} \ +} diff --git a/keyboards/keychron/c1/rgb/rgb.json b/keyboards/keychron/c1/rgb/rgb.json new file mode 100644 index 000000000000..2432177ec8d0 --- /dev/null +++ b/keyboards/keychron/c1/rgb/rgb.json @@ -0,0 +1,196 @@ +{ + "name": "Keychron C1", + "vendorId": "0x3434", + "productId": "0xFE20", + "lighting": { + "extends": "qmk_rgblight", + "underglowEffects": [ + [ + "None", + 0 + ], + [ + "SOLID_COLOR", + 1 + ], + [ + "ALPHAS_MODS", + 1 + ], + [ + "GRADIENT_UP_DOWN", + 1 + ], + [ + "GRADIENT_LEFT_RIGHT", + 1 + ], + [ + "BREATHING", + 1 + ], + [ + "BAND_SAT", + 1 + ], + [ + "BAND_VAL", + 1 + ], + [ + "BAND_PINWHEEL_SAT", + 1 + ], + [ + "BAND_PINWHEEL_VAL", + 1 + ], + [ + "BAND_SPIRAL_SAT", + 1 + ], + [ + "BAND_SPIRAL_VAL", + 1 + ], + [ + "CYCLE_ALL", + 1 + ], + [ + "CYCLE_LEFT_RIGHT", + 1 + ], + [ + "CYCLE_UP_DOWN", + 1 + ], + [ + "CYCLE_OUT_IN", + 1 + ], + [ + "CYCLE_OUT_IN_DUAL", + 1 + ], + [ + "RAINBOW_MOVING_CHEVRON", + 1 + ], + [ + "CYCLE_PINWHEEL", + 1 + ], + [ + "CYCLE_SPIRAL", + 1 + ], + [ + "DUAL_BEACON", + 1 + ], + [ + "RAINBOW_BEACON", + 1 + ], + [ + "RAINBOW_PINWHEELS", + 1 + ], + [ + "RAINDROPS", + 1 + ], + [ + "JELLYBEAN_RAINDROPS", + 1 + ], + [ + "HUE_BREATHING", + 1 + ], + [ + "HUE_PENDULUM", + 1 + ], + [ + "HUE_WAVE", + 1 + ], + ["PIXEL_FRACTAL", 1], + ["PIXEL_RAIN", 1], + [ + "TYPING_HEATMAP", + 1 + ], + [ + "DIGITAL_RAIN", + 1 + ], + [ + "SOLID_REACTIVE_SIMPLE", + 1 + ], + [ + "SOLID_REACTIVE", + 1 + ], + [ + "SOLID_REACTIVE_WIDE", + 1 + ], + [ + "SOLID_REACTIVE_MULTIWIDE", + 1 + ], + [ + "SOLID_REACTIVE_CROSS", + 1 + ], + [ + "SOLID_REACTIVE_MULTICROSS", + 1 + ], + [ + "SOLID_REACTIVE_NEXUS", + 1 + ], + [ + "SOLID_REACTIVE_MULTINEXUS", + 1 + ], + [ + "SPLASH", + 1 + ], + [ + "MULTISPLASH", + 1 + ], + [ + "SOLID_SPLASH", + 1 + ], + [ + "SOLID_MULTISPLASH", + 1 + ] + ], + "supportedLightingValues": [ + 128, + 129, + 131 + ] + }, + "matrix": {"rows": 6, "cols": 17}, + "layouts": { + "keymap": [ + ["0,0", {"x": 1}, "0,1", "0,2", "0,3", "0,4", {"x": 0.5}, "0,5", "0,6", "0,7", "0,8", {"x": 0.5}, "0,9", "0,10", "0,11", "0,12", {"x": 0.25}, "0,14", "0,15", "0,16"], + [{"y": 0.5}, "1,0", "1,1", "1,2", "1,3", "1,4", "1,5", "1,6", "1,7", "1,8", "1,9", "1,10", "1,11", "1,12", {"w": 2}, "1,13", {"x": 0.25 }, "1,14", "1,15", "1,16"], + [{"w": 1.5 }, "2,0", "2,1", "2,2", "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", "2,9", "2,10", "2,11", "2,12", {"w": 1.5}, "2,13", { "x": 0.25 }, "2,14", "2,15", "2,16"], + [{"w": 1.75 }, "3,0", "3,1", "3,2", "3,3", "3,4", "3,5", "3,6", "3,7", "3,8", "3,9", "3,10", "3,11", { "w": 2.25 }, "3,13"], + [{"w": 2.25 }, "4,0", "4,2", "4,3", "4,4", "4,5", "4,6", "4,7", "4,8", "4,9", "4,10", "4,11", {"w": 2.75 }, "4,13", {"x": 1.25 }, "4,15"], + [{"w": 1.25 }, "5,0", {"w": 1.25 }, "5,1", {"w": 1.25 }, "5,2", {"w": 6.25 }, "5,6", {"w": 1.25 }, "5,10", {"w": 1.25 }, "5,11", {"w": 1.25 }, "5,12", {"w": 1.25 }, "5,13", {"x": 0.25 }, "5,14", "5,15", "5,16"] + ] + } +} diff --git a/keyboards/keychron/c1/rgb/rules.mk b/keyboards/keychron/c1/rgb/rules.mk new file mode 100644 index 000000000000..005bb7b78d87 --- /dev/null +++ b/keyboards/keychron/c1/rgb/rules.mk @@ -0,0 +1,10 @@ +# project specific files +SRC = ../../../drivers/led/sn32/matrix_sn32f24xx.c + +# MCU name +MCU = SN32F248BF + +# Custom RGB matrix handling +CUSTOM_MATRIX = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = SN32F24xB diff --git a/keyboards/keychron/c1/white/config.h b/keyboards/keychron/c1/white/config.h index 16df52d227c9..483d06cd4bdf 100644 --- a/keyboards/keychron/c1/white/config.h +++ b/keyboards/keychron/c1/white/config.h @@ -1,24 +1,3 @@ -/* Copyright 2020 Adam Honse - * Copyright 2020 Dimitris Mantzouranis - * - * 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 "config_common.h" - /* USB Device descriptor parameter */ #define DESCRIPTION Keychron \x43\x31 Plain From b217366efced88424170a3d2791533ff671fa439 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Mon, 7 Feb 2022 20:54:25 +0800 Subject: [PATCH 04/34] [Keychron C1 Series] Update - Remove old and backup files. - Fixed C1 RGB layout. - Changed formatting of C1 RGB's keymap. --- keyboards/keychron/c1-old/plain/config.h | 67 ------ keyboards/keychron/c1-old/plain/info.json | 18 -- .../c1-old/plain/keymaps/default/keymap.c | 102 --------- .../c1-old/plain/keymaps/via/keymap.c | 3 - .../c1-old/plain/keymaps/via/rules.mk | 1 - keyboards/keychron/c1-old/plain/plain.c | 92 -------- keyboards/keychron/c1-old/plain/plain.h | 31 --- keyboards/keychron/c1-old/plain/plain.json | 188 ----------------- keyboards/keychron/c1-old/plain/rand.c | 31 --- keyboards/keychron/c1-old/plain/readme.md | 74 ------- keyboards/keychron/c1-old/plain/rules.mk | 23 -- keyboards/keychron/c1-old/rgb/config.h | 109 ---------- keyboards/keychron/c1-old/rgb/config_led.c | 31 --- keyboards/keychron/c1-old/rgb/config_led.h | 32 --- keyboards/keychron/c1-old/rgb/info.json | 18 -- .../c1-old/rgb/keymaps/default/keymap.c | 113 ---------- .../keychron/c1-old/rgb/keymaps/via/config.h | 4 - .../keychron/c1-old/rgb/keymaps/via/keymap.c | 113 ---------- .../keychron/c1-old/rgb/keymaps/via/rules.mk | 1 - keyboards/keychron/c1-old/rgb/readme.md | 85 -------- keyboards/keychron/c1-old/rgb/rgb.c | 76 ------- keyboards/keychron/c1-old/rgb/rgb.h | 22 -- keyboards/keychron/c1-old/rgb/rgb.json | 196 ------------------ keyboards/keychron/c1-old/rgb/rules.mk | 32 --- keyboards/keychron/c1-old/white/config.h | 87 -------- keyboards/keychron/c1-old/white/info.json | 18 -- .../c1-old/white/keychron_c1_white_via.json | 185 ----------------- .../c1-old/white/keymaps/default/keymap.c | 100 --------- .../c1-old/white/keymaps/via/keymap.c | 3 - .../c1-old/white/keymaps/via/no_idle_thread.c | 30 --- .../c1-old/white/keymaps/via/rules.mk | 21 -- keyboards/keychron/c1-old/white/rand.c | 31 --- keyboards/keychron/c1-old/white/readme.md | 86 -------- .../keychron/c1-old/white/rgb_matrix_kb.inc | 40 ---- keyboards/keychron/c1-old/white/rules.mk | 25 --- keyboards/keychron/c1-old/white/white.c | 128 ------------ keyboards/keychron/c1-old/white/white.h | 31 --- keyboards/keychron/c1-remake/plain/config.h | 67 ------ keyboards/keychron/c1-remake/plain/info.json | 18 -- .../c1-remake/plain/keymaps/default/keymap.c | 102 --------- .../c1-remake/plain/keymaps/via/keymap.c | 3 - .../c1-remake/plain/keymaps/via/rules.mk | 1 - keyboards/keychron/c1-remake/plain/plain.c | 92 -------- keyboards/keychron/c1-remake/plain/plain.h | 31 --- keyboards/keychron/c1-remake/plain/plain.json | 188 ----------------- keyboards/keychron/c1-remake/plain/rand.c | 31 --- keyboards/keychron/c1-remake/plain/readme.md | 74 ------- keyboards/keychron/c1-remake/plain/rules.mk | 23 -- keyboards/keychron/c1-remake/rgb/config.h | 120 ----------- keyboards/keychron/c1-remake/rgb/info.json | 18 -- .../c1-remake/rgb/keymaps/default/keymap.c | 113 ---------- .../c1-remake/rgb/keymaps/via/config.h | 4 - .../c1-remake/rgb/keymaps/via/keymap.c | 113 ---------- .../c1-remake/rgb/keymaps/via/rules.mk | 1 - keyboards/keychron/c1-remake/rgb/readme.md | 85 -------- keyboards/keychron/c1-remake/rgb/rgb.c | 101 --------- keyboards/keychron/c1-remake/rgb/rgb.h | 22 -- keyboards/keychron/c1-remake/rgb/rgb.json | 196 ------------------ keyboards/keychron/c1-remake/rgb/rules.mk | 32 --- keyboards/keychron/c1-remake/white/config.h | 91 -------- keyboards/keychron/c1-remake/white/info.json | 18 -- .../white/keychron_c1_white_via.json | 185 ----------------- .../c1-remake/white/keymaps/default/keymap.c | 100 --------- .../c1-remake/white/keymaps/via/keymap.c | 3 - .../white/keymaps/via/no_idle_thread.c | 30 --- .../c1-remake/white/keymaps/via/rules.mk | 21 -- keyboards/keychron/c1-remake/white/rand.c | 31 --- keyboards/keychron/c1-remake/white/readme.md | 86 -------- .../c1-remake/white/rgb_matrix_kb.inc | 40 ---- keyboards/keychron/c1-remake/white/rules.mk | 25 --- keyboards/keychron/c1-remake/white/white.c | 122 ----------- keyboards/keychron/c1-remake/white/white.h | 31 --- .../keychron/c1/keymaps/rgb_ansi/keymap.c | 93 +++++---- keyboards/keychron/c1/rgb/rgb.c | 4 +- keyboards/keychron/c1/rgb/rgb.h | 15 +- 75 files changed, 56 insertions(+), 4521 deletions(-) delete mode 100644 keyboards/keychron/c1-old/plain/config.h delete mode 100644 keyboards/keychron/c1-old/plain/info.json delete mode 100644 keyboards/keychron/c1-old/plain/keymaps/default/keymap.c delete mode 100644 keyboards/keychron/c1-old/plain/keymaps/via/keymap.c delete mode 100644 keyboards/keychron/c1-old/plain/keymaps/via/rules.mk delete mode 100644 keyboards/keychron/c1-old/plain/plain.c delete mode 100644 keyboards/keychron/c1-old/plain/plain.h delete mode 100644 keyboards/keychron/c1-old/plain/plain.json delete mode 100644 keyboards/keychron/c1-old/plain/rand.c delete mode 100644 keyboards/keychron/c1-old/plain/readme.md delete mode 100644 keyboards/keychron/c1-old/plain/rules.mk delete mode 100644 keyboards/keychron/c1-old/rgb/config.h delete mode 100644 keyboards/keychron/c1-old/rgb/config_led.c delete mode 100644 keyboards/keychron/c1-old/rgb/config_led.h delete mode 100644 keyboards/keychron/c1-old/rgb/info.json delete mode 100644 keyboards/keychron/c1-old/rgb/keymaps/default/keymap.c delete mode 100644 keyboards/keychron/c1-old/rgb/keymaps/via/config.h delete mode 100644 keyboards/keychron/c1-old/rgb/keymaps/via/keymap.c delete mode 100644 keyboards/keychron/c1-old/rgb/keymaps/via/rules.mk delete mode 100644 keyboards/keychron/c1-old/rgb/readme.md delete mode 100644 keyboards/keychron/c1-old/rgb/rgb.c delete mode 100644 keyboards/keychron/c1-old/rgb/rgb.h delete mode 100644 keyboards/keychron/c1-old/rgb/rgb.json delete mode 100644 keyboards/keychron/c1-old/rgb/rules.mk delete mode 100644 keyboards/keychron/c1-old/white/config.h delete mode 100644 keyboards/keychron/c1-old/white/info.json delete mode 100644 keyboards/keychron/c1-old/white/keychron_c1_white_via.json delete mode 100644 keyboards/keychron/c1-old/white/keymaps/default/keymap.c delete mode 100644 keyboards/keychron/c1-old/white/keymaps/via/keymap.c delete mode 100644 keyboards/keychron/c1-old/white/keymaps/via/no_idle_thread.c delete mode 100644 keyboards/keychron/c1-old/white/keymaps/via/rules.mk delete mode 100644 keyboards/keychron/c1-old/white/rand.c delete mode 100644 keyboards/keychron/c1-old/white/readme.md delete mode 100644 keyboards/keychron/c1-old/white/rgb_matrix_kb.inc delete mode 100644 keyboards/keychron/c1-old/white/rules.mk delete mode 100644 keyboards/keychron/c1-old/white/white.c delete mode 100644 keyboards/keychron/c1-old/white/white.h delete mode 100644 keyboards/keychron/c1-remake/plain/config.h delete mode 100644 keyboards/keychron/c1-remake/plain/info.json delete mode 100644 keyboards/keychron/c1-remake/plain/keymaps/default/keymap.c delete mode 100644 keyboards/keychron/c1-remake/plain/keymaps/via/keymap.c delete mode 100644 keyboards/keychron/c1-remake/plain/keymaps/via/rules.mk delete mode 100644 keyboards/keychron/c1-remake/plain/plain.c delete mode 100644 keyboards/keychron/c1-remake/plain/plain.h delete mode 100644 keyboards/keychron/c1-remake/plain/plain.json delete mode 100644 keyboards/keychron/c1-remake/plain/rand.c delete mode 100644 keyboards/keychron/c1-remake/plain/readme.md delete mode 100644 keyboards/keychron/c1-remake/plain/rules.mk delete mode 100644 keyboards/keychron/c1-remake/rgb/config.h delete mode 100644 keyboards/keychron/c1-remake/rgb/info.json delete mode 100644 keyboards/keychron/c1-remake/rgb/keymaps/default/keymap.c delete mode 100644 keyboards/keychron/c1-remake/rgb/keymaps/via/config.h delete mode 100644 keyboards/keychron/c1-remake/rgb/keymaps/via/keymap.c delete mode 100644 keyboards/keychron/c1-remake/rgb/keymaps/via/rules.mk delete mode 100644 keyboards/keychron/c1-remake/rgb/readme.md delete mode 100644 keyboards/keychron/c1-remake/rgb/rgb.c delete mode 100644 keyboards/keychron/c1-remake/rgb/rgb.h delete mode 100644 keyboards/keychron/c1-remake/rgb/rgb.json delete mode 100644 keyboards/keychron/c1-remake/rgb/rules.mk delete mode 100644 keyboards/keychron/c1-remake/white/config.h delete mode 100644 keyboards/keychron/c1-remake/white/info.json delete mode 100644 keyboards/keychron/c1-remake/white/keychron_c1_white_via.json delete mode 100644 keyboards/keychron/c1-remake/white/keymaps/default/keymap.c delete mode 100644 keyboards/keychron/c1-remake/white/keymaps/via/keymap.c delete mode 100644 keyboards/keychron/c1-remake/white/keymaps/via/no_idle_thread.c delete mode 100644 keyboards/keychron/c1-remake/white/keymaps/via/rules.mk delete mode 100644 keyboards/keychron/c1-remake/white/rand.c delete mode 100644 keyboards/keychron/c1-remake/white/readme.md delete mode 100644 keyboards/keychron/c1-remake/white/rgb_matrix_kb.inc delete mode 100644 keyboards/keychron/c1-remake/white/rules.mk delete mode 100644 keyboards/keychron/c1-remake/white/white.c delete mode 100644 keyboards/keychron/c1-remake/white/white.h diff --git a/keyboards/keychron/c1-old/plain/config.h b/keyboards/keychron/c1-old/plain/config.h deleted file mode 100644 index b70037a069c3..000000000000 --- a/keyboards/keychron/c1-old/plain/config.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright 2020 Adam Honse - * Copyright 2020 Dimitris Mantzouranis - * - * 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 "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3434 -#define PRODUCT_ID 0xFE20 -#define DEVICE_VER 0x0001 - -#define MANUFACTURER Keychron -// \x43\x31 is "C1" in ASCII hex, this is used to prevent macro expansion, because C1 is also a pin macro. -#define PRODUCT \x43\x31 -#define DESCRIPTION \x43\x31 QMK - -#define WAIT_FOR_USB -#define USB_MAX_POWER_CONSUMPTION 100 - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 17 - -#define DIODE_DIRECTION COL2ROW - -#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, D0 } -#define MATRIX_ROW_PINS { C3, C4, C5, C6, C7, C8 } - -/* Keep LED Matrix pins so that we can set them low */ -#define LED_MATRIX_ROW_PINS { C0, C1, C2, D4, C9, C10 } - -/* Connects each switch in the dip switch to the GPIO pin of the MCU */ -#define DIP_SWITCH_PINS { D7 } - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* LED Status indicators */ -#define LED_CAPS_LOCK_PIN B3 -#define LED_PIN_ON_STATE 1 - -#define LED_MAC_PIN B4 -#define LED_WIN_PIN B5 - -/* Enable NKRO by default */ -#define FORCE_NKRO - -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 1000 - -/* Polling Rate */ -#define USB_POLLING_INTERVAL_MS 1 diff --git a/keyboards/keychron/c1-old/plain/info.json b/keyboards/keychron/c1-old/plain/info.json deleted file mode 100644 index 0a26b78b16a6..000000000000 --- a/keyboards/keychron/c1-old/plain/info.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "keyboard_name": "Keychron C1", - "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", - "maintainer": "IsaacDynamo", - "width": 17, - "height": 6, - "layouts": { - "LAYOUT": { - "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Mic", "x":16.25, "y":0}, {"label":"Lamp", "x":17.25, "y":0}, - {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, - {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, - {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, - {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, - {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] - } - } -} \ No newline at end of file diff --git a/keyboards/keychron/c1-old/plain/keymaps/default/keymap.c b/keyboards/keychron/c1-old/plain/keymaps/default/keymap.c deleted file mode 100644 index 16e60e95f6bd..000000000000 --- a/keyboards/keychron/c1-old/plain/keymaps/default/keymap.c +++ /dev/null @@ -1,102 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CORT LGUI(KC_C) // Cortana -#define KC_LOCK LGUI(KC_L) // Lock -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(WIN_FN) // Windows Fn - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(MAC_FN) // Mac Fn -#define KD_M_LK LCMD(LCTL(KC_Q)) // Mac Lock - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|LOCK| - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [WIN_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, KC_LOCK, \ - 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [WIN_FN] = LAYOUT( \ - RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ), - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|LOCK| - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [MAC_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, KD_M_LK, \ - 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [MAC_FN] = LAYOUT( \ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ) -}; diff --git a/keyboards/keychron/c1-old/plain/keymaps/via/keymap.c b/keyboards/keychron/c1-old/plain/keymaps/via/keymap.c deleted file mode 100644 index 9b448f5d59ca..000000000000 --- a/keyboards/keychron/c1-old/plain/keymaps/via/keymap.c +++ /dev/null @@ -1,3 +0,0 @@ -// Include default keymap -// This way the VIA keymap is always up to date with the default keymap -#include "../default/keymap.c" \ No newline at end of file diff --git a/keyboards/keychron/c1-old/plain/keymaps/via/rules.mk b/keyboards/keychron/c1-old/plain/keymaps/via/rules.mk deleted file mode 100644 index 74edb2bf0d41..000000000000 --- a/keyboards/keychron/c1-old/plain/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE=yes diff --git a/keyboards/keychron/c1-old/plain/plain.c b/keyboards/keychron/c1-old/plain/plain.c deleted file mode 100644 index 9e0d1f10eda3..000000000000 --- a/keyboards/keychron/c1-old/plain/plain.c +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright 2021 IsaacDynamo - * - * 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 "plain.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_kb(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(MAC_BASE); - } else { // Windows mode - layer_move(WIN_BASE); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - - dip_switch_update_user(index, active); - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - keyboard_pre_init_user(); -} - -void suspend_power_down_kb(void) { - // Turn leds off - mode_leds_show = false; - mode_leds_update(); - - suspend_power_down_user(); -} - -/// TODO: Clean-up workaround -/// Currently the suspend_wakeup_init_kb() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 -/// A workaround is to use housekeeping_task_kb() instead. -void housekeeping_task_kb(void) { - // Turn on - mode_leds_show = true; - mode_leds_update(); - - housekeeping_task_user(); -} - -#if CH_CFG_NO_IDLE_THREAD == TRUE - -# define CYCLES_PER_LOOP 9 -# define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) - -void chThdSleep(sysinterval_t time) { - uint32_t loops = time * LOOP_TIMES; - - for (uint32_t i = 0; i < loops; i++) __NOP(); -} - -/* suspend thread used in usb_main.c */ -msg_t chThdSuspendTimeoutS(thread_reference_t* trp, sysinterval_t timeout) { - osalSysUnlock(); - osalSysLock(); - - return MSG_OK; -} - -#endif /* CH_CFG_NO_IDLE_THREAD */ diff --git a/keyboards/keychron/c1-old/plain/plain.h b/keyboards/keychron/c1-old/plain/plain.h deleted file mode 100644 index d996ca48d968..000000000000 --- a/keyboards/keychron/c1-old/plain/plain.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include "quantum.h" - -// Each layer gets a name for readability -enum layer_names { - WIN_BASE = 0, - WIN_FN = 1, - MAC_BASE = 2, - MAC_FN = 3, -}; - -// readability -#define XXX KC_NO - -#define LAYOUT( \ - k00, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ - 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, k5g \ -) \ -{ \ - {k00, XXX, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ - {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g}, \ - {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX}, \ - {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, k4f, XXX}, \ - {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g} \ -} diff --git a/keyboards/keychron/c1-old/plain/plain.json b/keyboards/keychron/c1-old/plain/plain.json deleted file mode 100644 index dd407c47f0a7..000000000000 --- a/keyboards/keychron/c1-old/plain/plain.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "name": "Keychron C1", - "lighting": "none", - "vendorId": "0x3434", - "productId": "0xfe20", - "matrix": { - "rows": 6, - "cols": 17 - }, - "layouts": { - "keymap": [ - [ - "0,1", - { - "x": 1 - }, - "0,2", - "0,3", - "0,4", - "0,5", - { - "x": 0.5 - }, - "0,6", - "0,7", - "0,8", - "0,9", - { - "x": 0.5 - }, - "0,10", - "0,11", - "0,12", - "0,13", - { - "x": 0.25 - }, - "0,14", - "0,15", - "0,16" - ], - [ - { - "y": 0.5 - }, - "1,0", - "1,1", - "1,2", - "1,3", - "1,4", - "1,5", - "1,6", - "1,7", - "1,8", - "1,9", - "1,10", - "1,11", - "1,12", - { - "w": 2 - }, - "1,13", - { - "x": 0.25 - }, - "1,14", - "1,15", - "1,16" - ], - [ - { - "w": 1.5 - }, - "2,0", - "2,1", - "2,2", - "2,3", - "2,4", - "2,5", - "2,6", - "2,7", - "2,8", - "2,9", - "2,10", - "2,11", - "2,12", - { - "w": 1.5 - }, - "2,13", - { - "x": 0.25 - }, - "2,14", - "2,15", - "2,16" - ], - [ - { - "w": 1.75 - }, - "3,0", - "3,1", - "3,2", - "3,3", - "3,4", - "3,5", - "3,6", - "3,7", - "3,8", - "3,9", - "3,10", - "3,11", - { - "w": 2.25 - }, - "3,13" - ], - [ - { - "w": 2.25 - }, - "4,0", - "4,2", - "4,3", - "4,4", - "4,5", - "4,6", - "4,7", - "4,8", - "4,9", - "4,10", - "4,11", - { - "w": 2.75 - }, - "4,13", - { - "x": 1.25 - }, - "4,15", - { - "x": 1.25 - } - ], - [ - { - "w": 1.25 - }, - "5,0", - { - "w": 1.25 - }, - "5,1", - { - "w": 1.25 - }, - "5,2", - { - "w": 6.25 - }, - "5,6", - { - "w": 1.25 - }, - "5,10", - { - "w": 1.25 - }, - "5,11", - { - "w": 1.25 - }, - "5,12", - { - "w": 1.25 - }, - "5,13", - { - "x": 0.25 - }, - "5,14", - "5,15", - "5,16" - ] - ] - } -} \ No newline at end of file diff --git a/keyboards/keychron/c1-old/plain/rand.c b/keyboards/keychron/c1-old/plain/rand.c deleted file mode 100644 index a1096bbe2b58..000000000000 --- a/keyboards/keychron/c1-old/plain/rand.c +++ /dev/null @@ -1,31 +0,0 @@ -// Small rand() implementation -// -// The libc rand implementation takes to much flash space, so an smaller rand() function is used. -#include "quantum.h" - -int rand(void) -{ - // static unsigned int z4; - unsigned int z1, z2, z3, z4; - int r; - unsigned int b; - - z1 = timer_read32(); - z2 = 12345; - z3 = 12345; - z4 = z1 << 8; - - b = ((z1 << 6) ^ z1) >> 13; - z1 = ((z1 & 4294967294U) << 18) ^ b; - b = ((z2 << 2) ^ z2) >> 27; - z2 = ((z2 & 4294967288U) << 2) ^ b; - b = ((z3 << 13) ^ z3) >> 21; - z3 = ((z3 & 4294967280U) << 7) ^ b; - b = ((z4 << 3) ^ z4) >> 12; - z4 = ((z4 & 4294967168U) << 13) ^ b; - - r = z1 ^ z2 ^ z3 ^ z4; - // z4 = r; - - return r; -} diff --git a/keyboards/keychron/c1-old/plain/readme.md b/keyboards/keychron/c1-old/plain/readme.md deleted file mode 100644 index 1d4f27a84659..000000000000 --- a/keyboards/keychron/c1-old/plain/readme.md +++ /dev/null @@ -1,74 +0,0 @@ -# Keychron C1 plain - -![Keychron C1](https://i.imgur.com/oB9h56v.png) - -A customizable TKL keyboard. - -* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) -* Hardware Supported: Keychron C1 plain (no leds, shares PCB with White Led version) -* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) - -# Install -1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. -1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/tag/v0.2.1). -1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x00` as the qmk offset. -1. Click 'Flash QMK...' and flash jumploader-keychron_c1_white.bin. This can be found in 'Pre-Compiled Jumploaders' build by the latest [Sonix keyboard bootloader action](https://github.com/SonixQMK/sonix-keyboard-bootloader/actions). -1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x200` as the qmk offset. -1. Lastly, click 'Flash QMK...' and flash keychron_c1_white_default.bin. This can be found in 'Pre-Compiled Firmware' build by the latest [Sonix QMK firmware action](https://github.com/SonixQMK/qmk_firmware/actions). - -# Keymapping -### Windows Mode -
- -Without Fn | With Fn ----------- | ------- -ESC | Reset keyboard -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Task View -F4 | File Explorer -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Print Screen | Snip & Sketch -Cortana | - -Lock PC | - - -
- -### Mac Mode -
- -Without Fn | With Fn ----------- | ------- -ESC | Reset keyboard -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | None -F4 | Finder -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Take a screenshot (whole screen) | Take a screenshot (specific area) -Siri (hold down) | - -Lock Mac | - - -
- -# More Info - -Make example for this keyboard (after setting up your build environment): - - make keychron/c1/plain - -[Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. - -For more info and detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme - -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/c1-old/plain/rules.mk b/keyboards/keychron/c1-old/plain/rules.mk deleted file mode 100644 index cf9c8ce55426..000000000000 --- a/keyboards/keychron/c1-old/plain/rules.mk +++ /dev/null @@ -1,23 +0,0 @@ -# project specific files -SRC = rand.c - -# MCU name -MCU = SN32F268F - -# Build Options -# comment out to disable the options. -# -MAGIC_ENABLE = yes -MAGIC_KEYCODE_ENABLE = yes -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover -DIP_SWITCH_ENABLE = yes - -# Custom Key and LED matrix handling -CUSTOM_MATRIX = no -RGB_MATRIX_ENABLE = no - -# Reduce code size -USE_PROCESS_STACKSIZE = 0x1E0 -USE_EXCEPTIONS_STACKSIZE = 0xE0 \ No newline at end of file diff --git a/keyboards/keychron/c1-old/rgb/config.h b/keyboards/keychron/c1-old/rgb/config.h deleted file mode 100644 index b9bcd440affc..000000000000 --- a/keyboards/keychron/c1-old/rgb/config.h +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright 2020 Adam Honse - * Copyright 2020 Dimitris Mantzouranis - * - * 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 "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3434 -#define PRODUCT_ID 0xFE20 -#define DEVICE_VER 0x0001 - -#define MANUFACTURER Keychron -#define PRODUCT Keychron \x43\x31 -#define DESCRIPTION \x43\x31 RGB Hotswap - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 17 - -#define DIODE_DIRECTION COL2ROW - -#define MATRIX_COL_PINS { A8, A9, A10, A11, A12, A13, A14, A15, B0, B1, B2, B3, B4, B5, B6, B7, B8 } -#define MATRIX_ROW_PINS { C15, D11, D10, D9, D8, D7 } - -// Connects each switch in the dip switch to the GPIO pin of the MCU -#define DIP_SWITCH_PINS { D4 } - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 0 - -/* LED Status indicators */ -#define LED_CAPS_LOCK_PIN B10 -#define LED_MAC_PIN B11 //labeled Mac on KB since no Scroll Lock -#define LED_WIN_PIN B12 //labeled Windows on KB since no Numpad -#define LED_PIN_ON_STATE 1 - -/* Polling Rate */ -#define USB_POLLING_INTERVAL_MS 1 - -/* Disable RGB while USB is sleeping */ -#define RGB_DISABLE_WHEN_USB_SUSPENDED true - -/* RGB Non-Reactive 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_FRACTAL -#define ENABLE_RGB_MATRIX_PIXEL_RAIN -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#define ENABLE_RGB_MATRIX_DIGITAL_RAIN - -/* RGB Reactive Effects Toggle */ -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_MATRIX_KEYPRESSES -//#define RGB_MATRIX_KEYRELEASES - -/* RGB Reactive Effects */ -#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 - -#include "config_led.h" diff --git a/keyboards/keychron/c1-old/rgb/config_led.c b/keyboards/keychron/c1-old/rgb/config_led.c deleted file mode 100644 index 47e2bc499340..000000000000 --- a/keyboards/keychron/c1-old/rgb/config_led.c +++ /dev/null @@ -1,31 +0,0 @@ -#ifdef RGB_MATRIX_ENABLE - -#include "rgb_matrix.h" -#include "config_led.h" - -#define XX NO_LED - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, XX, 13, 14, 15}, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, XX, 62, XX, XX, XX}, - { 63, XX, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, XX, 74, XX, 75, XX}, - { 76, 77, 78, XX, XX, XX, 79, XX, XX, XX, 80, 81, 82, 83, 84, 85, 86} -}, { - {0 , 0}, {12 , 0}, {25 , 0}, {37 , 0}, {50 , 0}, {62 , 0}, {75 , 0}, {87 , 0}, {100, 0}, {112, 0}, {124, 0}, {137, 0}, {149, 0}, {174, 0}, {187, 0}, {199, 0}, - {0 , 13}, {12 , 13}, {25 , 13}, {37 , 13}, {50 , 13}, {62 , 13}, {75 , 13}, {87 , 13}, {100, 13}, {112, 13}, {124, 13}, {137, 13}, {149, 13}, {168, 13}, {174, 13}, {187, 13}, {199, 13}, - {3 , 26}, {19 , 26}, {31 , 26}, {44 , 26}, {56 , 26}, {68 , 26}, {81 , 26}, {93 , 26}, {106, 26}, {118, 26}, {131, 26}, {143, 26}, {156, 26}, {168, 26}, {174, 26}, {187, 26}, {199, 26}, - {5 , 38}, {22 , 38}, {34 , 38}, {47 , 38}, {59 , 38}, {72 , 38}, {84 , 38}, {96 , 38}, {109, 38}, {121, 38}, {134, 38}, {146, 38}, {166, 38}, - {8 , 51}, {28 , 51}, {40 , 51}, {53 , 51}, {65 , 51}, {78 , 51}, {90 , 51}, {103, 51}, {115, 51}, {128, 51}, {140, 51}, {157, 51}, {187, 51}, - {2 , 64}, {17 , 64}, {33 , 64}, {79 , 64}, {124, 64}, {137, 64}, {149, 64}, {162, 64}, {174, 64}, {187, 64}, {199, 64}, -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; - -#endif diff --git a/keyboards/keychron/c1-old/rgb/config_led.h b/keyboards/keychron/c1-old/rgb/config_led.h deleted file mode 100644 index bfd3fac78c5a..000000000000 --- a/keyboards/keychron/c1-old/rgb/config_led.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2020 Adam Honse -Copyright 2020 Dimitris Mantzouranis - -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 - -// Backlight configuration -#define BACKLIGHT_LEVELS 8 - -#define LED_MATRIX_ROWS MATRIX_ROWS -#define LED_MATRIX_ROW_CHANNELS 3 -#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS) -#define LED_MATRIX_ROW_PINS { C0, C1, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, B13, D3, B15, B14 } - -#define LED_MATRIX_COLS MATRIX_COLS -#define LED_MATRIX_COL_PINS MATRIX_COL_PINS - -#define DRIVER_LED_TOTAL (87) diff --git a/keyboards/keychron/c1-old/rgb/info.json b/keyboards/keychron/c1-old/rgb/info.json deleted file mode 100644 index 742d7d4e7fe4..000000000000 --- a/keyboards/keychron/c1-old/rgb/info.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "keyboard_name": "Keychron C1 RGB", - "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", - "maintainer": "noldevin, vjdato21", - "width": 17, - "height": 6, - "layouts": { - "LAYOUT": { - "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Assistant", "x":16.25, "y":0}, {"label":"RGB", "x":17.25, "y":0}, - {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, - {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, - {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, - {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, - {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Fn", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] - } - } -} diff --git a/keyboards/keychron/c1-old/rgb/keymaps/default/keymap.c b/keyboards/keychron/c1-old/rgb/keymaps/default/keymap.c deleted file mode 100644 index 3218de291b89..000000000000 --- a/keyboards/keychron/c1-old/rgb/keymaps/default/keymap.c +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum layer_names { - WIN_BASE = 0, - WIN_FN = 1, - MAC_BASE = 2, - MAC_FN = 3, -}; - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CRTN LGUI(KC_C) // Cortana | Microsoft Teams -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [WIN_BASE] = { // Windows base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_PSCR, KC_CRTN, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, - - [WIN_FN] = { // Windows Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, 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_NO, KC_SNIP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, GUI_TOG, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - }, - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [MAC_BASE] = { // Mac base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_MSCR, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_RALT, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, - - [MAC_FN] = { // Mac Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MSNP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, _______, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - } -}; diff --git a/keyboards/keychron/c1-old/rgb/keymaps/via/config.h b/keyboards/keychron/c1-old/rgb/keymaps/via/config.h deleted file mode 100644 index 176f444b24d6..000000000000 --- a/keyboards/keychron/c1-old/rgb/keymaps/via/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -// Enable RGB Matrix -#define VIA_QMK_RGBLIGHT_ENABLE diff --git a/keyboards/keychron/c1-old/rgb/keymaps/via/keymap.c b/keyboards/keychron/c1-old/rgb/keymaps/via/keymap.c deleted file mode 100644 index 3218de291b89..000000000000 --- a/keyboards/keychron/c1-old/rgb/keymaps/via/keymap.c +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum layer_names { - WIN_BASE = 0, - WIN_FN = 1, - MAC_BASE = 2, - MAC_FN = 3, -}; - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CRTN LGUI(KC_C) // Cortana | Microsoft Teams -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [WIN_BASE] = { // Windows base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_PSCR, KC_CRTN, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, - - [WIN_FN] = { // Windows Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, 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_NO, KC_SNIP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, GUI_TOG, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - }, - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [MAC_BASE] = { // Mac base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_MSCR, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_RALT, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, - - [MAC_FN] = { // Mac Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MSNP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, _______, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - } -}; diff --git a/keyboards/keychron/c1-old/rgb/keymaps/via/rules.mk b/keyboards/keychron/c1-old/rgb/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/keychron/c1-old/rgb/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/keychron/c1-old/rgb/readme.md b/keyboards/keychron/c1-old/rgb/readme.md deleted file mode 100644 index 6f4738b7f8c4..000000000000 --- a/keyboards/keychron/c1-old/rgb/readme.md +++ /dev/null @@ -1,85 +0,0 @@ -# Keychron C1 RGB - -![Keychron C1](https://i.imgur.com/oB9h56v.png) - -A customizable TKL keyboard. - -* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) -* Hardware Supported: Keychron C1 RGB -* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) - -Make example for this keyboard (after setting up your build environment): - - make keychron/c1/rgb:default | make keychron/c1/rgb:via - -## How to Flash -Flashing example for this keyboard: -1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. -1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/latest). -1. In Sonix Flasher, select `SN32F24X` under 'Device'. And select `0x00` as the qmk offset. -1. Lastly, click 'Flash QMK...' and locate the compiled firmware. - -* * * -# Keymapping -### Windows Mode -
- -Without Fn | With Fn ----------- | ------- -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Task View -F4 | File Explorer -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Print Screen | Snip & Sketch -Cortana / Microsoft Teams | None -Change RGB | Toggle RGB -⊞ | Windows Key Lock Toggle -Home | NKRO Toggle -↑ | Increase RGB Hue -← | Decrease RGB Saturation -↓ | Decrease RGB Hue -→ | Increase RGB Saturation - -
- -### Mac Mode -
- -Without Fn | With Fn ----------- | ------- -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Mission Control -F4 | Finder -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Take a screenshot (whole screen) | Take a screenshot (specific area) -Siri (hold down) | None -Change RGB | Toggle RGB -Home | NKRO Toggle -↑ | Increase RGB Hue -← | Decrease RGB Saturation -↓ | Decrease RGB Hue -→ | Increase RGB Saturation - -
- -* * * - -For more information and more detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme - -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/c1-old/rgb/rgb.c b/keyboards/keychron/c1-old/rgb/rgb.c deleted file mode 100644 index dbb41819641f..000000000000 --- a/keyboards/keychron/c1-old/rgb/rgb.c +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2021 Dimitris Mantzouranis - -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 "rgb.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_user(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(2); - } else { // Windows mode - layer_move(0); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - keyboard_pre_init_user(); -} - -void suspend_power_down_kb(void) { - // Turn leds off - mode_leds_show = false; - mode_leds_update(); - - // Suspend RGB - rgb_matrix_set_suspend_state(true); - - suspend_power_down_user(); -} - -/// TODO: Clean-up workaround -/// Currently the suspend_wakeup_init_user() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 -/// A workaround is to use housekeeping_task_user() instead. -void housekeeping_task_kb(void) { - // Turn on - mode_leds_show = true; - mode_leds_update(); - - // Turn on RGB - rgb_matrix_set_suspend_state(false); - - housekeeping_task_user(); -} diff --git a/keyboards/keychron/c1-old/rgb/rgb.h b/keyboards/keychron/c1-old/rgb/rgb.h deleted file mode 100644 index e996bd32f382..000000000000 --- a/keyboards/keychron/c1-old/rgb/rgb.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include "quantum.h" -// readability -#define XXX KC_NO - -#define LAYOUT( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ - 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, k5g \ -) \ -{ \ - {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, XXX}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ - {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f, k2g}, \ - {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, XXX, XXX, XXX, XXX}, \ - {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, XXX, XXX, k4f, XXX}, \ - {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d k5e, k5f, k5g} \ -} diff --git a/keyboards/keychron/c1-old/rgb/rgb.json b/keyboards/keychron/c1-old/rgb/rgb.json deleted file mode 100644 index 2432177ec8d0..000000000000 --- a/keyboards/keychron/c1-old/rgb/rgb.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "name": "Keychron C1", - "vendorId": "0x3434", - "productId": "0xFE20", - "lighting": { - "extends": "qmk_rgblight", - "underglowEffects": [ - [ - "None", - 0 - ], - [ - "SOLID_COLOR", - 1 - ], - [ - "ALPHAS_MODS", - 1 - ], - [ - "GRADIENT_UP_DOWN", - 1 - ], - [ - "GRADIENT_LEFT_RIGHT", - 1 - ], - [ - "BREATHING", - 1 - ], - [ - "BAND_SAT", - 1 - ], - [ - "BAND_VAL", - 1 - ], - [ - "BAND_PINWHEEL_SAT", - 1 - ], - [ - "BAND_PINWHEEL_VAL", - 1 - ], - [ - "BAND_SPIRAL_SAT", - 1 - ], - [ - "BAND_SPIRAL_VAL", - 1 - ], - [ - "CYCLE_ALL", - 1 - ], - [ - "CYCLE_LEFT_RIGHT", - 1 - ], - [ - "CYCLE_UP_DOWN", - 1 - ], - [ - "CYCLE_OUT_IN", - 1 - ], - [ - "CYCLE_OUT_IN_DUAL", - 1 - ], - [ - "RAINBOW_MOVING_CHEVRON", - 1 - ], - [ - "CYCLE_PINWHEEL", - 1 - ], - [ - "CYCLE_SPIRAL", - 1 - ], - [ - "DUAL_BEACON", - 1 - ], - [ - "RAINBOW_BEACON", - 1 - ], - [ - "RAINBOW_PINWHEELS", - 1 - ], - [ - "RAINDROPS", - 1 - ], - [ - "JELLYBEAN_RAINDROPS", - 1 - ], - [ - "HUE_BREATHING", - 1 - ], - [ - "HUE_PENDULUM", - 1 - ], - [ - "HUE_WAVE", - 1 - ], - ["PIXEL_FRACTAL", 1], - ["PIXEL_RAIN", 1], - [ - "TYPING_HEATMAP", - 1 - ], - [ - "DIGITAL_RAIN", - 1 - ], - [ - "SOLID_REACTIVE_SIMPLE", - 1 - ], - [ - "SOLID_REACTIVE", - 1 - ], - [ - "SOLID_REACTIVE_WIDE", - 1 - ], - [ - "SOLID_REACTIVE_MULTIWIDE", - 1 - ], - [ - "SOLID_REACTIVE_CROSS", - 1 - ], - [ - "SOLID_REACTIVE_MULTICROSS", - 1 - ], - [ - "SOLID_REACTIVE_NEXUS", - 1 - ], - [ - "SOLID_REACTIVE_MULTINEXUS", - 1 - ], - [ - "SPLASH", - 1 - ], - [ - "MULTISPLASH", - 1 - ], - [ - "SOLID_SPLASH", - 1 - ], - [ - "SOLID_MULTISPLASH", - 1 - ] - ], - "supportedLightingValues": [ - 128, - 129, - 131 - ] - }, - "matrix": {"rows": 6, "cols": 17}, - "layouts": { - "keymap": [ - ["0,0", {"x": 1}, "0,1", "0,2", "0,3", "0,4", {"x": 0.5}, "0,5", "0,6", "0,7", "0,8", {"x": 0.5}, "0,9", "0,10", "0,11", "0,12", {"x": 0.25}, "0,14", "0,15", "0,16"], - [{"y": 0.5}, "1,0", "1,1", "1,2", "1,3", "1,4", "1,5", "1,6", "1,7", "1,8", "1,9", "1,10", "1,11", "1,12", {"w": 2}, "1,13", {"x": 0.25 }, "1,14", "1,15", "1,16"], - [{"w": 1.5 }, "2,0", "2,1", "2,2", "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", "2,9", "2,10", "2,11", "2,12", {"w": 1.5}, "2,13", { "x": 0.25 }, "2,14", "2,15", "2,16"], - [{"w": 1.75 }, "3,0", "3,1", "3,2", "3,3", "3,4", "3,5", "3,6", "3,7", "3,8", "3,9", "3,10", "3,11", { "w": 2.25 }, "3,13"], - [{"w": 2.25 }, "4,0", "4,2", "4,3", "4,4", "4,5", "4,6", "4,7", "4,8", "4,9", "4,10", "4,11", {"w": 2.75 }, "4,13", {"x": 1.25 }, "4,15"], - [{"w": 1.25 }, "5,0", {"w": 1.25 }, "5,1", {"w": 1.25 }, "5,2", {"w": 6.25 }, "5,6", {"w": 1.25 }, "5,10", {"w": 1.25 }, "5,11", {"w": 1.25 }, "5,12", {"w": 1.25 }, "5,13", {"x": 0.25 }, "5,14", "5,15", "5,16"] - ] - } -} diff --git a/keyboards/keychron/c1-old/rgb/rules.mk b/keyboards/keychron/c1-old/rgb/rules.mk deleted file mode 100644 index f6792f46337c..000000000000 --- a/keyboards/keychron/c1-old/rgb/rules.mk +++ /dev/null @@ -1,32 +0,0 @@ -# project specific files -SRC = ../../../drivers/led/sn32/matrix_sn32f24xx.c -SRC += config_led.c - -# MCU name -MCU = SN32F248BF - -# Build Options -# comment out to disable the options. -# -LTO_ENABLE = no -BACKLIGHT_ENABLE = no -MAGIC_ENABLE = yes -MAGIC_KEYCODE_ENABLE = yes -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover -AUDIO_ENABLE = no -RGBLIGHT_ENABLE = no -SERIAL_LINK_ENABLE = no -WAIT_FOR_USB = yes -CUSTOM_MATRIX = yes -DIP_SWITCH_ENABLE = yes -KEYBOARD_SHARED_EP = no - -# Custom RGB matrix handling -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = SN32F24xB diff --git a/keyboards/keychron/c1-old/white/config.h b/keyboards/keychron/c1-old/white/config.h deleted file mode 100644 index 3129cf2de6e7..000000000000 --- a/keyboards/keychron/c1-old/white/config.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright 2020 Adam Honse - * Copyright 2020 Dimitris Mantzouranis - * - * 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 "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x05AC -#define PRODUCT_ID 0x024F -#define DEVICE_VER 0x0001 - -#define MANUFACTURER Keychron -// \x43\x31 is "C1" in ASCII hex, this is used to prevent macro expansion, because C1 is also a pin macro. -#define PRODUCT Keychron \x43\x31 White - -#define WAIT_FOR_USB -#define USB_MAX_POWER_CONSUMPTION 100 - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 17 - -#define DIODE_DIRECTION COL2ROW - -#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, D0 } -#define MATRIX_ROW_PINS { C3, C4, C5, C6, C7, C8 } - -/* LED matrix */ -#define LED_MATRIX_ROWS MATRIX_ROWS -#define LED_MATRIX_ROW_CHANNELS 1 -#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS) -#define LED_MATRIX_ROW_PINS { C0, C1, C2, D4, C9, C10 } - -#define LED_MATRIX_COLS MATRIX_COLS -#define LED_MATRIX_COL_PINS MATRIX_COL_PINS - -#define DRIVER_LED_TOTAL (87) - -/* Backlight configuration */ -#define RGB_MATRIX_VAL_STEP 32 -#define RGB_DISABLE_WHEN_USB_SUSPENDED true - -/* Connects each switch in the dip switch to the GPIO pin of the MCU */ -#define DIP_SWITCH_PINS { D7 } - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* LED Status indicators */ -#define LED_CAPS_LOCK_PIN B3 -#define LED_PIN_ON_STATE 1 - -#define LED_MAC_PIN B4 -#define LED_WIN_PIN B5 - -/* Enable NKRO by default */ -#define FORCE_NKRO - -/* Disable the following animation because they are not interesting in monochrome */ -#define DISABLE_RGB_MATRIX_ALPHAS_MODS -#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN -#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -#define DISABLE_RGB_MATRIX_BAND_SAT -#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT -#define DISABLE_RGB_MATRIX_CYCLE_ALL -#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#define DISABLE_RGB_MATRIX_DUAL_BEACON - -/* TODO: Disabled the following animation because they crash the keyboard. Probably due to a too small stack */ -#define DISABLE_RGB_MATRIX_RAINDROPS -#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS diff --git a/keyboards/keychron/c1-old/white/info.json b/keyboards/keychron/c1-old/white/info.json deleted file mode 100644 index 1ccc86137007..000000000000 --- a/keyboards/keychron/c1-old/white/info.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "keyboard_name": "Keychron C1 white", - "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", - "maintainer": "IsaacDynamo", - "width": 17, - "height": 6, - "layouts": { - "LAYOUT": { - "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Mic", "x":16.25, "y":0}, {"label":"Lamp", "x":17.25, "y":0}, - {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, - {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, - {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, - {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, - {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] - } - } -} \ No newline at end of file diff --git a/keyboards/keychron/c1-old/white/keychron_c1_white_via.json b/keyboards/keychron/c1-old/white/keychron_c1_white_via.json deleted file mode 100644 index 0c34cadaa017..000000000000 --- a/keyboards/keychron/c1-old/white/keychron_c1_white_via.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "name": "Keychron C1 White", - "vendorId": "0x05ac", - "productId": "0x024f", - "lighting": "qmk_rgblight", - "matrix": {"rows": 6, "cols": 17}, - "layouts": { - "keymap": [ - [ - "0,0", - { - "x": 1 - }, - "0,2", - "0,3", - "0,4", - "0,5", - { - "x": 0.5 - }, - "0,6", - "0,7", - "0,8", - "0,9", - { - "x": 0.5 - }, - "0,10", - "0,11", - "0,12", - "0,13", - { - "x": 0.25 - }, - "0,14", - "0,15", - "0,16" - ], - [ - { - "y": 0.5 - }, - "1,0", - "1,1", - "1,2", - "1,3", - "1,4", - "1,5", - "1,6", - "1,7", - "1,8", - "1,9", - "1,10", - "1,11", - "1,12", - { - "w": 2 - }, - "1,13", - { - "x": 0.25 - }, - "1,14", - "1,15", - "1,16" - ], - [ - { - "w": 1.5 - }, - "2,0", - "2,1", - "2,2", - "2,3", - "2,4", - "2,5", - "2,6", - "2,7", - "2,8", - "2,9", - "2,10", - "2,11", - "2,12", - { - "w": 1.5 - }, - "2,13", - { - "x": 0.25 - }, - "2,14", - "2,15", - "2,16" - ], - [ - { - "w": 1.75 - }, - "3,0", - "3,1", - "3,2", - "3,3", - "3,4", - "3,5", - "3,6", - "3,7", - "3,8", - "3,9", - "3,10", - "3,11", - { - "w": 2.25 - }, - "3,13" - ], - [ - { - "w": 2.25 - }, - "4,0", - "4,2", - "4,3", - "4,4", - "4,5", - "4,6", - "4,7", - "4,8", - "4,9", - "4,10", - "4,11", - { - "w": 2.75 - }, - "4,13", - { - "x": 1.25 - }, - "4,15", - { - "x": 1.25 - } - ], - [ - { - "w": 1.25 - }, - "5,0", - { - "w": 1.25 - }, - "5,1", - { - "w": 1.25 - }, - "5,2", - { - "w": 6.25 - }, - "5,6", - { - "w": 1.25 - }, - "5,10", - { - "w": 1.25 - }, - "5,11", - { - "w": 1.25 - }, - "5,12", - { - "w": 1.25 - }, - "5,13", - { - "x": 0.25 - }, - "5,14", - "5,15", - "5,16" - ] - ] - } -} \ No newline at end of file diff --git a/keyboards/keychron/c1-old/white/keymaps/default/keymap.c b/keyboards/keychron/c1-old/white/keymaps/default/keymap.c deleted file mode 100644 index bcfec6d5cdb7..000000000000 --- a/keyboards/keychron/c1-old/white/keymaps/default/keymap.c +++ /dev/null @@ -1,100 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CORT LGUI(KC_C) // Cortana -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(WIN_FN) // Windows Fn - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(MAC_FN) // Mac Fn - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT| BL | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [WIN_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, RGB_TOG, \ - 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [WIN_FN] = LAYOUT( \ - RESET, 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_SNIP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ - ), - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI| BL | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [MAC_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, RGB_TOG, \ - 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [MAC_FN] = LAYOUT( \ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ - ) -}; diff --git a/keyboards/keychron/c1-old/white/keymaps/via/keymap.c b/keyboards/keychron/c1-old/white/keymaps/via/keymap.c deleted file mode 100644 index 9b448f5d59ca..000000000000 --- a/keyboards/keychron/c1-old/white/keymaps/via/keymap.c +++ /dev/null @@ -1,3 +0,0 @@ -// Include default keymap -// This way the VIA keymap is always up to date with the default keymap -#include "../default/keymap.c" \ No newline at end of file diff --git a/keyboards/keychron/c1-old/white/keymaps/via/no_idle_thread.c b/keyboards/keychron/c1-old/white/keymaps/via/no_idle_thread.c deleted file mode 100644 index d5ab9b8aafd4..000000000000 --- a/keyboards/keychron/c1-old/white/keymaps/via/no_idle_thread.c +++ /dev/null @@ -1,30 +0,0 @@ -// Size optimizations to fit VIA support -// -// These optimizations are pretty intrusive because they remove the idle thread. -// Without idle thread some sleep related functions no longer function. -// These broken functions are overwritten with patched variants. -// -// These optimization are copied from: -// https://github.com/gloryhzw/qmk_firmware/blob/sn32/keyboards/gmmk/full -// -// This file adds patch sleep related functions that work without idle threads. - -#include "quantum.h" - -/* - * must override sleep functions without idle thread - */ -#define CYCLES_PER_LOOP 9 -#define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) - -void chThdSleep(sysinterval_t time) { - uint32_t loops = time * LOOP_TIMES; - for (uint32_t i = 0; i < loops; i++) __NOP(); -} - -/* suspend thread used in usb_main.c */ -msg_t chThdSuspendTimeoutS(thread_reference_t* trp, sysinterval_t timeout) { - osalSysUnlock(); - osalSysLock(); - return MSG_OK; -} diff --git a/keyboards/keychron/c1-old/white/keymaps/via/rules.mk b/keyboards/keychron/c1-old/white/keymaps/via/rules.mk deleted file mode 100644 index 086f21f4ae12..000000000000 --- a/keyboards/keychron/c1-old/white/keymaps/via/rules.mk +++ /dev/null @@ -1,21 +0,0 @@ -# Experimental VIA support -VIA_ENABLE=yes - -# Size optimizations to fit VIA support -# -# These optimizations are pretty intrusive because they remove the idle thread. -# Without idle thread some sleep related functions no longer function. -# These broken functions are overwritten with patched variants. -# -# These optimization are copied from: -# https://github.com/gloryhzw/qmk_firmware/blob/sn32/keyboards/gmmk/full - -# Reduce RAW endpoints -OPT_DEFS += -DRAW_IN_CAPACITY=1 -OPT_DEFS += -DRAW_OUT_CAPACITY=1 - -# Remove idle thread -OPT_DEFS += -DCH_CFG_NO_IDLE_THREAD=TRUE - -# Include the patched functions -SRC += keymaps/via/no_idle_thread.c diff --git a/keyboards/keychron/c1-old/white/rand.c b/keyboards/keychron/c1-old/white/rand.c deleted file mode 100644 index a1096bbe2b58..000000000000 --- a/keyboards/keychron/c1-old/white/rand.c +++ /dev/null @@ -1,31 +0,0 @@ -// Small rand() implementation -// -// The libc rand implementation takes to much flash space, so an smaller rand() function is used. -#include "quantum.h" - -int rand(void) -{ - // static unsigned int z4; - unsigned int z1, z2, z3, z4; - int r; - unsigned int b; - - z1 = timer_read32(); - z2 = 12345; - z3 = 12345; - z4 = z1 << 8; - - b = ((z1 << 6) ^ z1) >> 13; - z1 = ((z1 & 4294967294U) << 18) ^ b; - b = ((z2 << 2) ^ z2) >> 27; - z2 = ((z2 & 4294967288U) << 2) ^ b; - b = ((z3 << 13) ^ z3) >> 21; - z3 = ((z3 & 4294967280U) << 7) ^ b; - b = ((z4 << 3) ^ z4) >> 12; - z4 = ((z4 & 4294967168U) << 13) ^ b; - - r = z1 ^ z2 ^ z3 ^ z4; - // z4 = r; - - return r; -} diff --git a/keyboards/keychron/c1-old/white/readme.md b/keyboards/keychron/c1-old/white/readme.md deleted file mode 100644 index 7b280c99badf..000000000000 --- a/keyboards/keychron/c1-old/white/readme.md +++ /dev/null @@ -1,86 +0,0 @@ -# Keychron C1 white - -![Keychron C1](https://i.imgur.com/oB9h56v.png) - -A customizable TKL keyboard. - -* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) -* Hardware Supported: Keychron C1 white -* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) - -# Install -1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. -1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/tag/v0.2.1). -1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x00` as the qmk offset. -1. Click 'Flash QMK...' and flash jumploader-keychron_c1_white.bin. This can be found in 'Pre-Compiled Jumploaders' build by the latest [Sonix keyboard bootloader action](https://github.com/SonixQMK/sonix-keyboard-bootloader/actions). -1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x200` as the qmk offset. -1. Lastly, click 'Flash QMK...' and flash keychron_c1_white_default.bin. This can be found in 'Pre-Compiled Firmware' build by the latest [Sonix QMK firmware action](https://github.com/SonixQMK/qmk_firmware/actions). - -# Keymapping -### Windows Mode -
- -Without Fn | With Fn ----------- | ------- -ESC | Reset keyboard -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Task View -F4 | File Explorer -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Print Screen | Snip & Sketch -Cortana | - -Toggle backlight | - -↑ | Increase effect speed -← | Cycle through modes in reverse -↓ | Decrease effect speed -→ | Cycle through modes - -
- -### Mac Mode -
- -Without Fn | With Fn ----------- | ------- -ESC | Reset keyboard -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | None -F4 | Finder -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Take a screenshot (whole screen) | Take a screenshot (specific area) -Siri (hold down) | - -Toggle backlight | - -↑ | Increase effect speed -← | Cycle through modes in reverse -↓ | Decrease effect speed -→ | Cycle through modes - -
- -# More Info - -Make example for this keyboard (after setting up your build environment): - - make keychron/c1/white - -[Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. - -For more info and detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme - -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/c1-old/white/rgb_matrix_kb.inc b/keyboards/keychron/c1-old/white/rgb_matrix_kb.inc deleted file mode 100644 index cbeff4e047fc..000000000000 --- a/keyboards/keychron/c1-old/white/rgb_matrix_kb.inc +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef DISABLE_RGB_MATRIX_HIGH_CONTRAST -RGB_MATRIX_EFFECT(HIGH_CONTRAST) -RGB_MATRIX_EFFECT(HIGH_CONTRAST2) -#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS - -// Only light up black keys. These are marked with 128 in g_led_config. -bool HIGH_CONTRAST(effect_params_t* params) { - RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); - - RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - if (HAS_FLAGS(g_led_config.flags[i], 128)) { - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } else { - rgb_matrix_set_color(i, 0, 0, 0); - } - } - return led_max < DRIVER_LED_TOTAL; -} - -// Only light up black and orange keys. These are marked with 128 and 64 in g_led_config. -// Use this high contrast mode when you use black keycaps for Esc and lightbulb key and what them to be lit as wel. -bool HIGH_CONTRAST2(effect_params_t* params) { - RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); - - RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - if (HAS_FLAGS(g_led_config.flags[i], 128) || HAS_FLAGS(g_led_config.flags[i], 64)) { - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } else { - rgb_matrix_set_color(i, 0, 0, 0); - } - } - return led_max < DRIVER_LED_TOTAL; -} - -#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // DISABLE_RGB_MATRIX_HIGH_CONTRAST diff --git a/keyboards/keychron/c1-old/white/rules.mk b/keyboards/keychron/c1-old/white/rules.mk deleted file mode 100644 index e6e11ca9b794..000000000000 --- a/keyboards/keychron/c1-old/white/rules.mk +++ /dev/null @@ -1,25 +0,0 @@ -# project specific files -SRC += rand.c - -# MCU name -MCU = SN32F268F - -# Build Options -# comment out to disable the options. -# -MAGIC_ENABLE = yes -MAGIC_KEYCODE_ENABLE = yes -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover -DIP_SWITCH_ENABLE = yes - -# Custom Key and LED matrix handling -CUSTOM_MATRIX = yes -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = SN32F26x -RGB_MATRIX_CUSTOM_KB = yes - -# Reduce code size -USE_PROCESS_STACKSIZE = 0x1E0 -USE_EXCEPTIONS_STACKSIZE = 0xF0 \ No newline at end of file diff --git a/keyboards/keychron/c1-old/white/white.c b/keyboards/keychron/c1-old/white/white.c deleted file mode 100644 index 2393e51c66cf..000000000000 --- a/keyboards/keychron/c1-old/white/white.c +++ /dev/null @@ -1,128 +0,0 @@ -/* Copyright 2021 IsaacDynamo - * - * 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 "white.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_kb(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(MAC_BASE); - } else { // Windows mode - layer_move(WIN_BASE); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - - dip_switch_update_user(index, active); - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - // WORKAROUND: Mac & Windows LED flicker. - // Normally the GPIOs in DIP_SWITCH_PINS will be initialized by dip_switch_init(). - // But during startup of the keyboard the Mac/Windows dip switch seems to jitter, causing the Mac and Windows LEDs to flicker. - // Maybe the internal pull-up of this chip is really weak, and needs some time to pullup the input voltage to the high level? Seems unlikely but cannot think of a better explanation. - // By doing the configuration of the GPIOs here the pullup is enabled earlier and the flicker is gone. - const pin_t dip_switch_pad[] = DIP_SWITCH_PINS; - const size_t size = sizeof(dip_switch_pad) / sizeof(dip_switch_pad[0]); - for (size_t i=0; i - * Copyright 2020 Dimitris Mantzouranis - * - * 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 "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3434 -#define PRODUCT_ID 0xFE20 -#define DEVICE_VER 0x0001 - -#define MANUFACTURER Keychron -// \x43\x31 is "C1" in ASCII hex, this is used to prevent macro expansion, because C1 is also a pin macro. -#define PRODUCT Keychron \x43\x31 -#define DESCRIPTION Keychron \x43\x31 Plain - -#define WAIT_FOR_USB -#define USB_MAX_POWER_CONSUMPTION 100 - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 17 - -#define DIODE_DIRECTION COL2ROW - -#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, D0 } -#define MATRIX_ROW_PINS { C3, C4, C5, C6, C7, C8 } - -/* Keep LED Matrix pins so that we can set them low */ -#define LED_MATRIX_ROW_PINS { C0, C1, C2, D4, C9, C10 } - -/* Connects each switch in the dip switch to the GPIO pin of the MCU */ -#define DIP_SWITCH_PINS { D7 } - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* LED Status indicators */ -#define LED_CAPS_LOCK_PIN B3 -#define LED_PIN_ON_STATE 1 - -#define LED_MAC_PIN B4 -#define LED_WIN_PIN B5 - -/* Enable NKRO by default */ -#define FORCE_NKRO - -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 1000 - -/* Polling Rate */ -#define USB_POLLING_INTERVAL_MS 1 diff --git a/keyboards/keychron/c1-remake/plain/info.json b/keyboards/keychron/c1-remake/plain/info.json deleted file mode 100644 index 0a26b78b16a6..000000000000 --- a/keyboards/keychron/c1-remake/plain/info.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "keyboard_name": "Keychron C1", - "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", - "maintainer": "IsaacDynamo", - "width": 17, - "height": 6, - "layouts": { - "LAYOUT": { - "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Mic", "x":16.25, "y":0}, {"label":"Lamp", "x":17.25, "y":0}, - {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, - {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, - {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, - {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, - {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] - } - } -} \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/plain/keymaps/default/keymap.c b/keyboards/keychron/c1-remake/plain/keymaps/default/keymap.c deleted file mode 100644 index 16e60e95f6bd..000000000000 --- a/keyboards/keychron/c1-remake/plain/keymaps/default/keymap.c +++ /dev/null @@ -1,102 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CORT LGUI(KC_C) // Cortana -#define KC_LOCK LGUI(KC_L) // Lock -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(WIN_FN) // Windows Fn - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(MAC_FN) // Mac Fn -#define KD_M_LK LCMD(LCTL(KC_Q)) // Mac Lock - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|LOCK| - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [WIN_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, KC_LOCK, \ - 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [WIN_FN] = LAYOUT( \ - RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ), - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|LOCK| - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [MAC_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, KD_M_LK, \ - 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [MAC_FN] = LAYOUT( \ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ) -}; diff --git a/keyboards/keychron/c1-remake/plain/keymaps/via/keymap.c b/keyboards/keychron/c1-remake/plain/keymaps/via/keymap.c deleted file mode 100644 index 9b448f5d59ca..000000000000 --- a/keyboards/keychron/c1-remake/plain/keymaps/via/keymap.c +++ /dev/null @@ -1,3 +0,0 @@ -// Include default keymap -// This way the VIA keymap is always up to date with the default keymap -#include "../default/keymap.c" \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/plain/keymaps/via/rules.mk b/keyboards/keychron/c1-remake/plain/keymaps/via/rules.mk deleted file mode 100644 index 74edb2bf0d41..000000000000 --- a/keyboards/keychron/c1-remake/plain/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE=yes diff --git a/keyboards/keychron/c1-remake/plain/plain.c b/keyboards/keychron/c1-remake/plain/plain.c deleted file mode 100644 index 9e0d1f10eda3..000000000000 --- a/keyboards/keychron/c1-remake/plain/plain.c +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright 2021 IsaacDynamo - * - * 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 "plain.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_kb(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(MAC_BASE); - } else { // Windows mode - layer_move(WIN_BASE); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - - dip_switch_update_user(index, active); - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - keyboard_pre_init_user(); -} - -void suspend_power_down_kb(void) { - // Turn leds off - mode_leds_show = false; - mode_leds_update(); - - suspend_power_down_user(); -} - -/// TODO: Clean-up workaround -/// Currently the suspend_wakeup_init_kb() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 -/// A workaround is to use housekeeping_task_kb() instead. -void housekeeping_task_kb(void) { - // Turn on - mode_leds_show = true; - mode_leds_update(); - - housekeeping_task_user(); -} - -#if CH_CFG_NO_IDLE_THREAD == TRUE - -# define CYCLES_PER_LOOP 9 -# define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) - -void chThdSleep(sysinterval_t time) { - uint32_t loops = time * LOOP_TIMES; - - for (uint32_t i = 0; i < loops; i++) __NOP(); -} - -/* suspend thread used in usb_main.c */ -msg_t chThdSuspendTimeoutS(thread_reference_t* trp, sysinterval_t timeout) { - osalSysUnlock(); - osalSysLock(); - - return MSG_OK; -} - -#endif /* CH_CFG_NO_IDLE_THREAD */ diff --git a/keyboards/keychron/c1-remake/plain/plain.h b/keyboards/keychron/c1-remake/plain/plain.h deleted file mode 100644 index d996ca48d968..000000000000 --- a/keyboards/keychron/c1-remake/plain/plain.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include "quantum.h" - -// Each layer gets a name for readability -enum layer_names { - WIN_BASE = 0, - WIN_FN = 1, - MAC_BASE = 2, - MAC_FN = 3, -}; - -// readability -#define XXX KC_NO - -#define LAYOUT( \ - k00, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ - 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, k5g \ -) \ -{ \ - {k00, XXX, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ - {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g}, \ - {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX}, \ - {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, k4f, XXX}, \ - {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g} \ -} diff --git a/keyboards/keychron/c1-remake/plain/plain.json b/keyboards/keychron/c1-remake/plain/plain.json deleted file mode 100644 index dd407c47f0a7..000000000000 --- a/keyboards/keychron/c1-remake/plain/plain.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "name": "Keychron C1", - "lighting": "none", - "vendorId": "0x3434", - "productId": "0xfe20", - "matrix": { - "rows": 6, - "cols": 17 - }, - "layouts": { - "keymap": [ - [ - "0,1", - { - "x": 1 - }, - "0,2", - "0,3", - "0,4", - "0,5", - { - "x": 0.5 - }, - "0,6", - "0,7", - "0,8", - "0,9", - { - "x": 0.5 - }, - "0,10", - "0,11", - "0,12", - "0,13", - { - "x": 0.25 - }, - "0,14", - "0,15", - "0,16" - ], - [ - { - "y": 0.5 - }, - "1,0", - "1,1", - "1,2", - "1,3", - "1,4", - "1,5", - "1,6", - "1,7", - "1,8", - "1,9", - "1,10", - "1,11", - "1,12", - { - "w": 2 - }, - "1,13", - { - "x": 0.25 - }, - "1,14", - "1,15", - "1,16" - ], - [ - { - "w": 1.5 - }, - "2,0", - "2,1", - "2,2", - "2,3", - "2,4", - "2,5", - "2,6", - "2,7", - "2,8", - "2,9", - "2,10", - "2,11", - "2,12", - { - "w": 1.5 - }, - "2,13", - { - "x": 0.25 - }, - "2,14", - "2,15", - "2,16" - ], - [ - { - "w": 1.75 - }, - "3,0", - "3,1", - "3,2", - "3,3", - "3,4", - "3,5", - "3,6", - "3,7", - "3,8", - "3,9", - "3,10", - "3,11", - { - "w": 2.25 - }, - "3,13" - ], - [ - { - "w": 2.25 - }, - "4,0", - "4,2", - "4,3", - "4,4", - "4,5", - "4,6", - "4,7", - "4,8", - "4,9", - "4,10", - "4,11", - { - "w": 2.75 - }, - "4,13", - { - "x": 1.25 - }, - "4,15", - { - "x": 1.25 - } - ], - [ - { - "w": 1.25 - }, - "5,0", - { - "w": 1.25 - }, - "5,1", - { - "w": 1.25 - }, - "5,2", - { - "w": 6.25 - }, - "5,6", - { - "w": 1.25 - }, - "5,10", - { - "w": 1.25 - }, - "5,11", - { - "w": 1.25 - }, - "5,12", - { - "w": 1.25 - }, - "5,13", - { - "x": 0.25 - }, - "5,14", - "5,15", - "5,16" - ] - ] - } -} \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/plain/rand.c b/keyboards/keychron/c1-remake/plain/rand.c deleted file mode 100644 index a1096bbe2b58..000000000000 --- a/keyboards/keychron/c1-remake/plain/rand.c +++ /dev/null @@ -1,31 +0,0 @@ -// Small rand() implementation -// -// The libc rand implementation takes to much flash space, so an smaller rand() function is used. -#include "quantum.h" - -int rand(void) -{ - // static unsigned int z4; - unsigned int z1, z2, z3, z4; - int r; - unsigned int b; - - z1 = timer_read32(); - z2 = 12345; - z3 = 12345; - z4 = z1 << 8; - - b = ((z1 << 6) ^ z1) >> 13; - z1 = ((z1 & 4294967294U) << 18) ^ b; - b = ((z2 << 2) ^ z2) >> 27; - z2 = ((z2 & 4294967288U) << 2) ^ b; - b = ((z3 << 13) ^ z3) >> 21; - z3 = ((z3 & 4294967280U) << 7) ^ b; - b = ((z4 << 3) ^ z4) >> 12; - z4 = ((z4 & 4294967168U) << 13) ^ b; - - r = z1 ^ z2 ^ z3 ^ z4; - // z4 = r; - - return r; -} diff --git a/keyboards/keychron/c1-remake/plain/readme.md b/keyboards/keychron/c1-remake/plain/readme.md deleted file mode 100644 index 1d4f27a84659..000000000000 --- a/keyboards/keychron/c1-remake/plain/readme.md +++ /dev/null @@ -1,74 +0,0 @@ -# Keychron C1 plain - -![Keychron C1](https://i.imgur.com/oB9h56v.png) - -A customizable TKL keyboard. - -* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) -* Hardware Supported: Keychron C1 plain (no leds, shares PCB with White Led version) -* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) - -# Install -1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. -1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/tag/v0.2.1). -1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x00` as the qmk offset. -1. Click 'Flash QMK...' and flash jumploader-keychron_c1_white.bin. This can be found in 'Pre-Compiled Jumploaders' build by the latest [Sonix keyboard bootloader action](https://github.com/SonixQMK/sonix-keyboard-bootloader/actions). -1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x200` as the qmk offset. -1. Lastly, click 'Flash QMK...' and flash keychron_c1_white_default.bin. This can be found in 'Pre-Compiled Firmware' build by the latest [Sonix QMK firmware action](https://github.com/SonixQMK/qmk_firmware/actions). - -# Keymapping -### Windows Mode -
- -Without Fn | With Fn ----------- | ------- -ESC | Reset keyboard -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Task View -F4 | File Explorer -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Print Screen | Snip & Sketch -Cortana | - -Lock PC | - - -
- -### Mac Mode -
- -Without Fn | With Fn ----------- | ------- -ESC | Reset keyboard -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | None -F4 | Finder -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Take a screenshot (whole screen) | Take a screenshot (specific area) -Siri (hold down) | - -Lock Mac | - - -
- -# More Info - -Make example for this keyboard (after setting up your build environment): - - make keychron/c1/plain - -[Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. - -For more info and detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme - -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/c1-remake/plain/rules.mk b/keyboards/keychron/c1-remake/plain/rules.mk deleted file mode 100644 index cf9c8ce55426..000000000000 --- a/keyboards/keychron/c1-remake/plain/rules.mk +++ /dev/null @@ -1,23 +0,0 @@ -# project specific files -SRC = rand.c - -# MCU name -MCU = SN32F268F - -# Build Options -# comment out to disable the options. -# -MAGIC_ENABLE = yes -MAGIC_KEYCODE_ENABLE = yes -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover -DIP_SWITCH_ENABLE = yes - -# Custom Key and LED matrix handling -CUSTOM_MATRIX = no -RGB_MATRIX_ENABLE = no - -# Reduce code size -USE_PROCESS_STACKSIZE = 0x1E0 -USE_EXCEPTIONS_STACKSIZE = 0xE0 \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/rgb/config.h b/keyboards/keychron/c1-remake/rgb/config.h deleted file mode 100644 index 048a29d1edc7..000000000000 --- a/keyboards/keychron/c1-remake/rgb/config.h +++ /dev/null @@ -1,120 +0,0 @@ -/* Copyright 2020 Adam Honse - * Copyright 2020 Dimitris Mantzouranis - * - * 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 "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3434 -#define PRODUCT_ID 0xFE20 -#define DEVICE_VER 0x0001 - -#define MANUFACTURER Keychron -#define PRODUCT Keychron \x43\x31 -#define DESCRIPTION \x43\x31 RGB - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 17 - -#define DIODE_DIRECTION COL2ROW - -#define MATRIX_COL_PINS { A8, A9, A10, A11, A12, A13, A14, A15, B0, B1, B2, B3, B4, B5, B6, B7, B8 } -#define MATRIX_ROW_PINS { C15, D11, D10, D9, D8, D7 } - -// Backlight configuration -#define BACKLIGHT_LEVELS 8 - -#define LED_MATRIX_ROWS MATRIX_ROWS -#define LED_MATRIX_ROW_CHANNELS 3 -#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS) -#define LED_MATRIX_ROW_PINS { C0, C1, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, B13, D3, B15, B14 } - -#define LED_MATRIX_COLS MATRIX_COLS -#define LED_MATRIX_COL_PINS MATRIX_COL_PINS - -#define DRIVER_LED_TOTAL (87) - -// Connects each switch in the dip switch to the GPIO pin of the MCU -#define DIP_SWITCH_PINS { D4 } - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 0 - -/* LED Status indicators */ -#define LED_CAPS_LOCK_PIN B10 -#define LED_MAC_PIN B11 //labeled Mac on KB since no Scroll Lock -#define LED_WIN_PIN B12 //labeled Windows on KB since no Numpad -#define LED_PIN_ON_STATE 1 - -/* Polling Rate */ -#define USB_POLLING_INTERVAL_MS 1 - -/* Disable RGB while USB is sleeping */ -#define RGB_DISABLE_WHEN_USB_SUSPENDED true - -/* RGB Non-Reactive 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_FRACTAL -#define ENABLE_RGB_MATRIX_PIXEL_RAIN -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -#define ENABLE_RGB_MATRIX_DIGITAL_RAIN - -/* RGB Reactive Effects Toggle */ -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_MATRIX_KEYPRESSES -//#define RGB_MATRIX_KEYRELEASES - -/* RGB Reactive Effects */ -#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 diff --git a/keyboards/keychron/c1-remake/rgb/info.json b/keyboards/keychron/c1-remake/rgb/info.json deleted file mode 100644 index 742d7d4e7fe4..000000000000 --- a/keyboards/keychron/c1-remake/rgb/info.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "keyboard_name": "Keychron C1 RGB", - "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", - "maintainer": "noldevin, vjdato21", - "width": 17, - "height": 6, - "layouts": { - "LAYOUT": { - "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Assistant", "x":16.25, "y":0}, {"label":"RGB", "x":17.25, "y":0}, - {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, - {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, - {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, - {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, - {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Fn", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] - } - } -} diff --git a/keyboards/keychron/c1-remake/rgb/keymaps/default/keymap.c b/keyboards/keychron/c1-remake/rgb/keymaps/default/keymap.c deleted file mode 100644 index 3218de291b89..000000000000 --- a/keyboards/keychron/c1-remake/rgb/keymaps/default/keymap.c +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum layer_names { - WIN_BASE = 0, - WIN_FN = 1, - MAC_BASE = 2, - MAC_FN = 3, -}; - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CRTN LGUI(KC_C) // Cortana | Microsoft Teams -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [WIN_BASE] = { // Windows base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_PSCR, KC_CRTN, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, - - [WIN_FN] = { // Windows Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, 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_NO, KC_SNIP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, GUI_TOG, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - }, - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [MAC_BASE] = { // Mac base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_MSCR, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_RALT, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, - - [MAC_FN] = { // Mac Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MSNP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, _______, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - } -}; diff --git a/keyboards/keychron/c1-remake/rgb/keymaps/via/config.h b/keyboards/keychron/c1-remake/rgb/keymaps/via/config.h deleted file mode 100644 index 176f444b24d6..000000000000 --- a/keyboards/keychron/c1-remake/rgb/keymaps/via/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -// Enable RGB Matrix -#define VIA_QMK_RGBLIGHT_ENABLE diff --git a/keyboards/keychron/c1-remake/rgb/keymaps/via/keymap.c b/keyboards/keychron/c1-remake/rgb/keymaps/via/keymap.c deleted file mode 100644 index 3218de291b89..000000000000 --- a/keyboards/keychron/c1-remake/rgb/keymaps/via/keymap.c +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum layer_names { - WIN_BASE = 0, - WIN_FN = 1, - MAC_BASE = 2, - MAC_FN = 3, -}; - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CRTN LGUI(KC_C) // Cortana | Microsoft Teams -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [WIN_BASE] = { // Windows base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_PSCR, KC_CRTN, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, - - [WIN_FN] = { // Windows Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, 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_NO, KC_SNIP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, GUI_TOG, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - }, - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [MAC_BASE] = { // Mac base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_MSCR, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_RALT, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, - - [MAC_FN] = { // Mac Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MSNP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, _______, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - } -}; diff --git a/keyboards/keychron/c1-remake/rgb/keymaps/via/rules.mk b/keyboards/keychron/c1-remake/rgb/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/keychron/c1-remake/rgb/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/keychron/c1-remake/rgb/readme.md b/keyboards/keychron/c1-remake/rgb/readme.md deleted file mode 100644 index 6f4738b7f8c4..000000000000 --- a/keyboards/keychron/c1-remake/rgb/readme.md +++ /dev/null @@ -1,85 +0,0 @@ -# Keychron C1 RGB - -![Keychron C1](https://i.imgur.com/oB9h56v.png) - -A customizable TKL keyboard. - -* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) -* Hardware Supported: Keychron C1 RGB -* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) - -Make example for this keyboard (after setting up your build environment): - - make keychron/c1/rgb:default | make keychron/c1/rgb:via - -## How to Flash -Flashing example for this keyboard: -1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. -1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/latest). -1. In Sonix Flasher, select `SN32F24X` under 'Device'. And select `0x00` as the qmk offset. -1. Lastly, click 'Flash QMK...' and locate the compiled firmware. - -* * * -# Keymapping -### Windows Mode -
- -Without Fn | With Fn ----------- | ------- -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Task View -F4 | File Explorer -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Print Screen | Snip & Sketch -Cortana / Microsoft Teams | None -Change RGB | Toggle RGB -⊞ | Windows Key Lock Toggle -Home | NKRO Toggle -↑ | Increase RGB Hue -← | Decrease RGB Saturation -↓ | Decrease RGB Hue -→ | Increase RGB Saturation - -
- -### Mac Mode -
- -Without Fn | With Fn ----------- | ------- -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Mission Control -F4 | Finder -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Take a screenshot (whole screen) | Take a screenshot (specific area) -Siri (hold down) | None -Change RGB | Toggle RGB -Home | NKRO Toggle -↑ | Increase RGB Hue -← | Decrease RGB Saturation -↓ | Decrease RGB Hue -→ | Increase RGB Saturation - -
- -* * * - -For more information and more detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme - -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/c1-remake/rgb/rgb.c b/keyboards/keychron/c1-remake/rgb/rgb.c deleted file mode 100644 index f994ebc9d092..000000000000 --- a/keyboards/keychron/c1-remake/rgb/rgb.c +++ /dev/null @@ -1,101 +0,0 @@ -/* -Copyright 2021 Dimitris Mantzouranis - -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 "rgb.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_user(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(2); - } else { // Windows mode - layer_move(0); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - keyboard_pre_init_user(); -} - -void suspend_power_down_kb(void) { - // Turn leds off - mode_leds_show = false; - mode_leds_update(); - - suspend_power_down_user(); -} - -/// TODO: Clean-up workaround -/// Currently the suspend_wakeup_init_user() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 -/// A workaround is to use housekeeping_task_user() instead. -void housekeeping_task_kb(void) { - // Turn on - mode_leds_show = true; - mode_leds_update(); - - housekeeping_task_user(); -} - -#ifdef RGB_MATRIX_ENABLE - -#include "rgb_matrix.h" - -#define XX NO_LED - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, XX, 13, 14, 15}, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, XX, 62, XX, XX, XX}, - { 63, XX, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, XX, 74, XX, 75, XX}, - { 76, 77, 78, XX, XX, XX, 79, XX, XX, XX, 80, 81, 82, 83, 84, 85, 86} -}, { - {0 , 0}, {12 , 0}, {25 , 0}, {37 , 0}, {50 , 0}, {62 , 0}, {75 , 0}, {87 , 0}, {100, 0}, {112, 0}, {124, 0}, {137, 0}, {149, 0}, {174, 0}, {187, 0}, {199, 0}, - {0 , 13}, {12 , 13}, {25 , 13}, {37 , 13}, {50 , 13}, {62 , 13}, {75 , 13}, {87 , 13}, {100, 13}, {112, 13}, {124, 13}, {137, 13}, {149, 13}, {168, 13}, {174, 13}, {187, 13}, {199, 13}, - {3 , 26}, {19 , 26}, {31 , 26}, {44 , 26}, {56 , 26}, {68 , 26}, {81 , 26}, {93 , 26}, {106, 26}, {118, 26}, {131, 26}, {143, 26}, {156, 26}, {168, 26}, {174, 26}, {187, 26}, {199, 26}, - {5 , 38}, {22 , 38}, {34 , 38}, {47 , 38}, {59 , 38}, {72 , 38}, {84 , 38}, {96 , 38}, {109, 38}, {121, 38}, {134, 38}, {146, 38}, {166, 38}, - {8 , 51}, {28 , 51}, {40 , 51}, {53 , 51}, {65 , 51}, {78 , 51}, {90 , 51}, {103, 51}, {115, 51}, {128, 51}, {140, 51}, {157, 51}, {187, 51}, - {2 , 64}, {17 , 64}, {33 , 64}, {79 , 64}, {124, 64}, {137, 64}, {149, 64}, {162, 64}, {174, 64}, {187, 64}, {199, 64}, -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; - -#endif diff --git a/keyboards/keychron/c1-remake/rgb/rgb.h b/keyboards/keychron/c1-remake/rgb/rgb.h deleted file mode 100644 index 6ecd143b1132..000000000000 --- a/keyboards/keychron/c1-remake/rgb/rgb.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include "quantum.h" -// readability -#define XXX KC_NO - -#define LAYOUT_tkl_ansi( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ - 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, k5g \ -) \ -{ \ - {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, XXX}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ - {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f, k2g}, \ - {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, XXX, XXX, XXX, XXX}, \ - {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, XXX, XXX, k4f, XXX}, \ - {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d k5e, k5f, k5g} \ -} diff --git a/keyboards/keychron/c1-remake/rgb/rgb.json b/keyboards/keychron/c1-remake/rgb/rgb.json deleted file mode 100644 index 2432177ec8d0..000000000000 --- a/keyboards/keychron/c1-remake/rgb/rgb.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "name": "Keychron C1", - "vendorId": "0x3434", - "productId": "0xFE20", - "lighting": { - "extends": "qmk_rgblight", - "underglowEffects": [ - [ - "None", - 0 - ], - [ - "SOLID_COLOR", - 1 - ], - [ - "ALPHAS_MODS", - 1 - ], - [ - "GRADIENT_UP_DOWN", - 1 - ], - [ - "GRADIENT_LEFT_RIGHT", - 1 - ], - [ - "BREATHING", - 1 - ], - [ - "BAND_SAT", - 1 - ], - [ - "BAND_VAL", - 1 - ], - [ - "BAND_PINWHEEL_SAT", - 1 - ], - [ - "BAND_PINWHEEL_VAL", - 1 - ], - [ - "BAND_SPIRAL_SAT", - 1 - ], - [ - "BAND_SPIRAL_VAL", - 1 - ], - [ - "CYCLE_ALL", - 1 - ], - [ - "CYCLE_LEFT_RIGHT", - 1 - ], - [ - "CYCLE_UP_DOWN", - 1 - ], - [ - "CYCLE_OUT_IN", - 1 - ], - [ - "CYCLE_OUT_IN_DUAL", - 1 - ], - [ - "RAINBOW_MOVING_CHEVRON", - 1 - ], - [ - "CYCLE_PINWHEEL", - 1 - ], - [ - "CYCLE_SPIRAL", - 1 - ], - [ - "DUAL_BEACON", - 1 - ], - [ - "RAINBOW_BEACON", - 1 - ], - [ - "RAINBOW_PINWHEELS", - 1 - ], - [ - "RAINDROPS", - 1 - ], - [ - "JELLYBEAN_RAINDROPS", - 1 - ], - [ - "HUE_BREATHING", - 1 - ], - [ - "HUE_PENDULUM", - 1 - ], - [ - "HUE_WAVE", - 1 - ], - ["PIXEL_FRACTAL", 1], - ["PIXEL_RAIN", 1], - [ - "TYPING_HEATMAP", - 1 - ], - [ - "DIGITAL_RAIN", - 1 - ], - [ - "SOLID_REACTIVE_SIMPLE", - 1 - ], - [ - "SOLID_REACTIVE", - 1 - ], - [ - "SOLID_REACTIVE_WIDE", - 1 - ], - [ - "SOLID_REACTIVE_MULTIWIDE", - 1 - ], - [ - "SOLID_REACTIVE_CROSS", - 1 - ], - [ - "SOLID_REACTIVE_MULTICROSS", - 1 - ], - [ - "SOLID_REACTIVE_NEXUS", - 1 - ], - [ - "SOLID_REACTIVE_MULTINEXUS", - 1 - ], - [ - "SPLASH", - 1 - ], - [ - "MULTISPLASH", - 1 - ], - [ - "SOLID_SPLASH", - 1 - ], - [ - "SOLID_MULTISPLASH", - 1 - ] - ], - "supportedLightingValues": [ - 128, - 129, - 131 - ] - }, - "matrix": {"rows": 6, "cols": 17}, - "layouts": { - "keymap": [ - ["0,0", {"x": 1}, "0,1", "0,2", "0,3", "0,4", {"x": 0.5}, "0,5", "0,6", "0,7", "0,8", {"x": 0.5}, "0,9", "0,10", "0,11", "0,12", {"x": 0.25}, "0,14", "0,15", "0,16"], - [{"y": 0.5}, "1,0", "1,1", "1,2", "1,3", "1,4", "1,5", "1,6", "1,7", "1,8", "1,9", "1,10", "1,11", "1,12", {"w": 2}, "1,13", {"x": 0.25 }, "1,14", "1,15", "1,16"], - [{"w": 1.5 }, "2,0", "2,1", "2,2", "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", "2,9", "2,10", "2,11", "2,12", {"w": 1.5}, "2,13", { "x": 0.25 }, "2,14", "2,15", "2,16"], - [{"w": 1.75 }, "3,0", "3,1", "3,2", "3,3", "3,4", "3,5", "3,6", "3,7", "3,8", "3,9", "3,10", "3,11", { "w": 2.25 }, "3,13"], - [{"w": 2.25 }, "4,0", "4,2", "4,3", "4,4", "4,5", "4,6", "4,7", "4,8", "4,9", "4,10", "4,11", {"w": 2.75 }, "4,13", {"x": 1.25 }, "4,15"], - [{"w": 1.25 }, "5,0", {"w": 1.25 }, "5,1", {"w": 1.25 }, "5,2", {"w": 6.25 }, "5,6", {"w": 1.25 }, "5,10", {"w": 1.25 }, "5,11", {"w": 1.25 }, "5,12", {"w": 1.25 }, "5,13", {"x": 0.25 }, "5,14", "5,15", "5,16"] - ] - } -} diff --git a/keyboards/keychron/c1-remake/rgb/rules.mk b/keyboards/keychron/c1-remake/rgb/rules.mk deleted file mode 100644 index f6792f46337c..000000000000 --- a/keyboards/keychron/c1-remake/rgb/rules.mk +++ /dev/null @@ -1,32 +0,0 @@ -# project specific files -SRC = ../../../drivers/led/sn32/matrix_sn32f24xx.c -SRC += config_led.c - -# MCU name -MCU = SN32F248BF - -# Build Options -# comment out to disable the options. -# -LTO_ENABLE = no -BACKLIGHT_ENABLE = no -MAGIC_ENABLE = yes -MAGIC_KEYCODE_ENABLE = yes -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover -AUDIO_ENABLE = no -RGBLIGHT_ENABLE = no -SERIAL_LINK_ENABLE = no -WAIT_FOR_USB = yes -CUSTOM_MATRIX = yes -DIP_SWITCH_ENABLE = yes -KEYBOARD_SHARED_EP = no - -# Custom RGB matrix handling -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = SN32F24xB diff --git a/keyboards/keychron/c1-remake/white/config.h b/keyboards/keychron/c1-remake/white/config.h deleted file mode 100644 index f7fd3bcb07ec..000000000000 --- a/keyboards/keychron/c1-remake/white/config.h +++ /dev/null @@ -1,91 +0,0 @@ -/* Copyright 2020 Adam Honse - * Copyright 2020 Dimitris Mantzouranis - * - * 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 "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3434 -#define PRODUCT_ID 0xFE20 -#define DEVICE_VER 0x0001 - -#define MANUFACTURER Keychron -// \x43\x31 is "C1" in ASCII hex, this is used to prevent macro expansion, because C1 is also a pin macro. -#define PRODUCT Keychron \x43\x31 -#define DESCRIPTION Keychron \x43\x31 Plain - -#define WAIT_FOR_USB -#define USB_MAX_POWER_CONSUMPTION 100 - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 17 - -#define DIODE_DIRECTION COL2ROW - -#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, D0 } -#define MATRIX_ROW_PINS { C3, C4, C5, C6, C7, C8 } - -/* LED matrix */ -#define LED_MATRIX_ROWS MATRIX_ROWS -#define LED_MATRIX_ROW_CHANNELS 1 -#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS) -#define LED_MATRIX_ROW_PINS { C0, C1, C2, D4, C9, C10 } - -#define LED_MATRIX_COLS MATRIX_COLS -#define LED_MATRIX_COL_PINS MATRIX_COL_PINS - -#define DRIVER_LED_TOTAL (87) - -/* Backlight configuration */ -#define RGB_MATRIX_VAL_STEP 32 -#define RGB_DISABLE_WHEN_USB_SUSPENDED true - -/* Connects each switch in the dip switch to the GPIO pin of the MCU */ -#define DIP_SWITCH_PINS { D7 } - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* LED Status indicators */ -#define LED_CAPS_LOCK_PIN B3 -#define LED_PIN_ON_STATE 1 - -#define LED_MAC_PIN B4 -#define LED_WIN_PIN B5 - -/* Enable NKRO by default */ -#define FORCE_NKRO - -/* Disable RGB while USB is sleeping */ -#define RGB_DISABLE_WHEN_USB_SUSPENDED true - -/* Disable the following animation because they are not interesting in monochrome */ -#define DISABLE_RGB_MATRIX_ALPHAS_MODS -#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN -#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -#define DISABLE_RGB_MATRIX_BAND_SAT -#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT -#define DISABLE_RGB_MATRIX_CYCLE_ALL -#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#define DISABLE_RGB_MATRIX_DUAL_BEACON - -/* TODO: Disabled the following animation because they crash the keyboard. Probably due to a too small stack */ -#define DISABLE_RGB_MATRIX_RAINDROPS -#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS diff --git a/keyboards/keychron/c1-remake/white/info.json b/keyboards/keychron/c1-remake/white/info.json deleted file mode 100644 index 1ccc86137007..000000000000 --- a/keyboards/keychron/c1-remake/white/info.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "keyboard_name": "Keychron C1 white", - "url": "https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard", - "maintainer": "IsaacDynamo", - "width": 17, - "height": 6, - "layouts": { - "LAYOUT": { - "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":"F6", "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":"PrtSc", "x":15.25, "y":0}, {"label":"Mic", "x":16.25, "y":0}, {"label":"Lamp", "x":17.25, "y":0}, - {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, - {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, - {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, - {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, - {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] - } - } -} \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/white/keychron_c1_white_via.json b/keyboards/keychron/c1-remake/white/keychron_c1_white_via.json deleted file mode 100644 index 0c34cadaa017..000000000000 --- a/keyboards/keychron/c1-remake/white/keychron_c1_white_via.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "name": "Keychron C1 White", - "vendorId": "0x05ac", - "productId": "0x024f", - "lighting": "qmk_rgblight", - "matrix": {"rows": 6, "cols": 17}, - "layouts": { - "keymap": [ - [ - "0,0", - { - "x": 1 - }, - "0,2", - "0,3", - "0,4", - "0,5", - { - "x": 0.5 - }, - "0,6", - "0,7", - "0,8", - "0,9", - { - "x": 0.5 - }, - "0,10", - "0,11", - "0,12", - "0,13", - { - "x": 0.25 - }, - "0,14", - "0,15", - "0,16" - ], - [ - { - "y": 0.5 - }, - "1,0", - "1,1", - "1,2", - "1,3", - "1,4", - "1,5", - "1,6", - "1,7", - "1,8", - "1,9", - "1,10", - "1,11", - "1,12", - { - "w": 2 - }, - "1,13", - { - "x": 0.25 - }, - "1,14", - "1,15", - "1,16" - ], - [ - { - "w": 1.5 - }, - "2,0", - "2,1", - "2,2", - "2,3", - "2,4", - "2,5", - "2,6", - "2,7", - "2,8", - "2,9", - "2,10", - "2,11", - "2,12", - { - "w": 1.5 - }, - "2,13", - { - "x": 0.25 - }, - "2,14", - "2,15", - "2,16" - ], - [ - { - "w": 1.75 - }, - "3,0", - "3,1", - "3,2", - "3,3", - "3,4", - "3,5", - "3,6", - "3,7", - "3,8", - "3,9", - "3,10", - "3,11", - { - "w": 2.25 - }, - "3,13" - ], - [ - { - "w": 2.25 - }, - "4,0", - "4,2", - "4,3", - "4,4", - "4,5", - "4,6", - "4,7", - "4,8", - "4,9", - "4,10", - "4,11", - { - "w": 2.75 - }, - "4,13", - { - "x": 1.25 - }, - "4,15", - { - "x": 1.25 - } - ], - [ - { - "w": 1.25 - }, - "5,0", - { - "w": 1.25 - }, - "5,1", - { - "w": 1.25 - }, - "5,2", - { - "w": 6.25 - }, - "5,6", - { - "w": 1.25 - }, - "5,10", - { - "w": 1.25 - }, - "5,11", - { - "w": 1.25 - }, - "5,12", - { - "w": 1.25 - }, - "5,13", - { - "x": 0.25 - }, - "5,14", - "5,15", - "5,16" - ] - ] - } -} \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/white/keymaps/default/keymap.c b/keyboards/keychron/c1-remake/white/keymaps/default/keymap.c deleted file mode 100644 index bcfec6d5cdb7..000000000000 --- a/keyboards/keychron/c1-remake/white/keymaps/default/keymap.c +++ /dev/null @@ -1,100 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CORT LGUI(KC_C) // Cortana -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(WIN_FN) // Windows Fn - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(MAC_FN) // Mac Fn - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT| BL | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [WIN_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, RGB_TOG, \ - 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [WIN_FN] = LAYOUT( \ - RESET, 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_SNIP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ - ), - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI| BL | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [MAC_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, RGB_TOG, \ - 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [MAC_FN] = LAYOUT( \ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ - ) -}; diff --git a/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c b/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c deleted file mode 100644 index a730c1821940..000000000000 --- a/keyboards/keychron/c1-remake/white/keymaps/via/keymap.c +++ /dev/null @@ -1,3 +0,0 @@ -// Include default keymap -// This way the VIA keymap is always up to date with the default keymap -#include "../white_ansi/keymap.c" diff --git a/keyboards/keychron/c1-remake/white/keymaps/via/no_idle_thread.c b/keyboards/keychron/c1-remake/white/keymaps/via/no_idle_thread.c deleted file mode 100644 index d5ab9b8aafd4..000000000000 --- a/keyboards/keychron/c1-remake/white/keymaps/via/no_idle_thread.c +++ /dev/null @@ -1,30 +0,0 @@ -// Size optimizations to fit VIA support -// -// These optimizations are pretty intrusive because they remove the idle thread. -// Without idle thread some sleep related functions no longer function. -// These broken functions are overwritten with patched variants. -// -// These optimization are copied from: -// https://github.com/gloryhzw/qmk_firmware/blob/sn32/keyboards/gmmk/full -// -// This file adds patch sleep related functions that work without idle threads. - -#include "quantum.h" - -/* - * must override sleep functions without idle thread - */ -#define CYCLES_PER_LOOP 9 -#define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) - -void chThdSleep(sysinterval_t time) { - uint32_t loops = time * LOOP_TIMES; - for (uint32_t i = 0; i < loops; i++) __NOP(); -} - -/* suspend thread used in usb_main.c */ -msg_t chThdSuspendTimeoutS(thread_reference_t* trp, sysinterval_t timeout) { - osalSysUnlock(); - osalSysLock(); - return MSG_OK; -} diff --git a/keyboards/keychron/c1-remake/white/keymaps/via/rules.mk b/keyboards/keychron/c1-remake/white/keymaps/via/rules.mk deleted file mode 100644 index 086f21f4ae12..000000000000 --- a/keyboards/keychron/c1-remake/white/keymaps/via/rules.mk +++ /dev/null @@ -1,21 +0,0 @@ -# Experimental VIA support -VIA_ENABLE=yes - -# Size optimizations to fit VIA support -# -# These optimizations are pretty intrusive because they remove the idle thread. -# Without idle thread some sleep related functions no longer function. -# These broken functions are overwritten with patched variants. -# -# These optimization are copied from: -# https://github.com/gloryhzw/qmk_firmware/blob/sn32/keyboards/gmmk/full - -# Reduce RAW endpoints -OPT_DEFS += -DRAW_IN_CAPACITY=1 -OPT_DEFS += -DRAW_OUT_CAPACITY=1 - -# Remove idle thread -OPT_DEFS += -DCH_CFG_NO_IDLE_THREAD=TRUE - -# Include the patched functions -SRC += keymaps/via/no_idle_thread.c diff --git a/keyboards/keychron/c1-remake/white/rand.c b/keyboards/keychron/c1-remake/white/rand.c deleted file mode 100644 index a1096bbe2b58..000000000000 --- a/keyboards/keychron/c1-remake/white/rand.c +++ /dev/null @@ -1,31 +0,0 @@ -// Small rand() implementation -// -// The libc rand implementation takes to much flash space, so an smaller rand() function is used. -#include "quantum.h" - -int rand(void) -{ - // static unsigned int z4; - unsigned int z1, z2, z3, z4; - int r; - unsigned int b; - - z1 = timer_read32(); - z2 = 12345; - z3 = 12345; - z4 = z1 << 8; - - b = ((z1 << 6) ^ z1) >> 13; - z1 = ((z1 & 4294967294U) << 18) ^ b; - b = ((z2 << 2) ^ z2) >> 27; - z2 = ((z2 & 4294967288U) << 2) ^ b; - b = ((z3 << 13) ^ z3) >> 21; - z3 = ((z3 & 4294967280U) << 7) ^ b; - b = ((z4 << 3) ^ z4) >> 12; - z4 = ((z4 & 4294967168U) << 13) ^ b; - - r = z1 ^ z2 ^ z3 ^ z4; - // z4 = r; - - return r; -} diff --git a/keyboards/keychron/c1-remake/white/readme.md b/keyboards/keychron/c1-remake/white/readme.md deleted file mode 100644 index 7b280c99badf..000000000000 --- a/keyboards/keychron/c1-remake/white/readme.md +++ /dev/null @@ -1,86 +0,0 @@ -# Keychron C1 white - -![Keychron C1](https://i.imgur.com/oB9h56v.png) - -A customizable TKL keyboard. - -* Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo), [noldevin](https://github.com/noldevin), [vjdato21](https://github.com/vjdato21) -* Hardware Supported: Keychron C1 white -* Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) - -# Install -1. If your keyboard currently has stock firmware installed, put your keyboard first into bootloader by shorting the boot pins found under the spacebar before plugging in your keyboard to the PC. Otherwise, press `Fn + Esc` to put your keyboard into bootloader. -1. Download and run [Sonix Flasher](https://github.com/SonixQMK/sonix-flasher/releases/tag/v0.2.1). -1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x00` as the qmk offset. -1. Click 'Flash QMK...' and flash jumploader-keychron_c1_white.bin. This can be found in 'Pre-Compiled Jumploaders' build by the latest [Sonix keyboard bootloader action](https://github.com/SonixQMK/sonix-keyboard-bootloader/actions). -1. In Sonix Flasher, select `SN32F26x` under 'Device'. And select `0x200` as the qmk offset. -1. Lastly, click 'Flash QMK...' and flash keychron_c1_white_default.bin. This can be found in 'Pre-Compiled Firmware' build by the latest [Sonix QMK firmware action](https://github.com/SonixQMK/qmk_firmware/actions). - -# Keymapping -### Windows Mode -
- -Without Fn | With Fn ----------- | ------- -ESC | Reset keyboard -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Task View -F4 | File Explorer -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Print Screen | Snip & Sketch -Cortana | - -Toggle backlight | - -↑ | Increase effect speed -← | Cycle through modes in reverse -↓ | Decrease effect speed -→ | Cycle through modes - -
- -### Mac Mode -
- -Without Fn | With Fn ----------- | ------- -ESC | Reset keyboard -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | None -F4 | Finder -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Take a screenshot (whole screen) | Take a screenshot (specific area) -Siri (hold down) | - -Toggle backlight | - -↑ | Increase effect speed -← | Cycle through modes in reverse -↓ | Decrease effect speed -→ | Cycle through modes - -
- -# More Info - -Make example for this keyboard (after setting up your build environment): - - make keychron/c1/white - -[Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. - -For more info and detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme - -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/c1-remake/white/rgb_matrix_kb.inc b/keyboards/keychron/c1-remake/white/rgb_matrix_kb.inc deleted file mode 100644 index cbeff4e047fc..000000000000 --- a/keyboards/keychron/c1-remake/white/rgb_matrix_kb.inc +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef DISABLE_RGB_MATRIX_HIGH_CONTRAST -RGB_MATRIX_EFFECT(HIGH_CONTRAST) -RGB_MATRIX_EFFECT(HIGH_CONTRAST2) -#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS - -// Only light up black keys. These are marked with 128 in g_led_config. -bool HIGH_CONTRAST(effect_params_t* params) { - RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); - - RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - if (HAS_FLAGS(g_led_config.flags[i], 128)) { - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } else { - rgb_matrix_set_color(i, 0, 0, 0); - } - } - return led_max < DRIVER_LED_TOTAL; -} - -// Only light up black and orange keys. These are marked with 128 and 64 in g_led_config. -// Use this high contrast mode when you use black keycaps for Esc and lightbulb key and what them to be lit as wel. -bool HIGH_CONTRAST2(effect_params_t* params) { - RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); - - RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - if (HAS_FLAGS(g_led_config.flags[i], 128) || HAS_FLAGS(g_led_config.flags[i], 64)) { - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } else { - rgb_matrix_set_color(i, 0, 0, 0); - } - } - return led_max < DRIVER_LED_TOTAL; -} - -#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // DISABLE_RGB_MATRIX_HIGH_CONTRAST diff --git a/keyboards/keychron/c1-remake/white/rules.mk b/keyboards/keychron/c1-remake/white/rules.mk deleted file mode 100644 index e6e11ca9b794..000000000000 --- a/keyboards/keychron/c1-remake/white/rules.mk +++ /dev/null @@ -1,25 +0,0 @@ -# project specific files -SRC += rand.c - -# MCU name -MCU = SN32F268F - -# Build Options -# comment out to disable the options. -# -MAGIC_ENABLE = yes -MAGIC_KEYCODE_ENABLE = yes -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover -DIP_SWITCH_ENABLE = yes - -# Custom Key and LED matrix handling -CUSTOM_MATRIX = yes -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = SN32F26x -RGB_MATRIX_CUSTOM_KB = yes - -# Reduce code size -USE_PROCESS_STACKSIZE = 0x1E0 -USE_EXCEPTIONS_STACKSIZE = 0xF0 \ No newline at end of file diff --git a/keyboards/keychron/c1-remake/white/white.c b/keyboards/keychron/c1-remake/white/white.c deleted file mode 100644 index 4ce51057b133..000000000000 --- a/keyboards/keychron/c1-remake/white/white.c +++ /dev/null @@ -1,122 +0,0 @@ -/* Copyright 2021 IsaacDynamo - * - * 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 "white.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_kb(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(MAC_BASE); - } else { // Windows mode - layer_move(WIN_BASE); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - - dip_switch_update_user(index, active); - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - // WORKAROUND: Mac & Windows LED flicker. - // Normally the GPIOs in DIP_SWITCH_PINS will be initialized by dip_switch_init(). - // But during startup of the keyboard the Mac/Windows dip switch seems to jitter, causing the Mac and Windows LEDs to flicker. - // Maybe the internal pull-up of this chip is really weak, and needs some time to pullup the input voltage to the high level? Seems unlikely but cannot think of a better explanation. - // By doing the configuration of the GPIOs here the pullup is enabled earlier and the flicker is gone. - const pin_t dip_switch_pad[] = DIP_SWITCH_PINS; - const size_t size = sizeof(dip_switch_pad) / sizeof(dip_switch_pad[0]); - for (size_t i=0; i. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. enum layer_names { - WIN_BASE = 0, - WIN_FN = 1, - MAC_BASE = 2, - MAC_FN = 3, + MAC_BASE = 0, + MAC_FN = 1, + WIN_BASE = 2, + WIN_FN = 3, }; #define KC_TASK LGUI(KC_TAB) // Task viewer @@ -39,9 +39,10 @@ enum layer_names { #define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout + + /* Mac layout +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | +--------------------------------------------------------------------------+ +--------------+ | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| +--------------------------------------------------------------------------+ +--------------+ @@ -51,33 +52,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +--------------------------------------------------------------------------+ +----+ | | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | +-------------------------------------------------------------------------------------------+ */ - [WIN_BASE] = { // Windows base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_PSCR, KC_CRTN, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, + [MAC_BASE] = LAYOUT_tkl_ansi( + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + 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_MSCR, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), - [WIN_FN] = { // Windows Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, 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_NO, KC_SNIP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, GUI_TOG, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - }, + [MAC_FN] = LAYOUT_tkl_ansi( \ + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI + ), - /* Mac layout + /* Windows layout +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | +--------------------------------------------------------------------------+ +--------------+ | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| +--------------------------------------------------------------------------+ +--------------+ @@ -87,27 +88,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +--------------------------------------------------------------------------+ +----+ | | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | +-------------------------------------------------------------------------------------------+ */ - [MAC_BASE] = { // Mac base layout - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { 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_NO, KC_MSCR, 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_NO, KC_ENT, KC_NO, KC_NO, KC_NO }, - { KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, KC_UP, KC_NO }, - { KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_RGUI, KC_RALT, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT } - }, + [WIN_BASE] = LAYOUT_tkl_ansi( + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + 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_CRTN, 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), - [MAC_FN] = { // Mac Fn overlay - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - { RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_MSNP, _______, RGB_TOG }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, KC_NO, KC_NO }, - { _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_NO, RGB_HUI, KC_NO }, - { _______, _______, _______, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI } - } + [WIN_FN] = LAYOUT_tkl_ansi( + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + RESET, 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_SNIP, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, GUI_TOG, _______, _______, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI + ) }; diff --git a/keyboards/keychron/c1/rgb/rgb.c b/keyboards/keychron/c1/rgb/rgb.c index f994ebc9d092..f9491e7462ed 100644 --- a/keyboards/keychron/c1/rgb/rgb.c +++ b/keyboards/keychron/c1/rgb/rgb.c @@ -30,9 +30,9 @@ static void mode_leds_update(void){ bool dip_switch_update_user(uint8_t index, bool active){ if(index == 0) { if(active) { // Mac mode - layer_move(2); - } else { // Windows mode layer_move(0); + } else { // Windows mode + layer_move(2); } // Update mode and update leds diff --git a/keyboards/keychron/c1/rgb/rgb.h b/keyboards/keychron/c1/rgb/rgb.h index 6ecd143b1132..e74441834f60 100644 --- a/keyboards/keychron/c1/rgb/rgb.h +++ b/keyboards/keychron/c1/rgb/rgb.h @@ -11,12 +11,11 @@ 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, k5g \ -) \ -{ \ - {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, XXX}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ - {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f, k2g}, \ - {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, XXX, XXX, XXX, XXX}, \ - {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, XXX, XXX, k4f, XXX}, \ - {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d k5e, k5f, k5g} \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, XXX, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX }, \ + { k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, k4f, XXX }, \ + { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g } \ } From 312e0c63f56dd5c59196368a086293a56f0acf4d Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Mon, 7 Feb 2022 21:55:10 +0800 Subject: [PATCH 05/34] [Keychron C1 Series] Some fixes again - Fixed layout for white and plain variants. - Issue about compiling C1 White's VIA keymap has been found. Currently trying to coordinate with other maintainer for a resolution. - Reorganize and reformatted keymap files. --- .../keychron/c1/keymaps/plain_ansi/keymap.c | 33 ++++++++++--------- .../keychron/c1/keymaps/rgb_ansi/keymap.c | 11 ------- .../keychron/c1/keymaps/white_ansi/keymap.c | 33 ++++++++++--------- keyboards/keychron/c1/plain/plain.h | 13 ++++---- keyboards/keychron/c1/rgb/rgb.c | 9 +++-- keyboards/keychron/c1/rgb/rgb.h | 11 ++++++- keyboards/keychron/c1/white/white.h | 11 +++---- 7 files changed, 61 insertions(+), 60 deletions(-) diff --git a/keyboards/keychron/c1/keymaps/plain_ansi/keymap.c b/keyboards/keychron/c1/keymaps/plain_ansi/keymap.c index 16e60e95f6bd..3b709a70a559 100644 --- a/keyboards/keychron/c1/keymaps/plain_ansi/keymap.c +++ b/keyboards/keychron/c1/keymaps/plain_ansi/keymap.c @@ -32,9 +32,10 @@ along with this program. If not, see . #define KD_M_LK LCMD(LCTL(KC_Q)) // Mac Lock const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout + + /* Mac layout +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|LOCK| + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|LOCK| +--------------------------------------------------------------------------+ +--------------+ | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| +--------------------------------------------------------------------------+ +--------------+ @@ -44,21 +45,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +--------------------------------------------------------------------------+ +----+ | | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | +-------------------------------------------------------------------------------------------+ */ - [WIN_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, KC_LOCK, \ + [MAC_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, KD_M_LK, \ 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [WIN_FN] = LAYOUT( \ - RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, _______, \ + [MAC_FN] = LAYOUT( \ + RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -66,9 +67,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ), - /* Mac layout + /* Windows layout +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|LOCK| + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|LOCK| +--------------------------------------------------------------------------+ +--------------+ | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| +--------------------------------------------------------------------------+ +--------------+ @@ -78,21 +79,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +--------------------------------------------------------------------------+ +----+ | | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | +-------------------------------------------------------------------------------------------+ */ - [MAC_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, KD_M_LK, \ + [WIN_BASE] = LAYOUT( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, KC_LOCK, \ 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [MAC_FN] = LAYOUT( \ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ + [WIN_FN] = LAYOUT( \ + RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c b/keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c index 75ae1ea06c68..750994cd6e48 100644 --- a/keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c +++ b/keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c @@ -16,17 +16,6 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum layer_names { - MAC_BASE = 0, - MAC_FN = 1, - WIN_BASE = 2, - WIN_FN = 3, -}; - #define KC_TASK LGUI(KC_TAB) // Task viewer #define KC_FLXP LGUI(KC_E) // Windows file explorer #define KC_CRTN LGUI(KC_C) // Cortana | Microsoft Teams diff --git a/keyboards/keychron/c1/keymaps/white_ansi/keymap.c b/keyboards/keychron/c1/keymaps/white_ansi/keymap.c index bcfec6d5cdb7..bcdfe5be1366 100644 --- a/keyboards/keychron/c1/keymaps/white_ansi/keymap.c +++ b/keyboards/keychron/c1/keymaps/white_ansi/keymap.c @@ -30,9 +30,10 @@ along with this program. If not, see . #define KC_M_FN MO(MAC_FN) // Mac Fn const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Windows layout + + /* Mac layout +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT| BL | + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI| BL | +--------------------------------------------------------------------------+ +--------------+ | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| +--------------------------------------------------------------------------+ +--------------+ @@ -42,21 +43,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +--------------------------------------------------------------------------+ +----+ | | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | +-------------------------------------------------------------------------------------------+ */ - [WIN_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_CORT, RGB_TOG, \ + [MAC_BASE] = LAYOUT_tkl_ansi( \ + 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_MSCR, KC_SIRI, RGB_TOG, \ 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [WIN_FN] = LAYOUT( \ - RESET, 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_SNIP, _______, _______, \ + [MAC_FN] = LAYOUT_tkl_ansi( \ + RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -64,9 +65,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ ), - /* Mac layout + /* Windows layout +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI| BL | + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT| BL | +--------------------------------------------------------------------------+ +--------------+ | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| +--------------------------------------------------------------------------+ +--------------+ @@ -76,21 +77,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +--------------------------------------------------------------------------+ +----+ | | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | +-------------------------------------------------------------------------------------------+ */ - [MAC_BASE] = LAYOUT( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MSCR, KC_SIRI, RGB_TOG, \ + [WIN_BASE] = LAYOUT_tkl_ansi( \ + 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_CORT, RGB_TOG, \ 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [MAC_FN] = LAYOUT( \ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ + [WIN_FN] = LAYOUT_tkl_ansi( \ + RESET, 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_SNIP, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/keychron/c1/plain/plain.h b/keyboards/keychron/c1/plain/plain.h index d996ca48d968..607ee771e4c2 100644 --- a/keyboards/keychron/c1/plain/plain.h +++ b/keyboards/keychron/c1/plain/plain.h @@ -4,24 +4,23 @@ // Each layer gets a name for readability enum layer_names { - WIN_BASE = 0, - WIN_FN = 1, - MAC_BASE = 2, - MAC_FN = 3, + MAC_BASE = 0, + MAC_FN = 1, + WIN_BASE = 2, + WIN_FN = 3, }; // readability #define XXX KC_NO -#define LAYOUT( \ +#define LAYOUT_tkl_ansi( \ k00, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ 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, k5g \ -) \ -{ \ +) { \ {k00, XXX, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g}, \ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g}, \ diff --git a/keyboards/keychron/c1/rgb/rgb.c b/keyboards/keychron/c1/rgb/rgb.c index f9491e7462ed..6b5140c4d871 100644 --- a/keyboards/keychron/c1/rgb/rgb.c +++ b/keyboards/keychron/c1/rgb/rgb.c @@ -27,18 +27,21 @@ static void mode_leds_update(void){ writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); } -bool dip_switch_update_user(uint8_t index, bool active){ +bool dip_switch_update_kb(uint8_t index, bool active){ if(index == 0) { if(active) { // Mac mode - layer_move(0); + layer_move(MAC_BASE); } else { // Windows mode - layer_move(2); + layer_move(WIN_BASE); } // Update mode and update leds mode_leds_windows = !active; mode_leds_update(); } + + dip_switch_update_user(index, active); + return true; return true; } diff --git a/keyboards/keychron/c1/rgb/rgb.h b/keyboards/keychron/c1/rgb/rgb.h index e74441834f60..5a4ca0c7950e 100644 --- a/keyboards/keychron/c1/rgb/rgb.h +++ b/keyboards/keychron/c1/rgb/rgb.h @@ -1,7 +1,16 @@ #pragma once #include "quantum.h" -// readability + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +enum layer_names { + MAC_BASE = 0, + MAC_FN = 1, + WIN_BASE = 2, + WIN_FN = 3, +}; + +// Readability #define XXX KC_NO #define LAYOUT_tkl_ansi( \ diff --git a/keyboards/keychron/c1/white/white.h b/keyboards/keychron/c1/white/white.h index 7928b46990d4..607ee771e4c2 100644 --- a/keyboards/keychron/c1/white/white.h +++ b/keyboards/keychron/c1/white/white.h @@ -4,10 +4,10 @@ // Each layer gets a name for readability enum layer_names { - WIN_BASE = 0, - WIN_FN = 1, - MAC_BASE = 2, - MAC_FN = 3, + MAC_BASE = 0, + MAC_FN = 1, + WIN_BASE = 2, + WIN_FN = 3, }; // readability @@ -20,8 +20,7 @@ enum layer_names { 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, k5g \ -) \ -{ \ +) { \ {k00, XXX, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g}, \ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g}, \ From 84d2802f4c281da31692d53a8a30197c58f265cf Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Tue, 8 Feb 2022 00:39:16 +0800 Subject: [PATCH 06/34] [Keychron C1 Series] Reduce the amount of keymaps --- keyboards/keychron/c1/c1.c | 55 ++++++++++++ keyboards/keychron/c1/c1.h | 41 +++++++-- .../keychron/c1/keymaps/default/keymap.c | 25 ++++++ .../{plain_ansi/keymap.c => default/plain.c} | 12 +-- .../{rgb_ansi/keymap.c => default/rgb.c} | 8 +- .../{white_ansi/keymap.c => default/white.c} | 12 +-- .../keymaps/{rgb_via => via_plain}/keymap.c | 2 +- .../keymaps/{plain_via => via_plain}/rules.mk | 0 .../keymaps/{white_via => via_rgb}/keymap.c | 2 +- .../c1/keymaps/{rgb_via => via_rgb}/rules.mk | 0 .../keymaps/{plain_via => via_white}/keymap.c | 2 +- .../{white_via => via_white}/no_idle_thread.c | 0 .../keymaps/{white_via => via_white}/rules.mk | 2 +- keyboards/keychron/c1/plain/plain.c | 72 ---------------- keyboards/keychron/c1/plain/plain.h | 30 ------- keyboards/keychron/c1/rgb/rgb.c | 74 ----------------- keyboards/keychron/c1/rgb/rgb.h | 30 ------- .../c1/rgb/{rgb.json => rgb_via.json} | 0 keyboards/keychron/c1/white/white.c | 83 ------------------- keyboards/keychron/c1/white/white.h | 30 ------- 20 files changed, 134 insertions(+), 346 deletions(-) create mode 100644 keyboards/keychron/c1/keymaps/default/keymap.c rename keyboards/keychron/c1/keymaps/{plain_ansi/keymap.c => default/plain.c} (97%) rename keyboards/keychron/c1/keymaps/{rgb_ansi/keymap.c => default/rgb.c} (98%) rename keyboards/keychron/c1/keymaps/{white_ansi/keymap.c => default/white.c} (97%) rename keyboards/keychron/c1/keymaps/{rgb_via => via_plain}/keymap.c (75%) rename keyboards/keychron/c1/keymaps/{plain_via => via_plain}/rules.mk (100%) rename keyboards/keychron/c1/keymaps/{white_via => via_rgb}/keymap.c (74%) rename keyboards/keychron/c1/keymaps/{rgb_via => via_rgb}/rules.mk (100%) rename keyboards/keychron/c1/keymaps/{plain_via => via_white}/keymap.c (74%) rename keyboards/keychron/c1/keymaps/{white_via => via_white}/no_idle_thread.c (100%) rename keyboards/keychron/c1/keymaps/{white_via => via_white}/rules.mk (94%) delete mode 100644 keyboards/keychron/c1/plain/plain.h delete mode 100644 keyboards/keychron/c1/rgb/rgb.h rename keyboards/keychron/c1/rgb/{rgb.json => rgb_via.json} (100%) delete mode 100644 keyboards/keychron/c1/white/white.h diff --git a/keyboards/keychron/c1/c1.c b/keyboards/keychron/c1/c1.c index 9ef989b9bdc8..e7b30779efae 100644 --- a/keyboards/keychron/c1/c1.c +++ b/keyboards/keychron/c1/c1.c @@ -17,3 +17,58 @@ */ #include "c1.h" + +// Manage Windows and Mac LEDs +// - Show status of mode switch +// - Turn LEDs off durring USB suspend +static bool mode_leds_show = true; +static bool mode_leds_windows; + +static void mode_leds_update(void){ + writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); + writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); +} + +bool dip_switch_update_kb(uint8_t index, bool active){ + if(index == 0) { + if(active) { // Mac mode + layer_move(0); + } else { // Windows mode + layer_move(2); + } + + // Update mode and update leds + mode_leds_windows = !active; + mode_leds_update(); + } + + dip_switch_update_user(index, active); + return true; +} + +void keyboard_pre_init_kb(void) { + // Setup Win & Mac LED Pins as output + setPinOutput(LED_WIN_PIN); + setPinOutput(LED_MAC_PIN); + + // WORKAROUND: Mac & Windows LED flicker. + // Normally the GPIOs in DIP_SWITCH_PINS will be initialized by dip_switch_init(). + // But during startup of the keyboard the Mac/Windows dip switch seems to jitter, causing the Mac and Windows LEDs to flicker. + // Maybe the internal pull-up of this chip is really weak, and needs some time to pullup the input voltage to the high level? Seems unlikely but cannot think of a better explanation. + // By doing the configuration of the GPIOs here the pullup is enabled earlier and the flicker is gone. + const pin_t dip_switch_pad[] = DIP_SWITCH_PINS; + const size_t size = sizeof(dip_switch_pad) / sizeof(dip_switch_pad[0]); + for (size_t i=0; i + * Copyright 2020 Dimitris Mantzouranis + * Copyright 2022 Harrison Chan (Xelus) + * + * 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 . + */ + +#if defined(KEYBOARD_keychron_c1_rgb) + #include "rgb.c" +#elif defined(KEYBOARD_keychron_c1_white) + #include "white.c" +#elif defined(KEYBOARD_keychron_c1_plain) + #include "plain.c" +#endif diff --git a/keyboards/keychron/c1/keymaps/plain_ansi/keymap.c b/keyboards/keychron/c1/keymaps/default/plain.c similarity index 97% rename from keyboards/keychron/c1/keymaps/plain_ansi/keymap.c rename to keyboards/keychron/c1/keymaps/default/plain.c index 3b709a70a559..2f5f1784689c 100644 --- a/keyboards/keychron/c1/keymaps/plain_ansi/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/plain.c @@ -21,14 +21,14 @@ along with this program. If not, see . #define KC_CORT LGUI(KC_C) // Cortana #define KC_LOCK LGUI(KC_L) // Lock #define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(WIN_FN) // Windows Fn +#define KC_W_FN MO(3) // Windows Fn #define KC_MSSN LGUI(KC_F3) // Mission Control #define KC_FIND LALT(LGUI(KC_SPC)) // Finder #define KC_SIRI LGUI(KC_SPC) // Siri #define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot #define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(MAC_FN) // Mac Fn +#define KC_M_FN MO(1) // Mac Fn #define KD_M_LK LCMD(LCTL(KC_Q)) // Mac Lock const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +-------------------------------------------------------------------------------------------+ */ - [MAC_BASE] = LAYOUT( \ + [0] = LAYOUT_tkl_ansi_260( \ 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_MSCR, KC_SIRI, KD_M_LK, \ 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, \ @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [MAC_FN] = LAYOUT( \ + [1] = LAYOUT_tkl_ansi_260( \ RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +-------------------------------------------------------------------------------------------+ */ - [WIN_BASE] = LAYOUT( \ + [2] = LAYOUT_tkl_ansi_260( \ 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_CORT, KC_LOCK, \ 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, \ @@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [WIN_FN] = LAYOUT( \ + [3] = LAYOUT_tkl_ansi_260( \ RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c b/keyboards/keychron/c1/keymaps/default/rgb.c similarity index 98% rename from keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c rename to keyboards/keychron/c1/keymaps/default/rgb.c index 750994cd6e48..bc9b4ce011cc 100644 --- a/keyboards/keychron/c1/keymaps/rgb_ansi/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/rgb.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +-------------------------------------------------------------------------------------------+ */ - [MAC_BASE] = LAYOUT_tkl_ansi( + [0] = LAYOUT_tkl_ansi_240B( /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ 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_MSCR, 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, @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [MAC_FN] = LAYOUT_tkl_ansi( \ + [1] = LAYOUT_tkl_ansi_240B( \ /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +-------------------------------------------------------------------------------------------+ */ - [WIN_BASE] = LAYOUT_tkl_ansi( + [2] = LAYOUT_tkl_ansi_240B( /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ 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_CRTN, 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, @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [WIN_FN] = LAYOUT_tkl_ansi( + [3] = LAYOUT_tkl_ansi_240B( /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ RESET, 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_SNIP, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, diff --git a/keyboards/keychron/c1/keymaps/white_ansi/keymap.c b/keyboards/keychron/c1/keymaps/default/white.c similarity index 97% rename from keyboards/keychron/c1/keymaps/white_ansi/keymap.c rename to keyboards/keychron/c1/keymaps/default/white.c index bcdfe5be1366..db2580caa118 100644 --- a/keyboards/keychron/c1/keymaps/white_ansi/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/white.c @@ -20,14 +20,14 @@ along with this program. If not, see . #define KC_FLXP LGUI(KC_E) // Windows file explorer #define KC_CORT LGUI(KC_C) // Cortana #define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(WIN_FN) // Windows Fn +#define KC_W_FN MO(3) // Windows Fn #define KC_MSSN LGUI(KC_F3) // Mission Control #define KC_FIND LALT(LGUI(KC_SPC)) // Finder #define KC_SIRI LGUI(KC_SPC) // Siri #define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot #define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(MAC_FN) // Mac Fn +#define KC_M_FN MO(1) // Mac Fn const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +-------------------------------------------------------------------------------------------+ */ - [MAC_BASE] = LAYOUT_tkl_ansi( \ + [0] = LAYOUT_tkl_ansi_260( \ 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_MSCR, KC_SIRI, RGB_TOG, \ 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, \ @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [MAC_FN] = LAYOUT_tkl_ansi( \ + [1] = LAYOUT_tkl_ansi_260( \ RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +-------------------------------------------------------------------------------------------+ */ - [WIN_BASE] = LAYOUT_tkl_ansi( \ + [2] = LAYOUT_tkl_ansi_260( \ 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_CORT, RGB_TOG, \ 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, \ @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [WIN_FN] = LAYOUT_tkl_ansi( \ + [3] = LAYOUT_tkl_ansi_260( \ RESET, 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_SNIP, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/keychron/c1/keymaps/rgb_via/keymap.c b/keyboards/keychron/c1/keymaps/via_plain/keymap.c similarity index 75% rename from keyboards/keychron/c1/keymaps/rgb_via/keymap.c rename to keyboards/keychron/c1/keymaps/via_plain/keymap.c index 5e09c32875e0..8fe16a6a1030 100644 --- a/keyboards/keychron/c1/keymaps/rgb_via/keymap.c +++ b/keyboards/keychron/c1/keymaps/via_plain/keymap.c @@ -1,3 +1,3 @@ // Include default keymap // This way the VIA keymap is always up to date with the default keymap -#include "../rgb_ansi/keymap.c" +#include "../default/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/plain_via/rules.mk b/keyboards/keychron/c1/keymaps/via_plain/rules.mk similarity index 100% rename from keyboards/keychron/c1/keymaps/plain_via/rules.mk rename to keyboards/keychron/c1/keymaps/via_plain/rules.mk diff --git a/keyboards/keychron/c1/keymaps/white_via/keymap.c b/keyboards/keychron/c1/keymaps/via_rgb/keymap.c similarity index 74% rename from keyboards/keychron/c1/keymaps/white_via/keymap.c rename to keyboards/keychron/c1/keymaps/via_rgb/keymap.c index a730c1821940..8fe16a6a1030 100644 --- a/keyboards/keychron/c1/keymaps/white_via/keymap.c +++ b/keyboards/keychron/c1/keymaps/via_rgb/keymap.c @@ -1,3 +1,3 @@ // Include default keymap // This way the VIA keymap is always up to date with the default keymap -#include "../white_ansi/keymap.c" +#include "../default/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/rgb_via/rules.mk b/keyboards/keychron/c1/keymaps/via_rgb/rules.mk similarity index 100% rename from keyboards/keychron/c1/keymaps/rgb_via/rules.mk rename to keyboards/keychron/c1/keymaps/via_rgb/rules.mk diff --git a/keyboards/keychron/c1/keymaps/plain_via/keymap.c b/keyboards/keychron/c1/keymaps/via_white/keymap.c similarity index 74% rename from keyboards/keychron/c1/keymaps/plain_via/keymap.c rename to keyboards/keychron/c1/keymaps/via_white/keymap.c index 26d8b83fe9fe..8fe16a6a1030 100644 --- a/keyboards/keychron/c1/keymaps/plain_via/keymap.c +++ b/keyboards/keychron/c1/keymaps/via_white/keymap.c @@ -1,3 +1,3 @@ // Include default keymap // This way the VIA keymap is always up to date with the default keymap -#include "../plain_ansi/keymap.c" +#include "../default/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/white_via/no_idle_thread.c b/keyboards/keychron/c1/keymaps/via_white/no_idle_thread.c similarity index 100% rename from keyboards/keychron/c1/keymaps/white_via/no_idle_thread.c rename to keyboards/keychron/c1/keymaps/via_white/no_idle_thread.c diff --git a/keyboards/keychron/c1/keymaps/white_via/rules.mk b/keyboards/keychron/c1/keymaps/via_white/rules.mk similarity index 94% rename from keyboards/keychron/c1/keymaps/white_via/rules.mk rename to keyboards/keychron/c1/keymaps/via_white/rules.mk index 086f21f4ae12..86b7c35448f8 100644 --- a/keyboards/keychron/c1/keymaps/white_via/rules.mk +++ b/keyboards/keychron/c1/keymaps/via_white/rules.mk @@ -18,4 +18,4 @@ OPT_DEFS += -DRAW_OUT_CAPACITY=1 OPT_DEFS += -DCH_CFG_NO_IDLE_THREAD=TRUE # Include the patched functions -SRC += keymaps/via/no_idle_thread.c +SRC += no_idle_thread.c diff --git a/keyboards/keychron/c1/plain/plain.c b/keyboards/keychron/c1/plain/plain.c index 9e0d1f10eda3..6fda66929626 100644 --- a/keyboards/keychron/c1/plain/plain.c +++ b/keyboards/keychron/c1/plain/plain.c @@ -1,75 +1,3 @@ -/* Copyright 2021 IsaacDynamo - * - * 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 "plain.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_kb(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(MAC_BASE); - } else { // Windows mode - layer_move(WIN_BASE); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - - dip_switch_update_user(index, active); - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - keyboard_pre_init_user(); -} - -void suspend_power_down_kb(void) { - // Turn leds off - mode_leds_show = false; - mode_leds_update(); - - suspend_power_down_user(); -} - -/// TODO: Clean-up workaround -/// Currently the suspend_wakeup_init_kb() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 -/// A workaround is to use housekeeping_task_kb() instead. -void housekeeping_task_kb(void) { - // Turn on - mode_leds_show = true; - mode_leds_update(); - - housekeeping_task_user(); -} - #if CH_CFG_NO_IDLE_THREAD == TRUE # define CYCLES_PER_LOOP 9 diff --git a/keyboards/keychron/c1/plain/plain.h b/keyboards/keychron/c1/plain/plain.h deleted file mode 100644 index 607ee771e4c2..000000000000 --- a/keyboards/keychron/c1/plain/plain.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -#include "quantum.h" - -// Each layer gets a name for readability -enum layer_names { - MAC_BASE = 0, - MAC_FN = 1, - WIN_BASE = 2, - WIN_FN = 3, -}; - -// readability -#define XXX KC_NO - -#define LAYOUT_tkl_ansi( \ - k00, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ - 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, k5g \ -) { \ - {k00, XXX, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g}, \ - {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g}, \ - {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX}, \ - {k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, k4f, XXX}, \ - {k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g} \ -} diff --git a/keyboards/keychron/c1/rgb/rgb.c b/keyboards/keychron/c1/rgb/rgb.c index 6b5140c4d871..2997b24c7cfd 100644 --- a/keyboards/keychron/c1/rgb/rgb.c +++ b/keyboards/keychron/c1/rgb/rgb.c @@ -1,77 +1,3 @@ -/* -Copyright 2021 Dimitris Mantzouranis - -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 "rgb.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_kb(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(MAC_BASE); - } else { // Windows mode - layer_move(WIN_BASE); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - - dip_switch_update_user(index, active); - return true; - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - keyboard_pre_init_user(); -} - -void suspend_power_down_kb(void) { - // Turn leds off - mode_leds_show = false; - mode_leds_update(); - - suspend_power_down_user(); -} - -/// TODO: Clean-up workaround -/// Currently the suspend_wakeup_init_user() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 -/// A workaround is to use housekeeping_task_user() instead. -void housekeeping_task_kb(void) { - // Turn on - mode_leds_show = true; - mode_leds_update(); - - housekeeping_task_user(); -} - #ifdef RGB_MATRIX_ENABLE #include "rgb_matrix.h" diff --git a/keyboards/keychron/c1/rgb/rgb.h b/keyboards/keychron/c1/rgb/rgb.h deleted file mode 100644 index 5a4ca0c7950e..000000000000 --- a/keyboards/keychron/c1/rgb/rgb.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -#include "quantum.h" - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -enum layer_names { - MAC_BASE = 0, - MAC_FN = 1, - WIN_BASE = 2, - WIN_FN = 3, -}; - -// Readability -#define XXX KC_NO - -#define LAYOUT_tkl_ansi( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ - 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, k5g \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, XXX, k0e, k0f, k0g }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX }, \ - { k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, k4f, XXX }, \ - { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g } \ -} diff --git a/keyboards/keychron/c1/rgb/rgb.json b/keyboards/keychron/c1/rgb/rgb_via.json similarity index 100% rename from keyboards/keychron/c1/rgb/rgb.json rename to keyboards/keychron/c1/rgb/rgb_via.json diff --git a/keyboards/keychron/c1/white/white.c b/keyboards/keychron/c1/white/white.c index 4ce51057b133..ea1bc12ca116 100644 --- a/keyboards/keychron/c1/white/white.c +++ b/keyboards/keychron/c1/white/white.c @@ -1,86 +1,3 @@ -/* Copyright 2021 IsaacDynamo - * - * 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 "white.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_kb(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(MAC_BASE); - } else { // Windows mode - layer_move(WIN_BASE); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - - dip_switch_update_user(index, active); - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - // WORKAROUND: Mac & Windows LED flicker. - // Normally the GPIOs in DIP_SWITCH_PINS will be initialized by dip_switch_init(). - // But during startup of the keyboard the Mac/Windows dip switch seems to jitter, causing the Mac and Windows LEDs to flicker. - // Maybe the internal pull-up of this chip is really weak, and needs some time to pullup the input voltage to the high level? Seems unlikely but cannot think of a better explanation. - // By doing the configuration of the GPIOs here the pullup is enabled earlier and the flicker is gone. - const pin_t dip_switch_pad[] = DIP_SWITCH_PINS; - const size_t size = sizeof(dip_switch_pad) / sizeof(dip_switch_pad[0]); - for (size_t i=0; i Date: Tue, 8 Feb 2022 00:50:12 +0800 Subject: [PATCH 07/34] [Keychron C1 Series] Update readme.md - Update make command. --- keyboards/keychron/c1/plain/readme.md | 2 +- keyboards/keychron/c1/rgb/readme.md | 2 +- keyboards/keychron/c1/white/readme.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/keychron/c1/plain/readme.md b/keyboards/keychron/c1/plain/readme.md index 5a98b3565084..a8aa32c1495e 100644 --- a/keyboards/keychron/c1/plain/readme.md +++ b/keyboards/keychron/c1/plain/readme.md @@ -63,7 +63,7 @@ Lock Mac | - Make example for this keyboard (after setting up your build environment): - make keychron/c1/plain:plain_ansi + make keychron/c1/plain:default [Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. diff --git a/keyboards/keychron/c1/rgb/readme.md b/keyboards/keychron/c1/rgb/readme.md index 83066a11184a..21984d21c679 100644 --- a/keyboards/keychron/c1/rgb/readme.md +++ b/keyboards/keychron/c1/rgb/readme.md @@ -8,7 +8,7 @@ A customizable TKL keyboard. Make example for this keyboard (after setting up your build environment): - make keychron/c1/rgb:rgb_ansi + make keychron/c1/rgb:default ## How to Flash Flashing example for this keyboard: diff --git a/keyboards/keychron/c1/white/readme.md b/keyboards/keychron/c1/white/readme.md index 0860718f81dc..99c451a64d5a 100644 --- a/keyboards/keychron/c1/white/readme.md +++ b/keyboards/keychron/c1/white/readme.md @@ -77,7 +77,7 @@ Toggle backlight | - Make example for this keyboard (after setting up your build environment): - make keychron/c1/white:white_ansi + make keychron/c1/white:default [Video](https://www.youtube.com/watch?v=aUiKHdI5Vk8) explaining installation for a similar keyboard. From b0564ac46ff11a8eff32da368c0d4bddb66f19cc Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Tue, 8 Feb 2022 07:48:19 +0800 Subject: [PATCH 08/34] [Keychron C1 Series] Update readme.md --- keyboards/keychron/c1/white/readme.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/keychron/c1/white/readme.md b/keyboards/keychron/c1/white/readme.md index 99c451a64d5a..bf914e79c817 100644 --- a/keyboards/keychron/c1/white/readme.md +++ b/keyboards/keychron/c1/white/readme.md @@ -1,7 +1,5 @@ # Keychron C1 White -![Keychron C1](https://i.imgur.com/oB9h56v.png) - A customizable TKL keyboard. * Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo) From 46709e87bc44cac4b3c56eadad020eff950253d1 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Tue, 8 Feb 2022 11:29:29 +0800 Subject: [PATCH 09/34] Update config.h --- keyboards/keychron/c1/white/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keychron/c1/white/config.h b/keyboards/keychron/c1/white/config.h index 483d06cd4bdf..d9503c9a3168 100644 --- a/keyboards/keychron/c1/white/config.h +++ b/keyboards/keychron/c1/white/config.h @@ -1,5 +1,5 @@ /* USB Device descriptor parameter */ -#define DESCRIPTION Keychron \x43\x31 Plain +#define DESCRIPTION Keychron \x43\x31 White #define USB_MAX_POWER_CONSUMPTION 100 From 4fa75dff179db0ecef97026f2019d27d98da2fc6 Mon Sep 17 00:00:00 2001 From: Eduardo Fernandes Date: Tue, 8 Feb 2022 09:26:15 +0100 Subject: [PATCH 10/34] Minor cleanups for C1 plain --- keyboards/keychron/c1/keymaps/default/plain.c | 4 +-- keyboards/keychron/c1/plain/config.h | 1 + keyboards/keychron/c1/plain/plain.c | 4 +-- keyboards/keychron/c1/plain/rand.c | 31 ------------------- keyboards/keychron/c1/plain/rules.mk | 3 -- 5 files changed, 5 insertions(+), 38 deletions(-) delete mode 100644 keyboards/keychron/c1/plain/rand.c diff --git a/keyboards/keychron/c1/keymaps/default/plain.c b/keyboards/keychron/c1/keymaps/default/plain.c index 2f5f1784689c..e709b8305a19 100644 --- a/keyboards/keychron/c1/keymaps/default/plain.c +++ b/keyboards/keychron/c1/keymaps/default/plain.c @@ -21,14 +21,14 @@ along with this program. If not, see . #define KC_CORT LGUI(KC_C) // Cortana #define KC_LOCK LGUI(KC_L) // Lock #define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(3) // Windows Fn +#define KC_W_FN MO(3) // Windows Fn #define KC_MSSN LGUI(KC_F3) // Mission Control #define KC_FIND LALT(LGUI(KC_SPC)) // Finder #define KC_SIRI LGUI(KC_SPC) // Siri #define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot #define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(1) // Mac Fn +#define KC_M_FN MO(1) // Mac Fn #define KD_M_LK LCMD(LCTL(KC_Q)) // Mac Lock const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/keychron/c1/plain/config.h b/keyboards/keychron/c1/plain/config.h index d5f90ac33b28..f8034e6d344b 100644 --- a/keyboards/keychron/c1/plain/config.h +++ b/keyboards/keychron/c1/plain/config.h @@ -28,5 +28,6 @@ #define LED_MAC_PIN B4 #define LED_WIN_PIN B5 +/* VIA configs */ #define DYNAMIC_KEYMAP_LAYER_COUNT 4 #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 1000 diff --git a/keyboards/keychron/c1/plain/plain.c b/keyboards/keychron/c1/plain/plain.c index 6fda66929626..f84cb97bdfce 100644 --- a/keyboards/keychron/c1/plain/plain.c +++ b/keyboards/keychron/c1/plain/plain.c @@ -1,7 +1,7 @@ #if CH_CFG_NO_IDLE_THREAD == TRUE -# define CYCLES_PER_LOOP 9 -# define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) +#define CYCLES_PER_LOOP 9 +#define LOOP_TIMES (48000000 / (CH_CFG_ST_FREQUENCY) / (CYCLES_PER_LOOP)) void chThdSleep(sysinterval_t time) { uint32_t loops = time * LOOP_TIMES; diff --git a/keyboards/keychron/c1/plain/rand.c b/keyboards/keychron/c1/plain/rand.c deleted file mode 100644 index a1096bbe2b58..000000000000 --- a/keyboards/keychron/c1/plain/rand.c +++ /dev/null @@ -1,31 +0,0 @@ -// Small rand() implementation -// -// The libc rand implementation takes to much flash space, so an smaller rand() function is used. -#include "quantum.h" - -int rand(void) -{ - // static unsigned int z4; - unsigned int z1, z2, z3, z4; - int r; - unsigned int b; - - z1 = timer_read32(); - z2 = 12345; - z3 = 12345; - z4 = z1 << 8; - - b = ((z1 << 6) ^ z1) >> 13; - z1 = ((z1 & 4294967294U) << 18) ^ b; - b = ((z2 << 2) ^ z2) >> 27; - z2 = ((z2 & 4294967288U) << 2) ^ b; - b = ((z3 << 13) ^ z3) >> 21; - z3 = ((z3 & 4294967280U) << 7) ^ b; - b = ((z4 << 3) ^ z4) >> 12; - z4 = ((z4 & 4294967168U) << 13) ^ b; - - r = z1 ^ z2 ^ z3 ^ z4; - // z4 = r; - - return r; -} diff --git a/keyboards/keychron/c1/plain/rules.mk b/keyboards/keychron/c1/plain/rules.mk index 6bb497f78138..53b266d4761f 100644 --- a/keyboards/keychron/c1/plain/rules.mk +++ b/keyboards/keychron/c1/plain/rules.mk @@ -1,6 +1,3 @@ -# project specific files -SRC = rand.c - # MCU name MCU = SN32F268F From 8a0150f015e0fa0274821b9bc497636af2167aa0 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Wed, 9 Feb 2022 13:51:10 +0800 Subject: [PATCH 11/34] [Keychron C1 Series] Reorganizing keymaps C1 Plain still broken BTW XD PR ain't ready until C1 Plain gets fixed. --- .../via_plain => plain/keymaps/via}/keymap.c | 2 +- .../via_plain => plain/keymaps/via}/rules.mk | 0 keyboards/keychron/c1/readme.md | 59 ------------------- .../via_rgb => rgb/keymaps/via}/keymap.c | 2 +- .../via_rgb => rgb/keymaps/via}/rules.mk | 0 .../via_white => white/keymaps/via}/keymap.c | 2 +- .../keymaps/via}/no_idle_thread.c | 0 .../via_white => white/keymaps/via}/rules.mk | 0 8 files changed, 3 insertions(+), 62 deletions(-) rename keyboards/keychron/c1/{keymaps/via_plain => plain/keymaps/via}/keymap.c (68%) rename keyboards/keychron/c1/{keymaps/via_plain => plain/keymaps/via}/rules.mk (100%) rename keyboards/keychron/c1/{keymaps/via_rgb => rgb/keymaps/via}/keymap.c (68%) rename keyboards/keychron/c1/{keymaps/via_rgb => rgb/keymaps/via}/rules.mk (100%) rename keyboards/keychron/c1/{keymaps/via_white => white/keymaps/via}/keymap.c (68%) rename keyboards/keychron/c1/{keymaps/via_white => white/keymaps/via}/no_idle_thread.c (100%) rename keyboards/keychron/c1/{keymaps/via_white => white/keymaps/via}/rules.mk (100%) diff --git a/keyboards/keychron/c1/keymaps/via_plain/keymap.c b/keyboards/keychron/c1/plain/keymaps/via/keymap.c similarity index 68% rename from keyboards/keychron/c1/keymaps/via_plain/keymap.c rename to keyboards/keychron/c1/plain/keymaps/via/keymap.c index 8fe16a6a1030..0c5fa769a2f8 100644 --- a/keyboards/keychron/c1/keymaps/via_plain/keymap.c +++ b/keyboards/keychron/c1/plain/keymaps/via/keymap.c @@ -1,3 +1,3 @@ // Include default keymap // This way the VIA keymap is always up to date with the default keymap -#include "../default/keymap.c" +#include "../../../keymaps/default/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/via_plain/rules.mk b/keyboards/keychron/c1/plain/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/c1/keymaps/via_plain/rules.mk rename to keyboards/keychron/c1/plain/keymaps/via/rules.mk diff --git a/keyboards/keychron/c1/readme.md b/keyboards/keychron/c1/readme.md index afc1b8ca206a..f6042308f8c7 100644 --- a/keyboards/keychron/c1/readme.md +++ b/keyboards/keychron/c1/readme.md @@ -8,65 +8,6 @@ A customizable TKL keyboard. * Hardware Supported: All variants of Keychron C1 * Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) -* * * -# Keymapping -### Windows Mode -
- -Without Fn | With Fn ----------- | ------- -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Task View -F4 | File Explorer -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Print Screen | Snip & Sketch -Cortana / Microsoft Teams | None -Change RGB | Toggle RGB -⊞ | Windows Key Lock Toggle -Home | NKRO Toggle -↑ | Increase RGB Hue -← | Decrease RGB Saturation -↓ | Decrease RGB Hue -→ | Increase RGB Saturation - -
- -### Mac Mode -
- -Without Fn | With Fn ----------- | ------- -F1 | Decrease PC Brightness -F2 | Increase PC Brightness -F3 | Mission Control -F4 | Finder -F5 | Decrease KB Brightness -F6 | Increase KB Brightness -F7 | Previous Track -F8 | Play/Pause Track -F9 | Next Track -F10 | Mute -F11 | Decrease Volume -F12 | Increase Volume -Take a screenshot (whole screen) | Take a screenshot (specific area) -Siri (hold down) | None -Change RGB | Toggle RGB -Home | NKRO Toggle -↑ | Increase RGB Hue -← | Decrease RGB Saturation -↓ | Decrease RGB Hue -→ | Increase RGB Saturation - -
- * * * For more information and more detailed flashing instructions, please visit https://github.com/CanUnesi/QMK-on-K6#readme diff --git a/keyboards/keychron/c1/keymaps/via_rgb/keymap.c b/keyboards/keychron/c1/rgb/keymaps/via/keymap.c similarity index 68% rename from keyboards/keychron/c1/keymaps/via_rgb/keymap.c rename to keyboards/keychron/c1/rgb/keymaps/via/keymap.c index 8fe16a6a1030..0c5fa769a2f8 100644 --- a/keyboards/keychron/c1/keymaps/via_rgb/keymap.c +++ b/keyboards/keychron/c1/rgb/keymaps/via/keymap.c @@ -1,3 +1,3 @@ // Include default keymap // This way the VIA keymap is always up to date with the default keymap -#include "../default/keymap.c" +#include "../../../keymaps/default/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/via_rgb/rules.mk b/keyboards/keychron/c1/rgb/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/c1/keymaps/via_rgb/rules.mk rename to keyboards/keychron/c1/rgb/keymaps/via/rules.mk diff --git a/keyboards/keychron/c1/keymaps/via_white/keymap.c b/keyboards/keychron/c1/white/keymaps/via/keymap.c similarity index 68% rename from keyboards/keychron/c1/keymaps/via_white/keymap.c rename to keyboards/keychron/c1/white/keymaps/via/keymap.c index 8fe16a6a1030..0c5fa769a2f8 100644 --- a/keyboards/keychron/c1/keymaps/via_white/keymap.c +++ b/keyboards/keychron/c1/white/keymaps/via/keymap.c @@ -1,3 +1,3 @@ // Include default keymap // This way the VIA keymap is always up to date with the default keymap -#include "../default/keymap.c" +#include "../../../keymaps/default/keymap.c" diff --git a/keyboards/keychron/c1/keymaps/via_white/no_idle_thread.c b/keyboards/keychron/c1/white/keymaps/via/no_idle_thread.c similarity index 100% rename from keyboards/keychron/c1/keymaps/via_white/no_idle_thread.c rename to keyboards/keychron/c1/white/keymaps/via/no_idle_thread.c diff --git a/keyboards/keychron/c1/keymaps/via_white/rules.mk b/keyboards/keychron/c1/white/keymaps/via/rules.mk similarity index 100% rename from keyboards/keychron/c1/keymaps/via_white/rules.mk rename to keyboards/keychron/c1/white/keymaps/via/rules.mk From a9e431f70851e2441007d382fd8c80351d1e7c02 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Wed, 9 Feb 2022 13:54:22 +0800 Subject: [PATCH 12/34] Update readme.md --- keyboards/keychron/c1/white/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keychron/c1/white/readme.md b/keyboards/keychron/c1/white/readme.md index bf914e79c817..a12572aa15da 100644 --- a/keyboards/keychron/c1/white/readme.md +++ b/keyboards/keychron/c1/white/readme.md @@ -3,7 +3,7 @@ A customizable TKL keyboard. * Keyboard Maintainer(s): [SonixQMK](https://github.com/SonixQMK), [IsaacDynamo](https://github.com/IsaacDynamo) -* Hardware Supported: Keychron C1 White +* Hardware Supported: Keychron C1 White (SN32F268) * Hardware Availability: [Keychron](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard) # Install From b232cc17f563bca085e4651649e6c20808db28bf Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 08:45:45 +0800 Subject: [PATCH 13/34] Update config.h --- keyboards/keychron/c1/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/keychron/c1/config.h b/keyboards/keychron/c1/config.h index f80f1c59bae1..009acba992a8 100644 --- a/keyboards/keychron/c1/config.h +++ b/keyboards/keychron/c1/config.h @@ -28,8 +28,5 @@ #define MANUFACTURER Keychron #define PRODUCT Keychron \x43\x31 -/* Disable RGB while USB is sleeping */ -#define RGB_DISABLE_WHEN_USB_SUSPENDED true - /* Polling Rate */ #define USB_POLLING_INTERVAL_MS 1 From ad29736407ce39bca12de5358465643554935f4d Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 08:46:28 +0800 Subject: [PATCH 14/34] Update config.h --- keyboards/keychron/c1/rgb/config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/keychron/c1/rgb/config.h b/keyboards/keychron/c1/rgb/config.h index 71bd775f23d7..871eac3527f8 100644 --- a/keyboards/keychron/c1/rgb/config.h +++ b/keyboards/keychron/c1/rgb/config.h @@ -26,6 +26,9 @@ // Connects each switch in the dip switch to the GPIO pin of the MCU #define DIP_SWITCH_PINS { D4 } +/* Disable RGB while USB is sleeping */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 0 From cb8ff376ad63c2cab2c84f9c7a28a590621e48f8 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 08:49:59 +0800 Subject: [PATCH 15/34] Update c1.c --- keyboards/keychron/c1/c1.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/keyboards/keychron/c1/c1.c b/keyboards/keychron/c1/c1.c index e7b30779efae..3334d44ea87a 100644 --- a/keyboards/keychron/c1/c1.c +++ b/keyboards/keychron/c1/c1.c @@ -64,11 +64,3 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } - -void suspend_power_down_kb(void) { - // Turn leds off - mode_leds_show = false; - mode_leds_update(); - - suspend_power_down_user(); -} From bbc45466b4bcbf03863a15a2e341c3aee332419c Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 11:56:01 +0800 Subject: [PATCH 16/34] [Keychron C1 Series] More agnostic keymap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Now use one default keymap for every variant. - Defines are now used to tailor for any differentiating keys across the variants. Thanks to @tbowmo and @dexter93 for this nice suggestion. Co-Authored-By: Thomas Mørch <5305197+tbowmo@users.noreply.github.com> Co-Authored-By: dexter93 --- .../keychron/c1/keymaps/default/keymap.c | 161 +++++++++++++++--- keyboards/keychron/c1/keymaps/default/plain.c | 103 ----------- keyboards/keychron/c1/keymaps/default/rgb.c | 103 ----------- keyboards/keychron/c1/keymaps/default/white.c | 101 ----------- 4 files changed, 137 insertions(+), 331 deletions(-) delete mode 100644 keyboards/keychron/c1/keymaps/default/plain.c delete mode 100644 keyboards/keychron/c1/keymaps/default/rgb.c delete mode 100644 keyboards/keychron/c1/keymaps/default/white.c diff --git a/keyboards/keychron/c1/keymaps/default/keymap.c b/keyboards/keychron/c1/keymaps/default/keymap.c index eedf221e0fc1..cdf3e7dacd65 100644 --- a/keyboards/keychron/c1/keymaps/default/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/keymap.c @@ -1,25 +1,138 @@ -/* Copyright 2020 Adam Honse - * Copyright 2020 Dimitris Mantzouranis - * Copyright 2022 Harrison Chan (Xelus) - * - * 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 . - */ - -#if defined(KEYBOARD_keychron_c1_rgb) - #include "rgb.c" -#elif defined(KEYBOARD_keychron_c1_white) - #include "white.c" -#elif defined(KEYBOARD_keychron_c1_plain) - #include "plain.c" +/* +Copyright 2020 Dimitris Mantzouranis + +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 + +/* Keychron Fn */ + +#define KC_TASK LGUI(KC_TAB) // Task viewer +#define KC_FLXP LGUI(KC_E) // Windows file explorer +#define KC_CORT LGUI(KC_C) // Cortana +#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool +#define KC_W_FN MO(3) // Windows Fn + +#define KC_MSSN LGUI(KC_F3) // Mission Control +#define KC_FIND LALT(LGUI(KC_SPC)) // Finder +#define KC_SIRI LGUI(KC_SPC) // Siri +#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot +#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool +#define KC_M_FN MO(1) // Mac Fn + +/* Variant-tailored Defines */ + +#if defined(LED_MATRIX_ENABLE) + #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_260 + #define LGT_VAD BL_DEC // Decrease KB Brightness + #define LGT_VAI BL_INC // Increase KB Brightness + #define EXTRA_A KC_TRANS // None + #define EXTRA_B BL_TOGG // Toggle BL + #define EXTRA_C KC_TRANS // None + #define EXTRA_D KC_TRANS // None + #define EXTRA_E KC_TRANS // None + #define EXTRA_F KC_TRANS // None +#elif defined(RGB_MATRIX_ENABLE) + #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_240B + #define LGT_VAD RGB_VAD // Decrease KB Brightness + #define LGT_VAI RGB_VAI // Increase KB Brightness + #define EXTRA_A RGB_TOG // Toggle RGB + #define EXTRA_B RGB_MOD // Cycle RGB Modes + #define EXTRA_C RGB_HUI // Increase RGB Hue + #define EXTRA_D RGB_HUD // Decrease RGB Hue + #define EXTRA_E RGB_SAI // Increase RGB Saturation + #define EXTRA_F RGB_SAD // Decrease RGB Saturation +#else + #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_260 + #define LGT_VAD KC_TRANS // Decrease KB Brightness + #define LGT_VAI KC_TRANS // Increase KB Brightness + #define EXTRA_A LCMD(LCTL(KC_Q)) // Mac Lock + #define EXTRA_B KC_LGUI(KC_L) // Windows Lock + #define EXTRA_C KC_TRANS // None + #define EXTRA_D KC_TRANS // None + #define EXTRA_E KC_TRANS // None + #define EXTRA_F KC_TRANS // None #endif + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Mac layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI| BL | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [0] = LAYOUT_tkl_ansi( \ + 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_MSCR, KC_SIRI, EXTRA_A, \ + 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [1] = LAYOUT_tkl_ansi( \ + RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, LGT_VAD, LGT_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, EXTRA_B, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EXTRA_C, \ + _______, _______, GUI_TOG, _______, GUI_TOG, _______, _______, _______, EXTRA_F, EXTRA_D, EXTRA_E \ + ), + + /* Windows layout + +-------------------------------------------------------------------------------------------+ + | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT| BL | + +--------------------------------------------------------------------------+ +--------------+ + | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| + +--------------------------------------------------------------------------+ +--------------+ + | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| + +--------------------------------------------------------------------------+ +--------------+ + | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | + +--------------------------------------------------------------------------+ +----+ | + | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | + +--------------------------------------------------------------------------+ +--------------+ + |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | + +-------------------------------------------------------------------------------------------+ + */ + + [2] = LAYOUT_tkl_ansi( \ + 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_CORT, EXTRA_B, \ + 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + + [3] = LAYOUT_tkl_ansi( \ + RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, LGT_VAD, LGT_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, EXTRA_A, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EXTRA_C, \ + _______, GUI_TOG, _______, _______, _______, GUI_TOG, _______, _______, EXTRA_F, EXTRA_D, EXTRA_E \ + ) +}; diff --git a/keyboards/keychron/c1/keymaps/default/plain.c b/keyboards/keychron/c1/keymaps/default/plain.c deleted file mode 100644 index e709b8305a19..000000000000 --- a/keyboards/keychron/c1/keymaps/default/plain.c +++ /dev/null @@ -1,103 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CORT LGUI(KC_C) // Cortana -#define KC_LOCK LGUI(KC_L) // Lock -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(3) // Windows Fn - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(1) // Mac Fn -#define KD_M_LK LCMD(LCTL(KC_Q)) // Mac Lock - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|LOCK| - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [0] = LAYOUT_tkl_ansi_260( \ - 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_MSCR, KC_SIRI, KD_M_LK, \ - 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [1] = LAYOUT_tkl_ansi_260( \ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ), - - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|LOCK| - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [2] = LAYOUT_tkl_ansi_260( \ - 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_CORT, KC_LOCK, \ - 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [3] = LAYOUT_tkl_ansi_260( \ - RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ - ) -}; diff --git a/keyboards/keychron/c1/keymaps/default/rgb.c b/keyboards/keychron/c1/keymaps/default/rgb.c deleted file mode 100644 index bc9b4ce011cc..000000000000 --- a/keyboards/keychron/c1/keymaps/default/rgb.c +++ /dev/null @@ -1,103 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CRTN LGUI(KC_C) // Cortana | Microsoft Teams -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [0] = LAYOUT_tkl_ansi_240B( - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - 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_MSCR, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_tkl_ansi_240B( \ - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI - ), - - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT|RGB | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [2] = LAYOUT_tkl_ansi_240B( - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - 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_CRTN, 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [3] = LAYOUT_tkl_ansi_240B( - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - RESET, 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_SNIP, _______, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, GUI_TOG, _______, _______, _______, GUI_TOG, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI - ) -}; diff --git a/keyboards/keychron/c1/keymaps/default/white.c b/keyboards/keychron/c1/keymaps/default/white.c deleted file mode 100644 index db2580caa118..000000000000 --- a/keyboards/keychron/c1/keymaps/default/white.c +++ /dev/null @@ -1,101 +0,0 @@ -/* -Copyright 2020 Dimitris Mantzouranis - -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 - -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CORT LGUI(KC_C) // Cortana -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(3) // Windows Fn - -#define KC_MSSN LGUI(KC_F3) // Mission Control -#define KC_FIND LALT(LGUI(KC_SPC)) // Finder -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(1) // Mac Fn - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Mac layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|SIRI| BL | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LALT| LGUI | SPACE | RGUI| RALT | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [0] = LAYOUT_tkl_ansi_260( \ - 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_MSCR, KC_SIRI, RGB_TOG, \ - 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [1] = LAYOUT_tkl_ansi_260( \ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ - ), - - /* Windows layout - +-------------------------------------------------------------------------------------------+ - | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|CORT| BL | - +--------------------------------------------------------------------------+ +--------------+ - | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |HOME|PGUP| - +--------------------------------------------------------------------------+ +--------------+ - | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN| - +--------------------------------------------------------------------------+ +--------------+ - | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | | - +--------------------------------------------------------------------------+ +----+ | - | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | | - +--------------------------------------------------------------------------+ +--------------+ - |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT | - +-------------------------------------------------------------------------------------------+ - */ - - [2] = LAYOUT_tkl_ansi_260( \ - 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_CORT, RGB_TOG, \ - 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - - [3] = LAYOUT_tkl_ansi_260( \ - RESET, 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_SNIP, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, \ - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_MOD \ - ) -}; From f4253f60ebb80a1b69eab84befce73921840eec7 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 12:01:34 +0800 Subject: [PATCH 17/34] [Keychron C1 Series] Fix keymap - Removed typo. lol mbmb --- .../keychron/c1/keymaps/default/keymap.c | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/keyboards/keychron/c1/keymaps/default/keymap.c b/keyboards/keychron/c1/keymaps/default/keymap.c index cdf3e7dacd65..6171498f8e82 100644 --- a/keyboards/keychron/c1/keymaps/default/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/keymap.c @@ -37,12 +37,12 @@ along with this program. If not, see . #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_260 #define LGT_VAD BL_DEC // Decrease KB Brightness #define LGT_VAI BL_INC // Increase KB Brightness - #define EXTRA_A KC_TRANS // None + #define EXTRA_A KC_TRNS // None #define EXTRA_B BL_TOGG // Toggle BL - #define EXTRA_C KC_TRANS // None - #define EXTRA_D KC_TRANS // None - #define EXTRA_E KC_TRANS // None - #define EXTRA_F KC_TRANS // None + #define EXTRA_C KC_TRNS // None + #define EXTRA_D KC_TRNS // None + #define EXTRA_E KC_TRNS // None + #define EXTRA_F KC_TRNS // None #elif defined(RGB_MATRIX_ENABLE) #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_240B #define LGT_VAD RGB_VAD // Decrease KB Brightness @@ -55,14 +55,14 @@ along with this program. If not, see . #define EXTRA_F RGB_SAD // Decrease RGB Saturation #else #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_260 - #define LGT_VAD KC_TRANS // Decrease KB Brightness - #define LGT_VAI KC_TRANS // Increase KB Brightness + #define LGT_VAD KC_TRNS // Decrease KB Brightness + #define LGT_VAI KC_TRNS // Increase KB Brightness #define EXTRA_A LCMD(LCTL(KC_Q)) // Mac Lock #define EXTRA_B KC_LGUI(KC_L) // Windows Lock - #define EXTRA_C KC_TRANS // None - #define EXTRA_D KC_TRANS // None - #define EXTRA_E KC_TRANS // None - #define EXTRA_F KC_TRANS // None + #define EXTRA_C KC_TRNS // None + #define EXTRA_D KC_TRNS // None + #define EXTRA_E KC_TRNS // None + #define EXTRA_F KC_TRNS // None #endif From 46360a7e5d8e3da15344d451721c70e8416691a6 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 12:06:50 +0800 Subject: [PATCH 18/34] [Keychron C1 Series] Better keycode names XD --- .../keychron/c1/keymaps/default/keymap.c | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/keyboards/keychron/c1/keymaps/default/keymap.c b/keyboards/keychron/c1/keymaps/default/keymap.c index 6171498f8e82..1702e58bf61e 100644 --- a/keyboards/keychron/c1/keymaps/default/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/keymap.c @@ -37,32 +37,32 @@ along with this program. If not, see . #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_260 #define LGT_VAD BL_DEC // Decrease KB Brightness #define LGT_VAI BL_INC // Increase KB Brightness - #define EXTRA_A KC_TRNS // None + #define EXTRA_A KC_TRNS // None #define EXTRA_B BL_TOGG // Toggle BL - #define EXTRA_C KC_TRNS // None - #define EXTRA_D KC_TRNS // None - #define EXTRA_E KC_TRNS // None - #define EXTRA_F KC_TRNS // None + #define LGT_HUI KC_TRNS // None + #define LGT_HUD KC_TRNS // None + #define LGT_SAI KC_TRNS // None + #define LGT_SAD KC_TRNS // None #elif defined(RGB_MATRIX_ENABLE) #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_240B #define LGT_VAD RGB_VAD // Decrease KB Brightness #define LGT_VAI RGB_VAI // Increase KB Brightness #define EXTRA_A RGB_TOG // Toggle RGB #define EXTRA_B RGB_MOD // Cycle RGB Modes - #define EXTRA_C RGB_HUI // Increase RGB Hue - #define EXTRA_D RGB_HUD // Decrease RGB Hue - #define EXTRA_E RGB_SAI // Increase RGB Saturation - #define EXTRA_F RGB_SAD // Decrease RGB Saturation + #define LGT_HUI RGB_HUI // Increase RGB Hue + #define LGT_HUD RGB_HUD // Decrease RGB Hue + #define LGT_SAI RGB_SAI // Increase RGB Saturation + #define LGT_SAD RGB_SAD // Decrease RGB Saturation #else #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_260 - #define LGT_VAD KC_TRNS // Decrease KB Brightness - #define LGT_VAI KC_TRNS // Increase KB Brightness + #define LGT_VAD KC_TRNS // None + #define LGT_VAI KC_TRNS // None #define EXTRA_A LCMD(LCTL(KC_Q)) // Mac Lock #define EXTRA_B KC_LGUI(KC_L) // Windows Lock - #define EXTRA_C KC_TRNS // None - #define EXTRA_D KC_TRNS // None - #define EXTRA_E KC_TRNS // None - #define EXTRA_F KC_TRNS // None + #define LGT_HUI KC_TRNS // None + #define LGT_HUD KC_TRNS // None + #define LGT_SAI KC_TRNS // None + #define LGT_SAD KC_TRNS // None #endif @@ -98,8 +98,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EXTRA_C, \ - _______, _______, GUI_TOG, _______, GUI_TOG, _______, _______, _______, EXTRA_F, EXTRA_D, EXTRA_E \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGT_HUI, \ + _______, _______, GUI_TOG, _______, GUI_TOG, _______, _______, _______, LGT_SAD, LGT_HUD, LGT_SAI \ ), /* Windows layout @@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EXTRA_C, \ - _______, GUI_TOG, _______, _______, _______, GUI_TOG, _______, _______, EXTRA_F, EXTRA_D, EXTRA_E \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGT_HUI, \ + _______, GUI_TOG, _______, _______, _______, GUI_TOG, _______, _______, LGT_SAD, LGT_HUD, LGT_SAI \ ) }; From abf033ec341e4c8473af2236c96131ce88f714a1 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 12:49:27 +0800 Subject: [PATCH 19/34] Some Keychron C1 White... - Yeah, fixed some but like, it's still broken XD - Add an ability to cycle through LED modes. Useless for now though since there are no enabled RGB modes except the solid XD. --- keyboards/keychron/c1/c1.c | 14 +++++++++++ .../keychron/c1/keymaps/default/keymap.c | 4 +-- keyboards/keychron/c1/white/config.h | 20 +++++++++++++++ keyboards/keychron/c1/white/white.c | 25 ------------------- 4 files changed, 36 insertions(+), 27 deletions(-) diff --git a/keyboards/keychron/c1/c1.c b/keyboards/keychron/c1/c1.c index 3334d44ea87a..0ce1564ca213 100644 --- a/keyboards/keychron/c1/c1.c +++ b/keyboards/keychron/c1/c1.c @@ -1,6 +1,7 @@ /* Copyright 2020 Adam Honse * Copyright 2020 Dimitris Mantzouranis * Copyright 2021 Harrison Chan (Xelus) + * Copyright 2021 IsaacDynamo * * 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 @@ -64,3 +65,16 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } + +void suspend_power_down_kb(void) { + // Turn leds off + mode_leds_show = false; + mode_leds_update(); + + #if defined(LED_MATRIX_ENABLE) + // Suspend backlight + led_matrix_set_suspend_state(true); + #endif + + suspend_power_down_user(); +} diff --git a/keyboards/keychron/c1/keymaps/default/keymap.c b/keyboards/keychron/c1/keymaps/default/keymap.c index 1702e58bf61e..ce21775777f9 100644 --- a/keyboards/keychron/c1/keymaps/default/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/keymap.c @@ -37,8 +37,8 @@ along with this program. If not, see . #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_260 #define LGT_VAD BL_DEC // Decrease KB Brightness #define LGT_VAI BL_INC // Increase KB Brightness - #define EXTRA_A KC_TRNS // None - #define EXTRA_B BL_TOGG // Toggle BL + #define EXTRA_A BL_TOGG // Toggle BL + #define EXTRA_B BL_STEP // Cycle LED Modes #define LGT_HUI KC_TRNS // None #define LGT_HUD KC_TRNS // None #define LGT_SAI KC_TRNS // None diff --git a/keyboards/keychron/c1/white/config.h b/keyboards/keychron/c1/white/config.h index b30b9dcc4e89..ff099a90917e 100644 --- a/keyboards/keychron/c1/white/config.h +++ b/keyboards/keychron/c1/white/config.h @@ -1,3 +1,20 @@ +/* Copyright 2020 Dimitris Mantzouranis + * Copyright 2022 Eduardo Fernandes + * + * 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 . + */ + /* USB Device descriptor parameter */ #define DESCRIPTION Keychron \x43\x31 White @@ -54,6 +71,9 @@ /* Connects each switch in the dip switch to the GPIO pin of the MCU */ #define DIP_SWITCH_PINS { D7 } +/* Disable RGB while USB is sleeping */ +#define LED_DISABLE_WHEN_USB_SUSPENDED true + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/keychron/c1/white/white.c b/keyboards/keychron/c1/white/white.c index a60e028d5062..efca0cb26718 100644 --- a/keyboards/keychron/c1/white/white.c +++ b/keyboards/keychron/c1/white/white.c @@ -14,31 +14,6 @@ * along with this program. If not, see . */ -void suspend_power_down_kb(void) { - // Turn leds off - mode_leds_show = false; - mode_leds_update(); - - // Suspend backlight - led_matrix_set_suspend_state(true); - - suspend_power_down_user(); -} - -/// TODO: Clean-up workaround -/// Currently the suspend_wakeup_init_kb() has issues. See https://github.com/SonixQMK/qmk_firmware/issues/80 -/// A workaround is to use housekeeping_task_kb() instead. -void housekeeping_task_kb(void) { - // Turn on - mode_leds_show = true; - mode_leds_update(); - - // Restore backlight - led_matrix_set_suspend_state(false); - - housekeeping_task_user(); -} - #define XX NO_LED // Mark keys that are black & orange with the default keychron keycaps. From 05ab03b8b871018bb26e8789bef0e6e0512c5b21 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 14:53:40 +0800 Subject: [PATCH 20/34] [Keychron C1 White & Plain] Some fixes and new stuff yes - Included a header that should supposedly be there but my pepega head didn't notice. - Fixed keycode for Windows Lock. - Returned `rand.c` again. Welcome back xD --- .../keychron/c1/keymaps/default/keymap.c | 2 +- keyboards/keychron/c1/plain/plain.c | 13 ++++++++ keyboards/keychron/c1/plain/rand.c | 31 +++++++++++++++++++ keyboards/keychron/c1/white/config.h | 13 ++++++++ 4 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 keyboards/keychron/c1/plain/rand.c diff --git a/keyboards/keychron/c1/keymaps/default/keymap.c b/keyboards/keychron/c1/keymaps/default/keymap.c index ce21775777f9..d00cd9fceedc 100644 --- a/keyboards/keychron/c1/keymaps/default/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/keymap.c @@ -58,7 +58,7 @@ along with this program. If not, see . #define LGT_VAD KC_TRNS // None #define LGT_VAI KC_TRNS // None #define EXTRA_A LCMD(LCTL(KC_Q)) // Mac Lock - #define EXTRA_B KC_LGUI(KC_L) // Windows Lock + #define EXTRA_B LGUI(KC_L) // Windows Lock #define LGT_HUI KC_TRNS // None #define LGT_HUD KC_TRNS // None #define LGT_SAI KC_TRNS // None diff --git a/keyboards/keychron/c1/plain/plain.c b/keyboards/keychron/c1/plain/plain.c index f84cb97bdfce..50ee36e377ac 100644 --- a/keyboards/keychron/c1/plain/plain.c +++ b/keyboards/keychron/c1/plain/plain.c @@ -1,3 +1,16 @@ +// Size optimizations to fit VIA support +// +// These optimizations are pretty intrusive because they remove the idle thread. +// Without idle thread some sleep related functions no longer function. +// These broken functions are overwritten with patched variants. +// +// These optimization are copied from: +// https://github.com/gloryhzw/qmk_firmware/blob/sn32/keyboards/gmmk/full +// +// This file adds patch sleep related functions that work without idle threads. + +#include "quantum.h" + #if CH_CFG_NO_IDLE_THREAD == TRUE #define CYCLES_PER_LOOP 9 diff --git a/keyboards/keychron/c1/plain/rand.c b/keyboards/keychron/c1/plain/rand.c new file mode 100644 index 000000000000..330d3b39af40 --- /dev/null +++ b/keyboards/keychron/c1/plain/rand.c @@ -0,0 +1,31 @@ +// Small rand() implementation +// +// The libc rand implementation takes to much flash space, so an smaller rand() function is used. +#include "quantum.h" + +int rand(void) +{ + // static unsigned int z4; + unsigned int z1, z2, z3, z4; + int r; + unsigned int b; + + z1 = timer_read32(); + z2 = 12345; + z3 = 12345; + z4 = z1 << 8; + + b = ((z1 << 6) ^ z1) >> 13; + z1 = ((z1 & 4294967294U) << 18) ^ b; + b = ((z2 << 2) ^ z2) >> 27; + z2 = ((z2 & 4294967288U) << 2) ^ b; + b = ((z3 << 13) ^ z3) >> 21; + z3 = ((z3 & 4294967280U) << 7) ^ b; + b = ((z4 << 3) ^ z4) >> 12; + z4 = ((z4 & 4294967168U) << 13) ^ b; + + r = z1 ^ z2 ^ z3 ^ z4; + // z4 = r; + + return r; +} diff --git a/keyboards/keychron/c1/white/config.h b/keyboards/keychron/c1/white/config.h index ff099a90917e..f8e44e126f54 100644 --- a/keyboards/keychron/c1/white/config.h +++ b/keyboards/keychron/c1/white/config.h @@ -83,3 +83,16 @@ #define LED_MAC_PIN B4 #define LED_WIN_PIN B5 + +/* Enable led matrix effects */ +#define ENABLE_LED_MATRIX_ALPHAS_MODS +#define ENABLE_LED_MATRIX_BREATHING +#define ENABLE_LED_MATRIX_BAND +#define ENABLE_LED_MATRIX_BAND_PINWHEEL +#define ENABLE_LED_MATRIX_BAND_SPIRAL +#define ENABLE_LED_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_LED_MATRIX_CYCLE_UP_DOWN +#define ENABLE_LED_MATRIX_CYCLE_OUT_IN +#define ENABLE_LED_MATRIX_DUAL_BEACON +#define ENABLE_LED_MATRIX_WAVE_LEFT_RIGHT +#define ENABLE_LED_MATRIX_WAVE_UP_DOWN From 5f7b9e178fc8cc236160663db294eeab783d0e9f Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 15:41:04 +0800 Subject: [PATCH 21/34] Update white.c --- keyboards/keychron/c1/white/white.c | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/keychron/c1/white/white.c b/keyboards/keychron/c1/white/white.c index efca0cb26718..56182efea64e 100644 --- a/keyboards/keychron/c1/white/white.c +++ b/keyboards/keychron/c1/white/white.c @@ -13,6 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +#include "led_matrix.h" #define XX NO_LED From c875b376fe356154103712bd7300a3c7a0a934e0 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Feb 2022 16:10:36 +0800 Subject: [PATCH 22/34] [Keychron C1 Series] Update readme.md --- keyboards/keychron/c1/plain/readme.md | 20 +++++++++++++------- keyboards/keychron/c1/rgb/readme.md | 7 ++++--- keyboards/keychron/c1/white/readme.md | 24 +++++++++--------------- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/keyboards/keychron/c1/plain/readme.md b/keyboards/keychron/c1/plain/readme.md index a8aa32c1495e..7c039a8499fd 100644 --- a/keyboards/keychron/c1/plain/readme.md +++ b/keyboards/keychron/c1/plain/readme.md @@ -20,11 +20,12 @@ A customizable TKL keyboard. Without Fn | With Fn ---------- | ------- -ESC | Reset keyboard F1 | Decrease PC Brightness F2 | Increase PC Brightness F3 | Task View F4 | File Explorer +F5 | Decrease KB Brightness +F6 | Increase KB Brightness F7 | Previous Track F8 | Play/Pause Track F9 | Next Track @@ -32,8 +33,10 @@ F10 | Mute F11 | Decrease Volume F12 | Increase Volume Print Screen | Snip & Sketch -Cortana | - -Lock PC | - +Cortana / Microsoft Teams | None +Lock your PC | None +⊞ | GUI Lock Toggle +Home | NKRO Toggle @@ -42,11 +45,12 @@ Lock PC | - Without Fn | With Fn ---------- | ------- -ESC | Reset keyboard F1 | Decrease PC Brightness F2 | Increase PC Brightness -F3 | None +F3 | Mission Control F4 | Finder +F5 | Decrease KB Brightness +F6 | Increase KB Brightness F7 | Previous Track F8 | Play/Pause Track F9 | Next Track @@ -54,8 +58,10 @@ F10 | Mute F11 | Decrease Volume F12 | Increase Volume Take a screenshot (whole screen) | Take a screenshot (specific area) -Siri (hold down) | - -Lock Mac | - +Siri (hold down) | None +Lock your Mac | None +⌘ | GUI Lock Toggle +Home | NKRO Toggle diff --git a/keyboards/keychron/c1/rgb/readme.md b/keyboards/keychron/c1/rgb/readme.md index 21984d21c679..4f629ec7bdc3 100644 --- a/keyboards/keychron/c1/rgb/readme.md +++ b/keyboards/keychron/c1/rgb/readme.md @@ -38,8 +38,8 @@ F11 | Decrease Volume F12 | Increase Volume Print Screen | Snip & Sketch Cortana / Microsoft Teams | None -Change RGB | Toggle RGB -⊞ | Windows Key Lock Toggle +Cycle RGB Mode | Toggle RGB +⊞ | GUI Lock Toggle Home | NKRO Toggle ↑ | Increase RGB Hue ← | Decrease RGB Saturation @@ -67,7 +67,8 @@ F11 | Decrease Volume F12 | Increase Volume Take a screenshot (whole screen) | Take a screenshot (specific area) Siri (hold down) | None -Change RGB | Toggle RGB +Cycle RGB Mode | Toggle RGB +⌘ | GUI Lock Toggle Home | NKRO Toggle ↑ | Increase RGB Hue ← | Decrease RGB Saturation diff --git a/keyboards/keychron/c1/white/readme.md b/keyboards/keychron/c1/white/readme.md index a12572aa15da..9f61251cac6a 100644 --- a/keyboards/keychron/c1/white/readme.md +++ b/keyboards/keychron/c1/white/readme.md @@ -20,7 +20,6 @@ A customizable TKL keyboard. Without Fn | With Fn ---------- | ------- -ESC | Reset keyboard F1 | Decrease PC Brightness F2 | Increase PC Brightness F3 | Task View @@ -34,12 +33,10 @@ F10 | Mute F11 | Decrease Volume F12 | Increase Volume Print Screen | Snip & Sketch -Cortana | - -Toggle backlight | - -↑ | Increase effect speed -← | Cycle through modes in reverse -↓ | Decrease effect speed -→ | Cycle through modes +Cortana / Microsoft Teams | None +Cycle LED Mode | Toggle RGB +⊞ | GUI Lock Toggle +Home | NKRO Toggle @@ -48,10 +45,9 @@ Toggle backlight | - Without Fn | With Fn ---------- | ------- -ESC | Reset keyboard F1 | Decrease PC Brightness F2 | Increase PC Brightness -F3 | None +F3 | Mission Control F4 | Finder F5 | Decrease KB Brightness F6 | Increase KB Brightness @@ -62,12 +58,10 @@ F10 | Mute F11 | Decrease Volume F12 | Increase Volume Take a screenshot (whole screen) | Take a screenshot (specific area) -Siri (hold down) | - -Toggle backlight | - -↑ | Increase effect speed -← | Cycle through modes in reverse -↓ | Decrease effect speed -→ | Cycle through modes +Siri (hold down) | None +Cycle LED Mode | Toggle RGB +⌘ | GUI Lock Toggle +Home | NKRO Toggle From 6f7572a1125538f2fc900b15e9b443e112e74566 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Fri, 11 Feb 2022 19:43:10 +0800 Subject: [PATCH 23/34] [Keychron C1 RGB] Fix VIA - RGB control using VIA should work now again. --- keyboards/keychron/c1/rgb/keymaps/via/config.h | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 keyboards/keychron/c1/rgb/keymaps/via/config.h diff --git a/keyboards/keychron/c1/rgb/keymaps/via/config.h b/keyboards/keychron/c1/rgb/keymaps/via/config.h new file mode 100644 index 000000000000..176f444b24d6 --- /dev/null +++ b/keyboards/keychron/c1/rgb/keymaps/via/config.h @@ -0,0 +1,4 @@ +#pragma once + +// Enable RGB Matrix +#define VIA_QMK_RGBLIGHT_ENABLE From c81d1030a330b43376268225d8c1ddd18bd58151 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Sat, 12 Feb 2022 00:03:48 +0800 Subject: [PATCH 24/34] [Keychron C1 Series] Tweaks to keymap - Change layer names but attribute numbers to them as well. - Fixed some extra key. --- .../keychron/c1/keymaps/default/keymap.c | 41 ++++++++++++------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/keyboards/keychron/c1/keymaps/default/keymap.c b/keyboards/keychron/c1/keymaps/default/keymap.c index d00cd9fceedc..eba38e3034ea 100644 --- a/keyboards/keychron/c1/keymaps/default/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/keymap.c @@ -16,6 +16,13 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H +enum layers{ + MAC_BASE = 0, + MAC_FN = 1, + WIN_BASE = 2, + WIN_FN = 3 +}; + /* Keychron Fn */ #define KC_TASK LGUI(KC_TAB) // Task viewer @@ -37,8 +44,10 @@ along with this program. If not, see . #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_260 #define LGT_VAD BL_DEC // Decrease KB Brightness #define LGT_VAI BL_INC // Increase KB Brightness - #define EXTRA_A BL_TOGG // Toggle BL - #define EXTRA_B BL_STEP // Cycle LED Modes + #define XTR_AA BL_STEP // Cycle LED Modes + #define XTR_AB BL_TOGG // Toggle BL + #define XTR_BA BL_STEP // Cycle LED Modes + #define XTR_BB BL_TOGG // Toggle BL #define LGT_HUI KC_TRNS // None #define LGT_HUD KC_TRNS // None #define LGT_SAI KC_TRNS // None @@ -47,8 +56,10 @@ along with this program. If not, see . #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_240B #define LGT_VAD RGB_VAD // Decrease KB Brightness #define LGT_VAI RGB_VAI // Increase KB Brightness - #define EXTRA_A RGB_TOG // Toggle RGB - #define EXTRA_B RGB_MOD // Cycle RGB Modes + #define XTR_AA RGB_MOD // Cycle RGB Modes + #define XTR_AB RGB_TOG // Toggle RGB + #define XTR_BA RGB_MOD // Cycle RGB Modes + #define XTR_BB RGB_TOG // Toggle RGB #define LGT_HUI RGB_HUI // Increase RGB Hue #define LGT_HUD RGB_HUD // Decrease RGB Hue #define LGT_SAI RGB_SAI // Increase RGB Saturation @@ -57,8 +68,10 @@ along with this program. If not, see . #define LAYOUT_tkl_ansi LAYOUT_tkl_ansi_260 #define LGT_VAD KC_TRNS // None #define LGT_VAI KC_TRNS // None - #define EXTRA_A LCMD(LCTL(KC_Q)) // Mac Lock - #define EXTRA_B LGUI(KC_L) // Windows Lock + #define XTR_AA LGUI(LCTL(KC_Q)) // Mac Lock + #define XTR_AB KC_TRNS // None + #define XTR_BA LGUI(KC_L) // Windows Lock + #define XTR_BB KC_TRNS // None #define LGT_HUI KC_TRNS // None #define LGT_HUD KC_TRNS // None #define LGT_SAI KC_TRNS // None @@ -84,8 +97,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +-------------------------------------------------------------------------------------------+ */ - [0] = LAYOUT_tkl_ansi( \ - 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_MSCR, KC_SIRI, EXTRA_A, \ + [MAC_BASE] = LAYOUT_tkl_ansi( \ + 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_MSCR, KC_SIRI, XTR_AA, \ 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, \ @@ -93,8 +106,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_M_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [1] = LAYOUT_tkl_ansi( \ - RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, LGT_VAD, LGT_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, EXTRA_B, \ + [MAC_FN] = LAYOUT_tkl_ansi( \ + RESET, KC_BRID, KC_BRIU, KC_MSSN, KC_FIND, LGT_VAD, LGT_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, XTR_AB, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -118,8 +131,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +-------------------------------------------------------------------------------------------+ */ - [2] = LAYOUT_tkl_ansi( \ - 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_CORT, EXTRA_B, \ + [WIN_BASE] = LAYOUT_tkl_ansi( \ + 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_CORT, XTR_BA, \ 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, \ @@ -127,8 +140,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_W_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), - [3] = LAYOUT_tkl_ansi( \ - RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, LGT_VAD, LGT_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, EXTRA_A, \ + [WIN_FN] = LAYOUT_tkl_ansi( \ + RESET, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, LGT_VAD, LGT_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNIP, _______, XTR_BB, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ From b60139266efc7c23510ff42d6cb45515055017c5 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Sat, 12 Feb 2022 01:00:27 +0800 Subject: [PATCH 25/34] [Keychron C1 Series] Tweak keymap.c - Change Finder to Launchpad. - Use some weird way of sending keystroke for Mac specific keys. - DIP switch logic for moving to a layer has been moved to `keymap.c` --- keyboards/keychron/c1/c1.c | 60 ---------------- .../keychron/c1/keymaps/default/keymap.c | 68 ++++++++++++++++++- 2 files changed, 65 insertions(+), 63 deletions(-) diff --git a/keyboards/keychron/c1/c1.c b/keyboards/keychron/c1/c1.c index 0ce1564ca213..4aa412a915f5 100644 --- a/keyboards/keychron/c1/c1.c +++ b/keyboards/keychron/c1/c1.c @@ -18,63 +18,3 @@ */ #include "c1.h" - -// Manage Windows and Mac LEDs -// - Show status of mode switch -// - Turn LEDs off durring USB suspend -static bool mode_leds_show = true; -static bool mode_leds_windows; - -static void mode_leds_update(void){ - writePin(LED_WIN_PIN, mode_leds_show && mode_leds_windows); - writePin(LED_MAC_PIN, mode_leds_show && !mode_leds_windows); -} - -bool dip_switch_update_kb(uint8_t index, bool active){ - if(index == 0) { - if(active) { // Mac mode - layer_move(0); - } else { // Windows mode - layer_move(2); - } - - // Update mode and update leds - mode_leds_windows = !active; - mode_leds_update(); - } - - dip_switch_update_user(index, active); - return true; -} - -void keyboard_pre_init_kb(void) { - // Setup Win & Mac LED Pins as output - setPinOutput(LED_WIN_PIN); - setPinOutput(LED_MAC_PIN); - - // WORKAROUND: Mac & Windows LED flicker. - // Normally the GPIOs in DIP_SWITCH_PINS will be initialized by dip_switch_init(). - // But during startup of the keyboard the Mac/Windows dip switch seems to jitter, causing the Mac and Windows LEDs to flicker. - // Maybe the internal pull-up of this chip is really weak, and needs some time to pullup the input voltage to the high level? Seems unlikely but cannot think of a better explanation. - // By doing the configuration of the GPIOs here the pullup is enabled earlier and the flicker is gone. - const pin_t dip_switch_pad[] = DIP_SWITCH_PINS; - const size_t size = sizeof(dip_switch_pad) / sizeof(dip_switch_pad[0]); - for (size_t i=0; ievent.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 + default: + return true; // Process all other keycodes normally + } +} From 78bb5aaafddb592742ff9c09f9daddd321b60d3a Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Sat, 12 Feb 2022 12:39:14 +0800 Subject: [PATCH 26/34] [Keychron C1 Series] Update `keymap.c` - Update comment. --- keyboards/keychron/c1/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keychron/c1/keymaps/default/keymap.c b/keyboards/keychron/c1/keymaps/default/keymap.c index 458a3c332081..05e0452510fd 100644 --- a/keyboards/keychron/c1/keymaps/default/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { #define KC_W_FN MO(3) // Windows Fn #define KC_MCTL KC_MISSION_CONTROL // Mission Control -#define KC_LPAD KC_LAUNCHPAD // Finder +#define KC_LPAD KC_LAUNCHPAD // Launchpad #define KC_SIRI LGUI(KC_SPC) // Siri #define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot #define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool From 43eaf19d36ecf80d6457162d0e3aab8d9ac1e47e Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Mon, 14 Feb 2022 15:39:33 +0800 Subject: [PATCH 27/34] Update keymap.c --- keyboards/keychron/c1/keymaps/default/keymap.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/keyboards/keychron/c1/keymaps/default/keymap.c b/keyboards/keychron/c1/keymaps/default/keymap.c index 05e0452510fd..fac25534a6cf 100644 --- a/keyboards/keychron/c1/keymaps/default/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/keymap.c @@ -17,10 +17,10 @@ along with this program. If not, see . #include QMK_KEYBOARD_H enum layers{ - MAC_BASE = 0, - MAC_FN = 1, - WIN_BASE = 2, - WIN_FN = 3 + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN }; enum custom_keycodes { @@ -34,14 +34,14 @@ enum custom_keycodes { #define KC_FLXP LGUI(KC_E) // Windows file explorer #define KC_CORT LGUI(KC_C) // Cortana #define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(3) // Windows Fn +#define KC_W_FN MO(WIN_FN) // Windows Fn #define KC_MCTL KC_MISSION_CONTROL // Mission Control #define KC_LPAD KC_LAUNCHPAD // Launchpad #define KC_SIRI LGUI(KC_SPC) // Siri #define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot #define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(1) // Mac Fn +#define KC_M_FN MO(MAC_FN) // Mac Fn /* Variant-tailored Defines */ @@ -169,9 +169,9 @@ static void mode_leds_update(void){ bool dip_switch_update_kb(uint8_t index, bool active){ if(index == 0) { if(active) { // Mac mode - layer_move(0); + layer_move(MAC_BASE); } else { // Windows mode - layer_move(2); + layer_move(WIN_BASE); } // Update mode and update leds From d94bd9b0964aad9c9a3c8516aad7903d79fd369b Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Tue, 22 Feb 2022 16:59:22 +0800 Subject: [PATCH 28/34] [Keychron C1 Series] Disable `WAIT_FOR_USB` --- keyboards/keychron/c1/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keychron/c1/rules.mk b/keyboards/keychron/c1/rules.mk index 0e93f22ce812..60a68e0f027b 100644 --- a/keyboards/keychron/c1/rules.mk +++ b/keyboards/keychron/c1/rules.mk @@ -8,4 +8,4 @@ BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration EXTRAKEY_ENABLE = yes # Audio control and System control NKRO_ENABLE = yes # USB Nkey Rollover DIP_SWITCH_ENABLE = yes -WAIT_FOR_USB = yes +WAIT_FOR_USB = no From 41f8b428714c41cf820afab5742c1cef78dad7a7 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Mar 2022 12:13:36 +0800 Subject: [PATCH 29/34] [Keychron C1] Removed Launchpad Virtual Keycode --- .../keychron/c1/keymaps/default/keymap.c | 49 +++++-------------- keyboards/keychron/c1/plain/readme.md | 2 +- keyboards/keychron/c1/rgb/readme.md | 3 +- keyboards/keychron/c1/white/readme.md | 6 +-- 4 files changed, 16 insertions(+), 44 deletions(-) diff --git a/keyboards/keychron/c1/keymaps/default/keymap.c b/keyboards/keychron/c1/keymaps/default/keymap.c index fac25534a6cf..7d39675fd733 100644 --- a/keyboards/keychron/c1/keymaps/default/keymap.c +++ b/keyboards/keychron/c1/keymaps/default/keymap.c @@ -23,25 +23,19 @@ enum layers{ WIN_FN }; -enum custom_keycodes { - KC_MISSION_CONTROL = SAFE_RANGE, - KC_LAUNCHPAD -}; - /* Keychron Fn */ -#define KC_TASK LGUI(KC_TAB) // Task viewer -#define KC_FLXP LGUI(KC_E) // Windows file explorer -#define KC_CORT LGUI(KC_C) // Cortana -#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool -#define KC_W_FN MO(WIN_FN) // Windows Fn +#define KC_TASK LGUI(KC_TAB) // Task viewer +#define KC_FLXP LGUI(KC_E) // Windows file explorer +#define KC_CORT LGUI(KC_C) // Cortana +#define KC_SNIP LGUI(LSFT(KC_S)) // Windows snip tool +#define KC_W_FN MO(WIN_FN) // Windows Fn -#define KC_MCTL KC_MISSION_CONTROL // Mission Control -#define KC_LPAD KC_LAUNCHPAD // Launchpad -#define KC_SIRI LGUI(KC_SPC) // Siri -#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot -#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool -#define KC_M_FN MO(MAC_FN) // Mac Fn +#define KC_MCTL LGUI(KC_UP) // Mission Control +#define KC_SIRI LGUI(KC_SPC) // Siri +#define KC_MSCR LSFT(LGUI(KC_3)) // Mac screenshot +#define KC_MSNP LSFT(LGUI(KC_4)) // Mac snip tool +#define KC_M_FN MO(MAC_FN) // Mac Fn /* Variant-tailored Defines */ @@ -112,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [MAC_FN] = LAYOUT_tkl_ansi( \ - RESET, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, LGT_VAD, LGT_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, XTR_AB, \ + RESET, KC_BRID, KC_BRIU, KC_MCTL, _______, LGT_VAD, LGT_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSNP, _______, XTR_AB, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ @@ -190,24 +184,3 @@ void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } - -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 - default: - return true; // Process all other keycodes normally - } -} diff --git a/keyboards/keychron/c1/plain/readme.md b/keyboards/keychron/c1/plain/readme.md index 7c039a8499fd..50bf6fe6d41e 100644 --- a/keyboards/keychron/c1/plain/readme.md +++ b/keyboards/keychron/c1/plain/readme.md @@ -48,7 +48,7 @@ Without Fn | With Fn F1 | Decrease PC Brightness F2 | Increase PC Brightness F3 | Mission Control -F4 | Finder +F4 | None F5 | Decrease KB Brightness F6 | Increase KB Brightness F7 | Previous Track diff --git a/keyboards/keychron/c1/rgb/readme.md b/keyboards/keychron/c1/rgb/readme.md index 4f629ec7bdc3..2588ff4b8e69 100644 --- a/keyboards/keychron/c1/rgb/readme.md +++ b/keyboards/keychron/c1/rgb/readme.md @@ -56,7 +56,7 @@ Without Fn | With Fn F1 | Decrease PC Brightness F2 | Increase PC Brightness F3 | Mission Control -F4 | Finder +F4 | None F5 | Decrease KB Brightness F6 | Increase KB Brightness F7 | Previous Track @@ -74,7 +74,6 @@ Home | NKRO Toggle ← | Decrease RGB Saturation ↓ | Decrease RGB Hue → | Increase RGB Saturation - * * * diff --git a/keyboards/keychron/c1/white/readme.md b/keyboards/keychron/c1/white/readme.md index 9f61251cac6a..6d985169a559 100644 --- a/keyboards/keychron/c1/white/readme.md +++ b/keyboards/keychron/c1/white/readme.md @@ -34,7 +34,7 @@ F11 | Decrease Volume F12 | Increase Volume Print Screen | Snip & Sketch Cortana / Microsoft Teams | None -Cycle LED Mode | Toggle RGB +Cycle LED Mode | Toggle LED ⊞ | GUI Lock Toggle Home | NKRO Toggle @@ -48,7 +48,7 @@ Without Fn | With Fn F1 | Decrease PC Brightness F2 | Increase PC Brightness F3 | Mission Control -F4 | Finder +F4 | None F5 | Decrease KB Brightness F6 | Increase KB Brightness F7 | Previous Track @@ -59,7 +59,7 @@ F11 | Decrease Volume F12 | Increase Volume Take a screenshot (whole screen) | Take a screenshot (specific area) Siri (hold down) | None -Cycle LED Mode | Toggle RGB +Cycle LED Mode | Toggle LED ⌘ | GUI Lock Toggle Home | NKRO Toggle From 32a661c2b071f50f89f37dcef621fa441d3c2947 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Thu, 10 Mar 2022 12:25:22 +0800 Subject: [PATCH 30/34] uhm yes --- keyboards/keychron/c1/c1.c | 2 +- keyboards/keychron/c1/c1.h | 1 + keyboards/keychron/c1/config.h | 1 + keyboards/keychron/c1/white/config.h | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/keyboards/keychron/c1/c1.c b/keyboards/keychron/c1/c1.c index 4aa412a915f5..31b645083ad1 100644 --- a/keyboards/keychron/c1/c1.c +++ b/keyboards/keychron/c1/c1.c @@ -1,7 +1,7 @@ /* Copyright 2020 Adam Honse * Copyright 2020 Dimitris Mantzouranis - * Copyright 2021 Harrison Chan (Xelus) * Copyright 2021 IsaacDynamo + * Copyright 2021 Harrison Chan (Xelus) * * 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 diff --git a/keyboards/keychron/c1/c1.h b/keyboards/keychron/c1/c1.h index 1e8a02ebb5b8..ab604965c039 100644 --- a/keyboards/keychron/c1/c1.h +++ b/keyboards/keychron/c1/c1.h @@ -1,5 +1,6 @@ /* Copyright 2020 Adam Honse * Copyright 2020 Dimitris Mantzouranis + * Copyright 2021 IsaacDynamo * Copyright 2022 Harrison Chan (Xelus) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/keychron/c1/config.h b/keyboards/keychron/c1/config.h index 009acba992a8..ee8c43caeb19 100644 --- a/keyboards/keychron/c1/config.h +++ b/keyboards/keychron/c1/config.h @@ -1,5 +1,6 @@ /* Copyright 2020 Adam Honse * Copyright 2020 Dimitris Mantzouranis + * Copyright 2021 IsaacDynamo * Copyright 2022 Harrison Chan (Xelus) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/keychron/c1/white/config.h b/keyboards/keychron/c1/white/config.h index f8e44e126f54..296f2cbc836e 100644 --- a/keyboards/keychron/c1/white/config.h +++ b/keyboards/keychron/c1/white/config.h @@ -1,4 +1,5 @@ /* Copyright 2020 Dimitris Mantzouranis + * Copyright 2021 IsaacDynamo * Copyright 2022 Eduardo Fernandes * * This program is free software: you can redistribute it and/or modify From 83379730c33d783b7c0a194d5d544a0655daf3d1 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Sun, 12 Jun 2022 01:26:55 +0800 Subject: [PATCH 31/34] [Keychron C1] Set debounce for all - Added debounce for all variants. --- keyboards/keychron/c1/config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/keychron/c1/config.h b/keyboards/keychron/c1/config.h index ee8c43caeb19..df74219defa4 100644 --- a/keyboards/keychron/c1/config.h +++ b/keyboards/keychron/c1/config.h @@ -31,3 +31,6 @@ /* Polling Rate */ #define USB_POLLING_INTERVAL_MS 1 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 From c2b7b38fe4be45855cad74ea3946b7be073c4fad Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Sun, 12 Jun 2022 01:28:14 +0800 Subject: [PATCH 32/34] Update config.h --- keyboards/keychron/c1/white/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/keychron/c1/white/config.h b/keyboards/keychron/c1/white/config.h index 296f2cbc836e..dd6fe32e6cc6 100644 --- a/keyboards/keychron/c1/white/config.h +++ b/keyboards/keychron/c1/white/config.h @@ -75,9 +75,6 @@ /* Disable RGB while USB is sleeping */ #define LED_DISABLE_WHEN_USB_SUSPENDED true -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - /* LED Status indicators */ #define LED_CAPS_LOCK_PIN B3 #define LED_PIN_ON_STATE 1 From 2594262e1efd4cd7cbf3fa6cf7c73f7c95373eb0 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Fri, 2 Sep 2022 20:18:51 +0800 Subject: [PATCH 33/34] [Keychron C1 RGB] Fixed an oversight - Removed debounce for RGB config as it is already defined in all the C1 variants. --- keyboards/keychron/c1/rgb/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/keychron/c1/rgb/config.h b/keyboards/keychron/c1/rgb/config.h index 871eac3527f8..473fb01d2a9d 100644 --- a/keyboards/keychron/c1/rgb/config.h +++ b/keyboards/keychron/c1/rgb/config.h @@ -29,9 +29,6 @@ /* Disable RGB while USB is sleeping */ #define RGB_DISABLE_WHEN_USB_SUSPENDED true -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 0 - /* LED Status indicators */ #define LED_CAPS_LOCK_PIN B10 #define LED_MAC_PIN B11 //labeled Mac on KB since no Scroll Lock From 86e6f328c32ee4f6b725830139ee26f8303469d3 Mon Sep 17 00:00:00 2001 From: vjdato21 Date: Tue, 15 Nov 2022 18:54:14 +0800 Subject: [PATCH 34/34] [Keychron C1] Reduce debounce - Playing around with debounce (trying to go with the sweetest spot). - Multiple commits involving debounce may appear in future commits. (sorry, I don't have the compiler with my laptop right now coz my SSD is in the brink of death) --- keyboards/keychron/c1/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keychron/c1/config.h b/keyboards/keychron/c1/config.h index df74219defa4..421ec8b70d5c 100644 --- a/keyboards/keychron/c1/config.h +++ b/keyboards/keychron/c1/config.h @@ -33,4 +33,4 @@ #define USB_POLLING_INTERVAL_MS 1 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 +#define DEBOUNCE 1