summaryrefslogtreecommitdiffstats
path: root/keyboards/keychron/q0/rev_0130
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/keychron/q0/rev_0130')
-rw-r--r--keyboards/keychron/q0/rev_0130/config.h10
-rw-r--r--keyboards/keychron/q0/rev_0130/info.json44
-rw-r--r--keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c65
-rw-r--r--keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk5
-rw-r--r--keyboards/keychron/q0/rev_0130/rev_0130.h38
5 files changed, 102 insertions, 60 deletions
diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h
index 126d636589..80a2e150af 100644
--- a/keyboards/keychron/q0/rev_0130/config.h
+++ b/keyboards/keychron/q0/rev_0130/config.h
@@ -16,9 +16,19 @@
#pragma once
+/* key matrix pins */
+#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
+#define MATRIX_COL_PINS { A5, A6, A7, B0 }
+
+/* RGB Matrix Driver Configuration */
+#define DRIVER_COUNT 1
+#define DRIVER_ADDR_1 0b1110100
+
/* RGB Matrix Configuration */
#define DRIVER_1_LED_TOTAL 21
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
+#define RGB_MATRIX_CENTER { 56, 16 }
+
/* Enable num-lock LED */
#define NUM_LOCK_LED_INDEX 4
diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/rev_0130/info.json
index d42a43ef66..e5f25f62ac 100644
--- a/keyboards/keychron/q0/rev_0130/info.json
+++ b/keyboards/keychron/q0/rev_0130/info.json
@@ -11,33 +11,33 @@
"layouts": {
"LAYOUT_numpad_6x4": {
"layout": [
- {"label":"Fn", "x":0, "y":0},
- {"label":"Esc", "x":1, "y":0},
- {"label":"Backspace", "x":2, "y":0},
- {"label":"Tab", "x":3, "y":0},
+ {"matrix":[0,0], "x":0, "y":0},
+ {"matrix":[0,1], "x":1, "y":0},
+ {"matrix":[0,2], "x":2, "y":0},
+ {"matrix":[0,3], "x":3, "y":0},
- {"label":"Num Lock", "x":0, "y":1},
- {"label":"/", "x":1, "y":1},
- {"label":"*", "x":2, "y":1},
- {"label":"-", "x":3, "y":1},
+ {"matrix":[1,0], "x":0, "y":1},
+ {"matrix":[1,1], "x":1, "y":1},
+ {"matrix":[1,2], "x":2, "y":1},
+ {"matrix":[1,3], "x":3, "y":1},
- {"label":"7", "x":0, "y":2},
- {"label":"8", "x":1, "y":2},
- {"label":"9", "x":2, "y":2},
+ {"matrix":[2,0], "x":0, "y":2},
+ {"matrix":[2,1], "x":1, "y":2},
+ {"matrix":[2,2], "x":2, "y":2},
- {"label":"4", "x":0, "y":3},
- {"label":"5", "x":1, "y":3},
- {"label":"6", "x":2, "y":3},
- {"label":"+", "x":3, "y":2, "h":2},
+ {"matrix":[3,0], "x":0, "y":3},
+ {"matrix":[3,1], "x":1, "y":3},
+ {"matrix":[3,2], "x":2, "y":3},
+ {"matrix":[2,3], "x":3, "y":2, "h":2},
- {"label":"1", "x":0, "y":4},
- {"label":"2", "x":1, "y":4},
- {"label":"3", "x":2, "y":4},
+ {"matrix":[4,0], "x":0, "y":4},
+ {"matrix":[4,1], "x":1, "y":4},
+ {"matrix":[4,2], "x":2, "y":4},
- {"label":"0", "x":0, "y":5, "w":2},
- {"label":".", "x":2, "y":5},
- {"label":"Enter", "x":3, "y":4, "h":2}
+ {"matrix":[5,0], "x":0, "y":5, "w":2},
+ {"matrix":[5,2], "x":2, "y":5},
+ {"matrix":[4,3], "x":3, "y":4, "h":2}
]
}
}
-} \ No newline at end of file
+}
diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c b/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c
new file mode 100644
index 0000000000..73826716fc
--- /dev/null
+++ b/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c
@@ -0,0 +1,65 @@
+/* Copyright 2023 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+#include "keychron_common.h"
+
+enum layers { _BASE, _FN1, _RESERVED1, _RESERVED2 };
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT_numpad_6x4(
+ MO(_FN1), KC_ESC, KC_BSPC, KC_TAB,
+ KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3,
+ KC_P0, KC_PDOT, KC_PENT),
+
+ [_FN1] = LAYOUT_numpad_6x4(
+ _______, KC_MUTE, KC_VOLD, KC_VOLU,
+ RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL,
+ RGB_RMOD, RGB_VAD, RGB_HUD,
+ RGB_SAI, RGB_SPI, KC_MPRV, _______,
+ RGB_SAD, RGB_SPD, KC_MPLY,
+ RGB_TOG, KC_MNXT, _______),
+
+ [_RESERVED1] = LAYOUT_numpad_6x4(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______,
+ _______, _______, _______),
+
+ [_RESERVED2] = LAYOUT_numpad_6x4(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______,
+ _______, _______, _______)
+};
+
+void housekeeping_task_user(void) {
+ housekeeping_task_keychron();
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (!process_record_keychron(keycode, record)) {
+ return false;
+ }
+ return true;
+}
diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk b/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk
new file mode 100644
index 0000000000..9cf1a9b56c
--- /dev/null
+++ b/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk
@@ -0,0 +1,5 @@
+VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
+
+VPATH += keyboards/keychron/common
+SRC += keychron_common.c
diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.h b/keyboards/keychron/q0/rev_0130/rev_0130.h
deleted file mode 100644
index d66c880aa9..0000000000
--- a/keyboards/keychron/q0/rev_0130/rev_0130.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_numpad_6x4( \
- K00, K01, K02, K03, \
- K10, K11, K12, K13, \
- K20, K21, K22, \
- K30, K31, K32, K23, \
- K40, K41, K42, \
- K50, K52, K43 \
-) \
-{ \
- { K00, K01, K02, K03 }, \
- { K10, K11, K12, K13 }, \
- { K20, K21, K22, K23 }, \
- { K30, K31, K32, XXX }, \
- { K40, K41, K42, K43 }, \
- { K50, XXX, K52, XXX }, \
-}