summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/cospad/cospad.h64
-rw-r--r--keyboards/cospad/info.json67
-rw-r--r--keyboards/cospad/keymaps/split_plus_and_zero/keymap.c81
-rw-r--r--keyboards/cospad/keymaps/split_zero/keymap.c81
4 files changed, 292 insertions, 1 deletions
diff --git a/keyboards/cospad/cospad.h b/keyboards/cospad/cospad.h
index fc52204eda..f5ae8961f1 100644
--- a/keyboards/cospad/cospad.h
+++ b/keyboards/cospad/cospad.h
@@ -125,6 +125,70 @@
{ k50, ___, k52, ___ } \
}
+
+/* 6x4 numpad with split Plus and 0 keys
+ * ,-------------------.
+ * | 00 | 01 | 02 | 03 |
+ * |----|----|----|----|
+ * | 10 | 11 | 12 | 13 |
+ * |----|----|----|----|
+ * | 20 | 21 | 22 | 23 |
+ * |----|----|----|----|
+ * | 30 | 31 | 32 | 33 |
+ * |----|----|----|----|
+ * | 40 | 41 | 42 | |
+ * |----|----|----| 43 |
+ * | 50 | 51 | 52 | |
+ * `-------------------'
+ */
+#define LAYOUT_numpad_6x4_split_plus_zero( \
+ k00, k01, k02, k03, \
+ k10, k11, k12, k13, \
+ k20, k21, k22, k23, \
+ k30, k31, k32, k33, \
+ k40, k41, k42, \
+ k50, k51, k52, k43 \
+) \
+{ \
+ { k00, k01, k02, k03 }, \
+ { k10, k11, k12, k13 }, \
+ { k20, k21, k22, k23 }, \
+ { k30, k31, k32, k33 }, \
+ { k40, k41, k42, k43 }, \
+ { k50, k51, k52, ___ } \
+}
+
+/* 6x4 numpad with split 0 key
+ * ,-------------------.
+ * | 00 | 01 | 02 | 03 |
+ * |----|----|----|----|
+ * | 10 | 11 | 12 | 13 |
+ * |----|----|----|----|
+ * | 20 | 21 | 22 | |
+ * |----|----|----| 23 |
+ * | 30 | 31 | 32 | |
+ * |----|----|----|----|
+ * | 40 | 41 | 42 | |
+ * |----|----|----| 43 |
+ * | 50 | 51 | 52 | |
+ * `-------------------'
+ */
+#define LAYOUT_numpad_6x4_split_zero( \
+ k00, k01, k02, k03, \
+ k10, k11, k12, k13, \
+ k20, k21, k22, \
+ k30, k31, k32, k23, \
+ k40, k41, k42, \
+ k50, k51, k52, k43 \
+) \
+{ \
+ { k00, k01, k02, k03 }, \
+ { k10, k11, k12, k13 }, \
+ { k20, k21, k22, k23 }, \
+ { k30, k31, k32, ___ }, \
+ { k40, k41, k42, k43 }, \
+ { k50, k51, k52, ___ } \
+}
// Add backwards compatibility for existing keymaps
#define cospad_bl_led_on backlight_enable
#define cospad_bl_led_off backlight_disable
diff --git a/keyboards/cospad/info.json b/keyboards/cospad/info.json
index 83bf81c14d..1cd197d3fd 100644
--- a/keyboards/cospad/info.json
+++ b/keyboards/cospad/info.json
@@ -102,6 +102,71 @@
{"x":2, "y":5},
{"x":3, "y":5}
]
- }
+ },
+ "LAYOUT_numpad_6x4_split_plus_zero": {
+ "key_count": 23,
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+
+ {"x":0, "y":5},
+ {"x":1, "y":5},
+ {"x":2, "y":5},
+ {"x":3, "y":4, "h":2}
+ ]
+ },
+ "LAYOUT_numpad_6x4_split_zero": {
+ "key_count": 22,
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":2, "h":2},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+
+ {"x":0, "y":5},
+ {"x":1, "y":5},
+ {"x":2, "y":5},
+ {"x":3, "y":4, "h":2}
+ ]
+ }
}
}
diff --git a/keyboards/cospad/keymaps/split_plus_and_zero/keymap.c b/keyboards/cospad/keymaps/split_plus_and_zero/keymap.c
new file mode 100644
index 0000000000..dd2ff00cd1
--- /dev/null
+++ b/keyboards/cospad/keymaps/split_plus_and_zero/keymap.c
@@ -0,0 +1,81 @@
+#include QMK_KEYBOARD_H
+
+/*
+ * This keymap is based on the default keymap for the cospad.
+ * It was adapted for the split Plus and split 0 layout focusing on the "00" key.
+ */
+
+enum custom_keycodes {
+ DBL_ZRO = SAFE_RANGE,
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case DBL_ZRO:
+ if (record->event.pressed) {
+ // when keycode DBL_ZRO is pressed
+ SEND_STRING("00");
+ } else {
+ // when keycode DBL_ZRO is released
+ }
+ break;
+
+ }
+ return true;
+};
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BL,
+ _FL
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap _BL: (Base Layer) Default Layer
+ * ,-------------------.
+ * |Esc |TAB | FN | BS |
+ * |----|----|----|----|
+ * | NL | / | * | - |
+ * |----|----|----|----|
+ * | 7 | 8 | 9 | ~ |
+ * |----|----|----|----|
+ * | 4 | 5 | 6 | + |
+ * |----|----|----|----|
+ * | 1 | 2 | 3 | |
+ * |----|----|----| En |
+ * | 0 | 00 | . | |
+ * `-------------------'
+ */
+ [_BL] = LAYOUT_numpad_6x4_split_plus_zero(
+ KC_ESC, KC_TAB, MO(_FL), KC_BSPC,
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9, KC_TILD,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3,
+ KC_P0, DBL_ZRO, KC_PDOT, KC_PENT
+ ),
+
+ /* Keymap _FL: Function Layer
+ * ,-------------------.
+ * |RGBT| | | |
+ * |----|----|----|----|
+ * |RGBM|RGBP|BTOG| |
+ * |----|----|----|----|
+ * |HUD |HUI |BON | |
+ * |----|----|----|----|
+ * |SAD |SAI |BOFF| |
+ * |----|----|----|----|
+ * |VAD |VAS |BSTP| |
+ * |----|----|----| |
+ * | | |RST | |
+ * `-------------------'
+ */
+ [_FL] = LAYOUT_numpad_6x4_split_plus_zero(
+ RGB_TOG, _______, _______, _______,
+ RGB_MOD, RGB_M_P, BL_TOGG, _______,
+ RGB_HUD, RGB_HUI, BL_ON, _______,
+ RGB_SAD, RGB_SAI, BL_OFF, _______,
+ RGB_VAD, RGB_VAI, BL_STEP,
+ _______, _______, RESET, _______
+ )
+};
diff --git a/keyboards/cospad/keymaps/split_zero/keymap.c b/keyboards/cospad/keymaps/split_zero/keymap.c
new file mode 100644
index 0000000000..3a0c7d6e4e
--- /dev/null
+++ b/keyboards/cospad/keymaps/split_zero/keymap.c
@@ -0,0 +1,81 @@
+#include QMK_KEYBOARD_H
+
+/*
+ * This keymap is based on the default keymap for the cospad.
+ * It was adapted for the split 0 layout focusing on the "00" key.
+ */
+
+enum custom_keycodes {
+ DBL_ZRO = SAFE_RANGE,
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case DBL_ZRO:
+ if (record->event.pressed) {
+ // when keycode DBL_ZRO is pressed
+ SEND_STRING("00");
+ } else {
+ // when keycode DBL_ZRO is released
+ }
+ break;
+
+ }
+ return true;
+};
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BL,
+ _FL
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap _BL: (Base Layer) Default Layer
+ * ,-------------------.
+ * |Esc |TAB | FN | BS |
+ * |----|----|----|----|
+ * | NL | / | * | - |
+ * |----|----|----|----|
+ * | 7 | 8 | 9 | |
+ * |----|----|----| + |
+ * | 4 | 5 | 6 | |
+ * |----|----|----|----|
+ * | 1 | 2 | 3 | |
+ * |----|----|----| En |
+ * | 0 | 00 | . | |
+ * `-------------------'
+ */
+ [_BL] = LAYOUT_numpad_6x4_split_zero(
+ KC_ESC, KC_TAB, MO(_FL), KC_BSPC,
+ KC_NLCK, 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, DBL_ZRO, KC_PDOT, KC_PENT
+ ),
+
+ /* Keymap _FL: Function Layer
+ * ,-------------------.
+ * |RGBT| | | |
+ * |----|----|----|----|
+ * |RGBM|RGBP|BTOG| |
+ * |----|----|----|----|
+ * |HUD |HUI |BON | |
+ * |----|----|----| |
+ * |SAD |SAI |BOFF| |
+ * |----|----|----|----|
+ * |VAD |VAS |BSTP| |
+ * |----|----|----| |
+ * | | |RST | |
+ * `-------------------'
+ */
+ [_FL] = LAYOUT_numpad_6x4_split_zero(
+ RGB_TOG, _______, _______, _______,
+ RGB_MOD, RGB_M_P, BL_TOGG, _______,
+ RGB_HUD, RGB_HUI, BL_ON,
+ RGB_SAD, RGB_SAI, BL_OFF, _______,
+ RGB_VAD, RGB_VAI, BL_STEP,
+ _______, _______, RESET, _______
+ )
+};