~ruther/qmk_firmware

f7722ef9ca485e3bc4f3897bb4ccfafd69b5db82 — johannbl 5 years ago 76cb2b1
[Keyboard] Added two new layouts for the cospad (#8502)

* creation

new numpad layout for 23 keys
creation of new keymap

* Update cospad.h

* Update info.json

* Update keymap.c

* Update keymap.c

Added a macro for the "00" key.

* added two new keymap. one for each new layout.

The new keymaps are based on the default keymap but focus on

* Update keyboards/cospad/cospad.h

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/cospad.h

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/keymaps/johannbl/numpad2/keymap.c

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/info.json

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/keymaps/johannbl/keymap.c

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/keymaps/johannbl/numpad2/keymap.c

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/info.json

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/keymaps/johannbl/numpad3/keymap.c

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/keymaps/johannbl/numpad3/keymap.c

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/keymaps/johannbl/numpad3/keymap.c

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keymap.c

layout name fix.

* Update keyboards/cospad/keymaps/johannbl/keymap.c

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/info.json

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/keymaps/johannbl/keymap.c

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/cospad/keymaps/johannbl/keymap.c

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>

* Delete keymap.c

* Rename keyboards/cospad/keymaps/johannbl/numpad2/keymap.c to keyboards/cospad/keymaps/johannbl/split_plus_and_zero/keymap.c

* Rename keyboards/cospad/keymaps/johannbl/numpad3/keymap.c to keyboards/cospad/keymaps/johannbl/split_zero/keymap.c

* Rename keyboards/cospad/keymaps/johannbl/split_plus_and_zero/keymap.c to keyboards/cospad/keymaps/split_plus_and_zero/keymap.c

* Rename keyboards/cospad/keymaps/johannbl/split_zero/keymap.c to keyboards/cospad/keymaps/split_zero/keymap.c

* Update keyboards/cospad/keymaps/split_plus_and_zero/keymap.c

Co-Authored-By: Nick Brassel <nick@tzarc.org>

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
M keyboards/cospad/cospad.h => keyboards/cospad/cospad.h +64 -0
@@ 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

M keyboards/cospad/info.json => keyboards/cospad/info.json +66 -1
@@ 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}
            ]
        }        
    }
}

A keyboards/cospad/keymaps/split_plus_and_zero/keymap.c => keyboards/cospad/keymaps/split_plus_and_zero/keymap.c +81 -0
@@ 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,   _______
    )
};

A keyboards/cospad/keymaps/split_zero/keymap.c => keyboards/cospad/keymaps/split_zero/keymap.c +81 -0
@@ 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,   _______
    )
};