From fa0b4511dddffa56812a86ab93f90d5221f43585 Mon Sep 17 00:00:00 2001 From: tan-t <22813443+tan-t@users.noreply.github.com> Date: Fri, 14 Jul 2023 16:22:38 +0900 Subject: [PATCH] [Keyboard] add mothwing (#19342) Co-authored-by: Ryan Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/mothwing/info.json | 78 +++++++++++++++++++++ keyboards/mothwing/keymaps/default/keymap.c | 72 +++++++++++++++++++ keyboards/mothwing/keymaps/via/keymap.c | 72 +++++++++++++++++++ keyboards/mothwing/keymaps/via/rules.mk | 1 + keyboards/mothwing/readme.md | 23 ++++++ keyboards/mothwing/rules.mk | 0 6 files changed, 246 insertions(+) create mode 100644 keyboards/mothwing/info.json create mode 100644 keyboards/mothwing/keymaps/default/keymap.c create mode 100644 keyboards/mothwing/keymaps/via/keymap.c create mode 100644 keyboards/mothwing/keymaps/via/rules.mk create mode 100644 keyboards/mothwing/readme.md create mode 100644 keyboards/mothwing/rules.mk diff --git a/keyboards/mothwing/info.json b/keyboards/mothwing/info.json new file mode 100644 index 0000000000..350c52c72e --- /dev/null +++ b/keyboards/mothwing/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "mothwing", + "manufacturer": "Luana co.ltd.", + "url": "", + "maintainer": "tan-t", + "usb": { + "vid": "0x4D77", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3"], + "rows": ["D4", "C6", "D7", "E6"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D2" + }, + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 1.18}, + {"matrix": [0, 1], "x": 1, "y": 1.03}, + {"matrix": [0, 2], "x": 2, "y": 0.35}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.05}, + {"matrix": [0, 5], "x": 5, "y": 0.1}, + + {"matrix": [4, 5], "x": 11.5, "y": 0.1}, + {"matrix": [4, 4], "x": 12.5, "y": 0.05}, + {"matrix": [4, 3], "x": 13.5, "y": 0}, + {"matrix": [4, 2], "x": 14.5, "y": 0.35}, + {"matrix": [4, 1], "x": 15.5, "y": 1.08}, + {"matrix": [4, 0], "x": 16.5, "y": 1.18}, + + {"matrix": [1, 0], "x": 0, "y": 2.18}, + {"matrix": [1, 1], "x": 1, "y": 2.03}, + {"matrix": [1, 2], "x": 2, "y": 1.35}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.05}, + {"matrix": [1, 5], "x": 5, "y": 1.1}, + + {"matrix": [5, 5], "x": 11.5, "y": 1.1}, + {"matrix": [5, 4], "x": 12.5, "y": 1.05}, + {"matrix": [5, 3], "x": 13.5, "y": 1}, + {"matrix": [5, 2], "x": 14.5, "y": 1.35}, + {"matrix": [5, 1], "x": 15.5, "y": 2.03}, + {"matrix": [5, 0], "x": 16.5, "y": 2.18}, + + {"matrix": [2, 0], "x": 0, "y": 3.18}, + {"matrix": [2, 1], "x": 1, "y": 3.03}, + {"matrix": [2, 2], "x": 2, "y": 2.35}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.05}, + {"matrix": [2, 5], "x": 5, "y": 2.1}, + + {"matrix": [6, 5], "x": 11.5, "y": 2.1}, + {"matrix": [6, 4], "x": 12.5, "y": 2.05}, + {"matrix": [6, 3], "x": 13.5, "y": 2}, + {"matrix": [6, 2], "x": 14.5, "y": 2.35}, + {"matrix": [6, 1], "x": 15.5, "y": 3.03}, + {"matrix": [6, 0], "x": 16.5, "y": 3.18}, + + {"matrix": [3, 2], "x": 4, "y": 3.05}, + {"matrix": [3, 3], "x": 5, "y": 3.1}, + {"matrix": [3, 4], "x": 6, "y": 3.2, "w": 1.25}, + {"matrix": [3, 5], "x": 7.25, "y": 3.5}, + + {"matrix": [7, 5], "x": 9.25, "y": 3.5}, + {"matrix": [7, 4], "x": 10.25, "y": 3.2, "w": 1.25}, + {"matrix": [7, 3], "x": 11.5, "y": 3.1}, + {"matrix": [7, 2], "x": 12.5, "y": 3.05} + ] + } + } +} diff --git a/keyboards/mothwing/keymaps/default/keymap.c b/keyboards/mothwing/keymaps/default/keymap.c new file mode 100644 index 0000000000..0c6923403d --- /dev/null +++ b/keyboards/mothwing/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +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_number { + _QWERTY, + _RAISE, + _LOWER, +}; + +#define KC_L_SPC LT(_LOWER, KC_SPC) // lower +#define KC_R_ENT LT(_RAISE, KC_ENT) // raise +#define KC_G_JA LGUI_T(KC_LNG1) // cmd or win +#define KC_G_EN LGUI_T(KC_LNG2) // cmd or win +#define KC_C_BS LCTL_T(KC_BSPC) // ctrl +#define KC_A_DEL ALT_T(KC_DEL) // alt + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + //,--------+--------+---------+--------+---------+--------. ,--------+---------+--------+---------+--------+--------. + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + 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_A_DEL, KC_G_EN, KC_L_SPC, KC_C_BS, KC_C_BS, KC_R_ENT, KC_G_JA, KC_A_DEL + // `----------+--------+---------+--------' `--------+---------+--------+---------' + ), + + [_RAISE] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + _______, _______, _______, _______, _______, _______, _______, QK_BOOT + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), + + [_LOWER] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + QK_BOOT , _______, _______, _______, _______, _______, _______, _______ + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), +}; diff --git a/keyboards/mothwing/keymaps/via/keymap.c b/keyboards/mothwing/keymaps/via/keymap.c new file mode 100644 index 0000000000..ba3f5353d9 --- /dev/null +++ b/keyboards/mothwing/keymaps/via/keymap.c @@ -0,0 +1,72 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +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_number { + _QWERTY, + _RAISE, + _LOWER +}; + +#define KC_L_SPC LT(_LOWER, KC_SPC) // lower +#define KC_R_ENT LT(_RAISE, KC_ENT) // raise +#define KC_G_JA LGUI_T(KC_LNG1) // cmd or win +#define KC_G_EN LGUI_T(KC_LNG2) // cmd or win +#define KC_C_BS LCTL_T(KC_BSPC) // ctrl +#define KC_A_DEL ALT_T(KC_DEL) // alt + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + //,--------+--------+---------+--------+---------+--------. ,--------+---------+--------+---------+--------+--------. + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + 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_A_DEL, KC_G_EN, KC_L_SPC, KC_C_BS, KC_C_BS, KC_R_ENT, KC_G_JA, KC_A_DEL + // `----------+--------+---------+--------' `--------+---------+--------+---------' + ), + + [_RAISE] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + _______, _______, _______, _______, _______, _______, _______, QK_BOOT + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), + + [_LOWER] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + QK_BOOT , _______, _______, _______, _______, _______, _______, _______ + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ) +}; diff --git a/keyboards/mothwing/keymaps/via/rules.mk b/keyboards/mothwing/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/mothwing/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mothwing/readme.md b/keyboards/mothwing/readme.md new file mode 100644 index 0000000000..184f608c5d --- /dev/null +++ b/keyboards/mothwing/readme.md @@ -0,0 +1,23 @@ +# MOTHWING + +A split keyboard with 3x6 vertically staggered keys and 4 thumb keys. + +* Keyboard Maintainer: [tan-t](https://github.com/tan-t) +* Hardware Supported: MOTHWING PCB +* Hardware Availability: currently unavailable. merch will be open around August 2023. + +Make example for this keyboard (after setting up your build environment): + + make mothwing:default + +Flashing example for this keyboard: + + make mothwing:default:flash + +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). + +## Bootloader + +Enter the bootloader by: + +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mothwing/rules.mk b/keyboards/mothwing/rules.mk new file mode 100644 index 0000000000..e69de29bb2