From 46f720997959c0d01a05ec03b917824e88dbb617 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 25 Apr 2022 20:57:19 +0900 Subject: [PATCH 01/26] spreadwriter --- .../takashicompany/spreadwriter/config.h | 56 +++++++++++++++++++ .../takashicompany/spreadwriter/info.json | 48 ++++++++++++++++ .../spreadwriter/keymaps/default/keymap.c | 10 ++++ .../takashicompany/spreadwriter/readme.md | 27 +++++++++ .../takashicompany/spreadwriter/rules.mk | 1 + .../spreadwriter/spreadwriter.c | 17 ++++++ .../spreadwriter/spreadwriter.h | 43 ++++++++++++++ 7 files changed, 202 insertions(+) create mode 100644 keyboards/takashicompany/spreadwriter/config.h create mode 100644 keyboards/takashicompany/spreadwriter/info.json create mode 100644 keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c create mode 100644 keyboards/takashicompany/spreadwriter/readme.md create mode 100644 keyboards/takashicompany/spreadwriter/rules.mk create mode 100644 keyboards/takashicompany/spreadwriter/spreadwriter.c create mode 100644 keyboards/takashicompany/spreadwriter/spreadwriter.h diff --git a/keyboards/takashicompany/spreadwriter/config.h b/keyboards/takashicompany/spreadwriter/config.h new file mode 100644 index 000000000000..1859b53a3e20 --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/config.h @@ -0,0 +1,56 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7463 // tc = takashicompany +#define PRODUCT_ID 0x0023 +#define DEVICE_VER 0x0001 +#define MANUFACTURER takashicompany +#define PRODUCT Spreadwriter + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 7 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3, B2, B6 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, D2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 53 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#endif diff --git a/keyboards/takashicompany/spreadwriter/info.json b/keyboards/takashicompany/spreadwriter/info.json new file mode 100644 index 000000000000..079545384efb --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/info.json @@ -0,0 +1,48 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "takashicompany/spreadwriter", + "maintainer": "takashicompany", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C2", "C2", "C2", "C2"], + "rows": ["D1", "D1", "D1", "D1"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + { "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 }, + { "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 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c new file mode 100644 index 000000000000..30f286cac1b8 --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -0,0 +1,10 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT( + KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_TAB, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_1, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL, + KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_2, KC_3, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_RSFT, + KC_LCTL, KC_LGUI, KC_5, KC_6, KC_LALT, ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_4, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL, KC_7, KC_8 + ) +}; diff --git a/keyboards/takashicompany/spreadwriter/readme.md b/keyboards/takashicompany/spreadwriter/readme.md new file mode 100644 index 000000000000..843bbb7fb12c --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/readme.md @@ -0,0 +1,27 @@ +# takashicompany/spreadwriter + +![takashicompany/spreadwriter](imgur.com image replace me!) + +*A short description of the keyboard/project* + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: *The PCBs, controllers supported* +* Hardware Availability: *Links to where you can find this hardware* + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/spreadwriter:default + +Flashing example for this keyboard: + + make takashicompany/spreadwriter: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 in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/takashicompany/spreadwriter/rules.mk b/keyboards/takashicompany/spreadwriter/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.c b/keyboards/takashicompany/spreadwriter/spreadwriter.c new file mode 100644 index 000000000000..dc8ae6ff69fd --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.c @@ -0,0 +1,17 @@ +/* Copyright 2021 takashicompany + * + * 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 "spreadwriter.h" diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.h b/keyboards/takashicompany/spreadwriter/spreadwriter.h new file mode 100644 index 000000000000..0c69488524f6 --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.h @@ -0,0 +1,43 @@ +/* Copyright 2021 takashicompany + * + * 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" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k01, k02, k03, k04, k05, k06, k30, k31, k32, k33, k34, k35, \ + k08, k09, k10, k11, k12, k13, k14, k37, k38, k39, k40, k41, k42, \ + k15, k16, k17, k18, k19, k20, k21, k43, k44, k45, k46, k47, k48, k49, \ + k22, k23, k24, k25, k26, k27, k28, k36, k50, k51, k52, k53, k54, k55, k56 \ +) { \ + { k01, k02, k03, k04, k05, k06, KC_NO }, \ + { k08, k09, k10, k11, k12, k13, k14 }, \ + { k15, k16, k17, k18, k19, k20, k21 }, \ + { k22, k23, k24, k25, k26, k27, k28 }, \ + { KC_NO, k30, k31, k32, k33, k34, k35 }, \ + { k36, k37, k38, k39, k40, k41, k42 }, \ + { k43, k44, k45, k46, k47, k48, k49 }, \ + { k50, k51, k52, k53, k54, k55, k56 } \ +} From dbef504b1c56d9dd1e795ad9e49ff61905917a6f Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 26 Apr 2022 00:26:39 +0900 Subject: [PATCH 02/26] keymap --- keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index 30f286cac1b8..e4261de6dbcd 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -3,7 +3,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - KC_TAB, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_1, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL, + KC_TAB, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, RESET, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL, KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_2, KC_3, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_RSFT, KC_LCTL, KC_LGUI, KC_5, KC_6, KC_LALT, ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_4, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL, KC_7, KC_8 ) From e0f29b72322f031366f55c4455911c6cdfea74bf Mon Sep 17 00:00:00 2001 From: takashicompany Date: Wed, 27 Apr 2022 00:33:09 +0900 Subject: [PATCH 03/26] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spreadwriter/keymaps/default/keymap.c | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index e4261de6dbcd..6acb4279ded9 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -2,9 +2,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( - KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - KC_TAB, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, RESET, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL, + KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_X, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL, KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_2, KC_3, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_RSFT, - KC_LCTL, KC_LGUI, KC_5, KC_6, KC_LALT, ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_4, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL, KC_7, KC_8 + KC_TAB, KC_LGUI, KC_5, KC_6, KC_LALT, ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_4, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL, KC_7, KC_8 + ), + + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, RESET, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; From cbb930d27549bb5bf92c39d1dfd9b45e6f14ee45 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Wed, 27 Apr 2022 00:45:39 +0900 Subject: [PATCH 04/26] rules.mk --- keyboards/takashicompany/spreadwriter/rules.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/keyboards/takashicompany/spreadwriter/rules.mk b/keyboards/takashicompany/spreadwriter/rules.mk index 6e7633bfe015..646cac23ea9e 100644 --- a/keyboards/takashicompany/spreadwriter/rules.mk +++ b/keyboards/takashicompany/spreadwriter/rules.mk @@ -1 +1,5 @@ -# This file intentionally left blank + +# Bootloader selection +BOOTLOADER = caterina + +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow \ No newline at end of file From e153374ab15f1c8073ae50fe9e31d57bfbc38cb8 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 3 May 2022 17:32:58 +0900 Subject: [PATCH 05/26] fix keymap --- .../takashicompany/spreadwriter/keymaps/default/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index 6acb4279ded9..9a3ffede890f 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -2,10 +2,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( - KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_X, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL, - KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_2, KC_3, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_RSFT, - KC_TAB, KC_LGUI, KC_5, KC_6, KC_LALT, ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_4, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL, KC_7, KC_8 + KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_X, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, + KC_LCTL, KC_TAB, KC_LGUI, KC_LALT, KC_LALT, SFT_T(KC_LANG2), SFT_T(KC_TAB), KC_4, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT ), LAYOUT( From 9f9f9812908ee33324e63b13bd34c06f9f429283 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 3 May 2022 18:13:28 +0900 Subject: [PATCH 06/26] add rotary encoder --- .../takashicompany/spreadwriter/config.h | 4 ++++ .../spreadwriter/keymaps/default/keymap.c | 12 +++++++---- .../takashicompany/spreadwriter/rules.mk | 4 ++-- .../spreadwriter/spreadwriter.c | 20 +++++++++++++++++++ .../spreadwriter/spreadwriter.h | 7 ++++--- 5 files changed, 38 insertions(+), 9 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/config.h b/keyboards/takashicompany/spreadwriter/config.h index 1859b53a3e20..cfd635160649 100644 --- a/keyboards/takashicompany/spreadwriter/config.h +++ b/keyboards/takashicompany/spreadwriter/config.h @@ -32,6 +32,10 @@ #define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, D2 } #define UNUSED_PINS +#define ENCODER_RESOLUTION 4 +#define ENCODERS_PAD_A { D1 } +#define ENCODERS_PAD_B { D0 } + /* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index 9a3ffede890f..0285b397ddca 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -5,27 +5,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_X, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, - KC_LCTL, KC_TAB, KC_LGUI, KC_LALT, KC_LALT, SFT_T(KC_LANG2), SFT_T(KC_TAB), KC_4, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT + KC_LCTL, KC_TAB, KC_LGUI, KC_LALT, KC_LALT, SFT_T(KC_LANG2), SFT_T(KC_TAB), KC_4, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + KC_WH_U, KC_WH_D ), LAYOUT( KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS ), LAYOUT( KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS ), LAYOUT( RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, RESET, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/takashicompany/spreadwriter/rules.mk b/keyboards/takashicompany/spreadwriter/rules.mk index 646cac23ea9e..74622b6ced21 100644 --- a/keyboards/takashicompany/spreadwriter/rules.mk +++ b/keyboards/takashicompany/spreadwriter/rules.mk @@ -1,5 +1,5 @@ - # Bootloader selection BOOTLOADER = caterina +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow \ No newline at end of file +ENCODER_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.c b/keyboards/takashicompany/spreadwriter/spreadwriter.c index dc8ae6ff69fd..2bee2eededad 100644 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.c +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.c @@ -15,3 +15,23 @@ */ #include "spreadwriter.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + keypos_t key; + if (index == 0) { + if (clockwise) { + key.row = 4; + key.col = 0; + } else { + key.row = 0; + key.col = 6; + } + uint8_t layer = layer_switch_get_layer(key); + uint16_t keycode = keymap_key_to_keycode(layer, key); + + tap_code16(keycode); + return false; + } + + return true; +} diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.h b/keyboards/takashicompany/spreadwriter/spreadwriter.h index 0c69488524f6..03fc057f5126 100644 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.h +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.h @@ -30,13 +30,14 @@ k01, k02, k03, k04, k05, k06, k30, k31, k32, k33, k34, k35, \ k08, k09, k10, k11, k12, k13, k14, k37, k38, k39, k40, k41, k42, \ k15, k16, k17, k18, k19, k20, k21, k43, k44, k45, k46, k47, k48, k49, \ - k22, k23, k24, k25, k26, k27, k28, k36, k50, k51, k52, k53, k54, k55, k56 \ + k22, k23, k24, k25, k26, k27, k28, k36, k50, k51, k52, k53, k54, k55, k56, \ + k07, k29 \ ) { \ - { k01, k02, k03, k04, k05, k06, KC_NO }, \ + { k01, k02, k03, k04, k05, k06, k07 }, \ { k08, k09, k10, k11, k12, k13, k14 }, \ { k15, k16, k17, k18, k19, k20, k21 }, \ { k22, k23, k24, k25, k26, k27, k28 }, \ - { KC_NO, k30, k31, k32, k33, k34, k35 }, \ + { k29, k30, k31, k32, k33, k34, k35 }, \ { k36, k37, k38, k39, k40, k41, k42 }, \ { k43, k44, k45, k46, k47, k48, k49 }, \ { k50, k51, k52, k53, k54, k55, k56 } \ From 97ff4e0244ea2406e0b871934d65dcc04aea9809 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 3 May 2022 19:30:34 +0900 Subject: [PATCH 07/26] fix keymap --- .../spreadwriter/keymaps/default/keymap.c | 45 ++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index 0285b397ddca..7b64e7eaf0ab 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -1,11 +1,16 @@ #include QMK_KEYBOARD_H +enum custom_keycodes { + SPREADWRITER = SAFE_RANGE, + WEB, +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, KC_X, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, - KC_LCTL, KC_TAB, KC_LGUI, KC_LALT, KC_LALT, SFT_T(KC_LANG2), SFT_T(KC_TAB), KC_4, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + TG(4), KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, SFT_T(KC_LANG2), SFT_T(KC_TAB), WEB, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_WH_U, KC_WH_D ), @@ -31,5 +36,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, RESET, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS ) + }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SPREADWRITER: + if (record->event.pressed) { + SEND_STRING("Spreadwriter"); + rgblight_toggle(); + } + return false; + + case WEB: + if (record->event.pressed) { + SEND_STRING("https://github.com/takashicompany/spreadwriter"); + } + return false; + } + + return true; +} From a44ed666a318bea870e2aff1b7452a54dba85bc4 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 3 May 2022 22:19:59 +0900 Subject: [PATCH 08/26] update info.json --- .../takashicompany/spreadwriter/info.json | 501 +++++++++++++++++- 1 file changed, 477 insertions(+), 24 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/info.json b/keyboards/takashicompany/spreadwriter/info.json index 079545384efb..ff5de4728282 100644 --- a/keyboards/takashicompany/spreadwriter/info.json +++ b/keyboards/takashicompany/spreadwriter/info.json @@ -1,8 +1,8 @@ { "manufacturer": "takashicompany", - "keyboard_name": "takashicompany/spreadwriter", + "keyboard_name": "Spreadwriter", "maintainer": "takashicompany", - "bootloader": "atmel-dfu", + "bootloader": "caterina", "diode_direction": "COL2ROW", "features": { "bootmagic": true, @@ -13,35 +13,488 @@ "nkro": true }, "matrix_pins": { - "cols": ["C2", "C2", "C2", "C2"], - "rows": ["D1", "D1", "D1", "D1"] + "cols": [ + "D4", + "C6", + "D7", + "E6", + "B4", + "B5", + "D2" + ], + "rows": [ + "F4", + "F5", + "F6", + "F7", + "B1", + "B3", + "B2", + "B6" + ] }, "processor": "atmega32u4", - "url": "", + "url": "https://github.com/takashicompany/spreadwriter", "usb": { "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" + "pid": "0x0023", + "vid": "0x7463" }, "layouts": { - "LAYOUT_ortho_4x4": { + "LAYOUT": { "layout": [ - { "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 }, - { "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 }, - { "matrix": [2, 0], "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1, "y": 2 }, - { "matrix": [2, 2], "x": 2, "y": 2 }, - { "matrix": [2, 3], "x": 3, "y": 2 }, - { "matrix": [3, 0], "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1, "y": 3 }, - { "matrix": [3, 2], "x": 2, "y": 3 }, - { "matrix": [3, 3], "x": 3, "y": 3 } + { + "matrix": [ + 0, + 6 + ], + "x": 7, + "y": 4.25 + }, + { + "matrix": [ + 4, + 0 + ], + "x": 8, + "y": 4.25 + }, + { + "matrix": [ + 0, + 0 + ], + "x": -0.5, + "y": -11.25 + }, + { + "matrix": [ + 1, + 0 + ], + "x": -0.5, + "y": -10.25 + }, + { + "matrix": [ + 2, + 0 + ], + "x": -0.5, + "y": -9.25 + }, + { + "matrix": [ + 3, + 0 + ], + "x": -0.5, + "y": -8.25 + }, + { + "matrix": [ + 0, + 3 + ], + "x": 2.5, + "y": -26.75 + }, + { + "matrix": [ + 0, + 4 + ], + "x": 3.5, + "y": -26.75 + }, + { + "matrix": [ + 0, + 5 + ], + "x": 4.5, + "y": -26.75 + }, + { + "matrix": [ + 0, + 2 + ], + "x": 1.5, + "y": -26.5 + }, + { + "matrix": [ + 0, + 1 + ], + "x": 0.5, + "y": -26.25 + }, + { + "matrix": [ + 1, + 3 + ], + "x": 2.5, + "y": -25.75 + }, + { + "matrix": [ + 1, + 4 + ], + "x": 3.5, + "y": -25.75 + }, + { + "matrix": [ + 1, + 5 + ], + "x": 4.5, + "y": -25.75 + }, + { + "matrix": [ + 1, + 2 + ], + "x": 1.5, + "y": -25.5 + }, + { + "matrix": [ + 1, + 1 + ], + "x": 0.5, + "y": -25.25 + }, + { + "matrix": [ + 2, + 3 + ], + "x": 2.5, + "y": -24.75 + }, + { + "matrix": [ + 2, + 4 + ], + "x": 3.5, + "y": -24.75 + }, + { + "matrix": [ + 2, + 5 + ], + "x": 4.5, + "y": -24.75 + }, + { + "matrix": [ + 2, + 6 + ], + "x": 5.5, + "y": -24.75 + }, + { + "matrix": [ + 2, + 2 + ], + "x": 1.5, + "y": -24.5 + }, + { + "matrix": [ + 2, + 1 + ], + "x": 0.5, + "y": -24.25 + }, + { + "matrix": [ + 3, + 3 + ], + "x": 2.5, + "y": -23.75, + "h": 1.5 + }, + { + "matrix": [ + 3, + 4 + ], + "x": 3.5, + "y": -23.75 + }, + { + "matrix": [ + 3, + 5 + ], + "x": 4.5, + "y": -23.75 + }, + { + "matrix": [ + 3, + 6 + ], + "x": 5.5, + "y": -23.75 + }, + { + "matrix": [ + 3, + 2 + ], + "x": 1.5, + "y": -23.5, + "h": 1.25 + }, + { + "matrix": [ + 3, + 1 + ], + "x": 0.5, + "y": -23.25 + }, + { + "matrix": [ + 1, + 6 + ], + "x": -0.5, + "y": -23.75 + }, + { + "matrix": [ + 5, + 0 + ], + "x": -0.5, + "y": -24.75 + }, + { + "matrix": [ + 4, + 1 + ], + "x": -5.5, + "y": -43.25 + }, + { + "matrix": [ + 4, + 2 + ], + "x": -4.5, + "y": -43.25 + }, + { + "matrix": [ + 4, + 3 + ], + "x": -3.5, + "y": -43.25 + }, + { + "matrix": [ + 4, + 4 + ], + "x": -2.5, + "y": -43.0 + }, + { + "matrix": [ + 4, + 5 + ], + "x": -1.5, + "y": -42.75 + }, + { + "matrix": [ + 4, + 6 + ], + "x": -0.5, + "y": -42.75 + }, + { + "matrix": [ + 5, + 1 + ], + "x": -5.5, + "y": -42.25 + }, + { + "matrix": [ + 5, + 2 + ], + "x": -4.5, + "y": -42.25 + }, + { + "matrix": [ + 5, + 3 + ], + "x": -3.5, + "y": -42.25 + }, + { + "matrix": [ + 5, + 4 + ], + "x": -2.5, + "y": -42 + }, + { + "matrix": [ + 5, + 5 + ], + "x": -1.5, + "y": -41.75 + }, + { + "matrix": [ + 5, + 6 + ], + "x": -0.5, + "y": -41.75 + }, + { + "matrix": [ + 6, + 0 + ], + "x": -6.5, + "y": -41.25 + }, + { + "matrix": [ + 6, + 1 + ], + "x": -5.5, + "y": -41.25 + }, + { + "matrix": [ + 6, + 2 + ], + "x": -4.5, + "y": -41.25 + }, + { + "matrix": [ + 6, + 3 + ], + "x": -3.5, + "y": -41.25 + }, + { + "matrix": [ + 6, + 4 + ], + "x": -2.5, + "y": -41.0 + }, + { + "matrix": [ + 6, + 5 + ], + "x": -1.5, + "y": -40.75 + }, + { + "matrix": [ + 6, + 6 + ], + "x": -0.5, + "y": -40.75 + }, + { + "matrix": [ + 7, + 0 + ], + "x": -6.5, + "y": -40.25 + }, + { + "matrix": [ + 7, + 1 + ], + "x": -5.5, + "y": -40.25 + }, + { + "matrix": [ + 7, + 2 + ], + "x": -4.5, + "y": -40.25 + }, + { + "matrix": [ + 7, + 3 + ], + "x": -3.5, + "y": -40.25, + "h": 1.5 + }, + { + "matrix": [ + 7, + 4 + ], + "x": -2.5, + "y": -40, + "h": 1.25 + }, + { + "matrix": [ + 7, + 5 + ], + "x": -1.5, + "y": -39.75 + }, + { + "matrix": [ + 7, + 6 + ], + "x": -0.5, + "y": -39.75 + } ] } } From c69089197e9d8fc74e2c2b36e960b75281a65ef8 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 3 May 2022 22:37:36 +0900 Subject: [PATCH 09/26] fix --- keyboards/takashicompany/spreadwriter/info.json | 2 +- keyboards/takashicompany/spreadwriter/spreadwriter.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/takashicompany/spreadwriter/info.json b/keyboards/takashicompany/spreadwriter/info.json index ff5de4728282..50067f2c6f8f 100644 --- a/keyboards/takashicompany/spreadwriter/info.json +++ b/keyboards/takashicompany/spreadwriter/info.json @@ -41,7 +41,7 @@ "vid": "0x7463" }, "layouts": { - "LAYOUT": { + "LAYOUT_FROM_JSON": { "layout": [ { "matrix": [ diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.h b/keyboards/takashicompany/spreadwriter/spreadwriter.h index 03fc057f5126..af1e6647e90b 100644 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.h +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.h @@ -26,6 +26,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ + #define LAYOUT( \ k01, k02, k03, k04, k05, k06, k30, k31, k32, k33, k34, k35, \ k08, k09, k10, k11, k12, k13, k14, k37, k38, k39, k40, k41, k42, \ From aae2b10c9fe507c9f7a3743e511a4b31e88ee37b Mon Sep 17 00:00:00 2001 From: takashicompany Date: Thu, 5 May 2022 21:21:46 +0900 Subject: [PATCH 10/26] update info.json --- .../takashicompany/spreadwriter/info.json | 386 +++++++++--------- 1 file changed, 191 insertions(+), 195 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/info.json b/keyboards/takashicompany/spreadwriter/info.json index 50067f2c6f8f..3b3f27059677 100644 --- a/keyboards/takashicompany/spreadwriter/info.json +++ b/keyboards/takashicompany/spreadwriter/info.json @@ -46,454 +46,450 @@ { "matrix": [ 0, - 6 - ], - "x": 7, - "y": 4.25 - }, - { - "matrix": [ - 4, 0 ], - "x": 8, - "y": 4.25 + "x": 0, + "y": 0.5 }, { "matrix": [ 0, - 0 - ], - "x": -0.5, - "y": -11.25 - }, - { - "matrix": [ - 1, - 0 - ], - "x": -0.5, - "y": -10.25 - }, - { - "matrix": [ - 2, - 0 + 1 ], - "x": -0.5, - "y": -9.25 + "x": 1, + "y": 0.5 }, { "matrix": [ - 3, - 0 + 0, + 2 ], - "x": -0.5, - "y": -8.25 + "x": 2, + "y": 0.25 }, { "matrix": [ 0, 3 ], - "x": 2.5, - "y": -26.75 + "x": 3, + "y": 0 }, { "matrix": [ 0, 4 ], - "x": 3.5, - "y": -26.75 + "x": 4, + "y": 0 }, { "matrix": [ 0, 5 ], - "x": 4.5, - "y": -26.75 + "x": 5, + "y": 0 }, { "matrix": [ - 0, - 2 + 4, + 1 ], - "x": 1.5, - "y": -26.5 + "x": 10, + "y": 0 }, { "matrix": [ - 0, - 1 + 4, + 2 ], - "x": 0.5, - "y": -26.25 + "x": 11, + "y": 0 }, { "matrix": [ - 1, + 4, 3 ], - "x": 2.5, - "y": -25.75 + "x": 12, + "y": 0 }, { "matrix": [ - 1, + 4, 4 ], - "x": 3.5, - "y": -25.75 + "x": 13, + "y": 0.25 }, { "matrix": [ - 1, + 4, 5 ], - "x": 4.5, - "y": -25.75 + "x": 14, + "y": 0.5 + }, + { + "matrix": [ + 4, + 6 + ], + "x": 15, + "y": 0.5 }, { "matrix": [ 1, - 2 + 0 ], - "x": 1.5, - "y": -25.5 + "x": 0, + "y": 1.5 }, { "matrix": [ 1, 1 ], - "x": 0.5, - "y": -25.25 + "x": 1, + "y": 1.5 }, { "matrix": [ - 2, + 1, + 2 + ], + "x": 2, + "y": 1.25 + }, + { + "matrix": [ + 1, 3 ], - "x": 2.5, - "y": -24.75 + "x": 3, + "y": 1 }, { "matrix": [ - 2, + 1, 4 ], - "x": 3.5, - "y": -24.75 + "x": 4, + "y": 1 }, { "matrix": [ - 2, + 1, 5 ], - "x": 4.5, - "y": -24.75 + "x": 5, + "y": 1 }, { "matrix": [ - 2, + 1, 6 ], - "x": 5.5, - "y": -24.75 + "x": 7.5, + "y": 1 }, { "matrix": [ - 2, - 2 + 5, + 1 ], - "x": 1.5, - "y": -24.5 + "x": 10, + "y": 1 }, { "matrix": [ - 2, - 1 + 5, + 2 ], - "x": 0.5, - "y": -24.25 + "x": 11, + "y": 1 }, { "matrix": [ - 3, + 5, 3 ], - "x": 2.5, - "y": -23.75, - "h": 1.5 + "x": 12, + "y": 1 }, { "matrix": [ - 3, + 5, 4 ], - "x": 3.5, - "y": -23.75 + "x": 13, + "y": 1.25 }, { "matrix": [ - 3, + 5, 5 ], - "x": 4.5, - "y": -23.75 - }, - { - "matrix": [ - 3, - 6 - ], - "x": 5.5, - "y": -23.75 + "x": 14, + "y": 1.5 }, { "matrix": [ - 3, - 2 - ], - "x": 1.5, - "y": -23.5, - "h": 1.25 - }, - { - "matrix": [ - 3, - 1 - ], - "x": 0.5, - "y": -23.25 - }, - { - "matrix": [ - 1, + 5, 6 ], - "x": -0.5, - "y": -23.75 + "x": 15, + "y": 1.5 }, { "matrix": [ - 5, + 2, 0 ], - "x": -0.5, - "y": -24.75 + "x": 0, + "y": 2.5 }, { "matrix": [ - 4, + 2, 1 ], - "x": -5.5, - "y": -43.25 + "x": 1, + "y": 2.5 }, { "matrix": [ - 4, + 2, 2 ], - "x": -4.5, - "y": -43.25 + "x": 2, + "y": 2.25 }, { "matrix": [ - 4, + 2, 3 ], - "x": -3.5, - "y": -43.25 + "x": 3, + "y": 2 }, { "matrix": [ - 4, + 2, 4 ], - "x": -2.5, - "y": -43.0 + "x": 4, + "y": 2 }, { "matrix": [ - 4, + 2, 5 ], - "x": -1.5, - "y": -42.75 + "x": 5, + "y": 2 }, { "matrix": [ - 4, + 2, 6 ], - "x": -0.5, - "y": -42.75 + "x": 6, + "y": 2 }, { "matrix": [ - 5, + 6, + 0 + ], + "x": 9, + "y": 2 + }, + { + "matrix": [ + 6, 1 ], - "x": -5.5, - "y": -42.25 + "x": 10, + "y": 2 }, { "matrix": [ - 5, + 6, 2 ], - "x": -4.5, - "y": -42.25 + "x": 11, + "y": 2 }, { "matrix": [ - 5, + 6, 3 ], - "x": -3.5, - "y": -42.25 + "x": 12, + "y": 2 }, { "matrix": [ - 5, + 6, 4 ], - "x": -2.5, - "y": -42 + "x": 13, + "y": 2.25 }, { "matrix": [ - 5, + 6, 5 ], - "x": -1.5, - "y": -41.75 + "x": 14, + "y": 2.5 }, { "matrix": [ - 5, + 6, 6 ], - "x": -0.5, - "y": -41.75 + "x": 15, + "y": 2.5 }, { "matrix": [ - 6, + 3, 0 ], - "x": -6.5, - "y": -41.25 + "x": 0, + "y": 3.5 }, { "matrix": [ - 6, + 3, 1 ], - "x": -5.5, - "y": -41.25 + "x": 1, + "y": 3.5 }, { "matrix": [ - 6, + 3, 2 ], - "x": -4.5, - "y": -41.25 + "x": 2, + "y": 3.25 }, { "matrix": [ - 6, + 3, 3 ], - "x": -3.5, - "y": -41.25 + "x": 3, + "y": 3 }, { "matrix": [ - 6, + 3, 4 ], - "x": -2.5, - "y": -41.0 + "x": 4, + "y": 3 }, { "matrix": [ - 6, + 3, 5 ], - "x": -1.5, - "y": -40.75 + "x": 5, + "y": 3 }, { "matrix": [ - 6, + 3, 6 ], - "x": -0.5, - "y": -40.75 + "x": 6, + "y": 3 + }, + { + "matrix": [ + 5, + 0 + ], + "x": 7.5, + "y": 3 }, { "matrix": [ 7, 0 ], - "x": -6.5, - "y": -40.25 + "x": 9, + "y": 3 }, { "matrix": [ 7, 1 ], - "x": -5.5, - "y": -40.25 + "x": 10, + "y": 3 }, { "matrix": [ 7, 2 ], - "x": -4.5, - "y": -40.25 + "x": 11, + "y": 3 }, { "matrix": [ 7, 3 ], - "x": -3.5, - "y": -40.25, - "h": 1.5 + "x": 12, + "y": 3 }, { "matrix": [ 7, 4 ], - "x": -2.5, - "y": -40, - "h": 1.25 + "x": 13, + "y": 3.25 }, { "matrix": [ 7, 5 ], - "x": -1.5, - "y": -39.75 + "x": 14, + "y": 3.5 }, { "matrix": [ 7, 6 ], - "x": -0.5, - "y": -39.75 + "x": 15, + "y": 3.5 + }, + { + "matrix": [ + 0, + 6 + ], + "x": 7, + "y": 4.25 + }, + { + "matrix": [ + 4, + 0 + ], + "x": 8, + "y": 4.25 } ] } From dffbb2f3d6d263cb83cd10deac72cd25992f84f9 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Sun, 8 May 2022 22:41:37 +0900 Subject: [PATCH 11/26] fix all --- .../takashicompany/spreadwriter/info.json | 2 +- .../spreadwriter/keymaps/default/keymap.c | 158 +++++++++++++++++- .../takashicompany/spreadwriter/rules.mk | 4 +- .../spreadwriter/spreadwriter.h | 2 + 4 files changed, 158 insertions(+), 8 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/info.json b/keyboards/takashicompany/spreadwriter/info.json index 3b3f27059677..d6897cf04558 100644 --- a/keyboards/takashicompany/spreadwriter/info.json +++ b/keyboards/takashicompany/spreadwriter/info.json @@ -41,7 +41,7 @@ "vid": "0x7463" }, "layouts": { - "LAYOUT_FROM_JSON": { + "LAYOUT": { "layout": [ { "matrix": [ diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index 7b64e7eaf0ab..5f9434bda8e2 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -2,15 +2,45 @@ enum custom_keycodes { SPREADWRITER = SAFE_RANGE, - WEB, + WEB, + SPECIAL }; +// 必要な数のタップダンス状態のタイプを定義します +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +enum { + QUOT_LAYR, // カスタムタップダンスキー。他のタップダンスキーはこの列挙型に追加します +}; + +// タップダンスキーで使われる関数を宣言します + +// 全てのタップダンスに関連する関数 +td_state_t cur_dance(qk_tap_dance_state_t *state); + +// 個別のタップダンスに関連する関数 +void ql_finished(qk_tap_dance_state_t *state, void *user_data); +void ql_reset(qk_tap_dance_state_t *state, void *user_data); + +uint8_t _MY_LAYER = 4; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, - TG(4), KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, SFT_T(KC_LANG2), SFT_T(KC_TAB), WEB, KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LANG2), SFT_T(KC_TAB), TD(QUOT_LAYR), LT(6, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_WH_U, KC_WH_D ), @@ -39,14 +69,46 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), LAYOUT( - KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_JYEN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_JYEN), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_LBRC), S(KC_RBRC), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_NUHS), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_RO), KC_TRNS, KC_TRNS, KC_TRNS ), LAYOUT( + KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), G(KC_JYEN), KC_TRNS, + KC_LCTL, S(KC_EQL), S(KC_LBRC), S(KC_SLSH), S(KC_MINS), S(KC_RO), KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_RBRC), S(KC_NUHS), S(KC_JYEN), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -70,7 +132,91 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING("https://github.com/takashicompany/spreadwriter"); } return false; + + case SPECIAL: + if (record->event.pressed) { + add_mods(MOD_MASK_SHIFT); + layer_on(4); + } else { + del_mods(MOD_MASK_SHIFT); + layer_off(4); + } + } return true; } + +// 現在のタップダンスの状態を決定します +td_state_t cur_dance(qk_tap_dance_state_t *state) { + // if (state->count == 1) { + // if (!state->pressed) return TD_SINGLE_TAP; + // else return TD_SINGLE_HOLD; + // } // else if (state->count == 2) return TD_DOUBLE_TAP; + // else return TD_UNKNOWN; + + if (state->count == 1 && state->pressed) { + return TD_SINGLE_HOLD; + } // else if (state->count == 2) return TD_DOUBLE_TAP; + return TD_SINGLE_TAP; +} + +// この例のタップダンスキーに関連付けられた "tap" 構造体を初期化します +static td_tap_t ql_tap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +// タップダンスキーの動作をコントロールする関数 +void ql_finished(qk_tap_dance_state_t *state, void *user_data) { + //if (!state->interrupted) { + + ql_tap_state.state = cur_dance(state); + switch (ql_tap_state.state) { + case TD_SINGLE_TAP: + // tap_code(KC_SPC); + break; + case TD_SINGLE_HOLD: + register_code (KC_BSPC); + unregister_code (KC_BSPC); + layer_on(_MY_LAYER); + break; + case TD_DOUBLE_TAP: + // レイヤーが既にセットされているか確認します + if (layer_state_is(_MY_LAYER)) { + // レイヤーが既にセットされていたら、オフにします。 + layer_off(_MY_LAYER); + } else { + // レイヤーがセットされていなかったら、オンにします。 + layer_on(_MY_LAYER); + } + break; + default: + break; + } + // } +} + +void ql_reset(qk_tap_dance_state_t *state, void *user_data) { + // キーを押し続けていて今離したら、レイヤーをオフに切り替えます。 + if (ql_tap_state.state == TD_SINGLE_HOLD) { + layer_off(_MY_LAYER); + } + ql_tap_state.state = TD_NONE; +} + +void dance_each_tap (qk_tap_dance_state_t *state, void *user_data) { // キーが押下される都度実行される + switch (state->keycode) { + case TD(QUOT_LAYR): + if (state->count == 1) { + register_code (KC_SPC); + unregister_code (KC_SPC); + } + break; + } + } + +// タップダンスキーを機能に関連付けます +qk_tap_dance_action_t tap_dance_actions[] = { + [QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(dance_each_tap, ql_finished, ql_reset, 100) +}; \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/rules.mk b/keyboards/takashicompany/spreadwriter/rules.mk index 74622b6ced21..2ac36208d944 100644 --- a/keyboards/takashicompany/spreadwriter/rules.mk +++ b/keyboards/takashicompany/spreadwriter/rules.mk @@ -2,4 +2,6 @@ BOOTLOADER = caterina RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -ENCODER_ENABLE = yes \ No newline at end of file +ENCODER_ENABLE = yes + +TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.h b/keyboards/takashicompany/spreadwriter/spreadwriter.h index af1e6647e90b..893d0ed2fdc9 100644 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.h +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.h @@ -27,6 +27,7 @@ * represents the switch matrix. */ + /* #define LAYOUT( \ k01, k02, k03, k04, k05, k06, k30, k31, k32, k33, k34, k35, \ k08, k09, k10, k11, k12, k13, k14, k37, k38, k39, k40, k41, k42, \ @@ -43,3 +44,4 @@ { k43, k44, k45, k46, k47, k48, k49 }, \ { k50, k51, k52, k53, k54, k55, k56 } \ } +*/ From 30fdfb77f8efe539d82a50a42348ec3122359a61 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Sun, 8 May 2022 22:50:57 +0900 Subject: [PATCH 12/26] fix --- .../takashicompany/spreadwriter/config.h | 50 ------- .../takashicompany/spreadwriter/info.json | 10 ++ .../spreadwriter/keymaps/default/keymap.c | 122 +----------------- .../takashicompany/spreadwriter/rules.mk | 7 +- .../spreadwriter/spreadwriter.h | 2 +- 5 files changed, 16 insertions(+), 175 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/config.h b/keyboards/takashicompany/spreadwriter/config.h index cfd635160649..e22f102dc1c8 100644 --- a/keyboards/takashicompany/spreadwriter/config.h +++ b/keyboards/takashicompany/spreadwriter/config.h @@ -3,58 +3,8 @@ #pragma once -#pragma once - #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7463 // tc = takashicompany -#define PRODUCT_ID 0x0023 -#define DEVICE_VER 0x0001 -#define MANUFACTURER takashicompany -#define PRODUCT Spreadwriter - -/* key matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 7 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3, B2, B6 } -#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, D2 } -#define UNUSED_PINS - #define ENCODER_RESOLUTION 4 #define ENCODERS_PAD_A { D1 } #define ENCODERS_PAD_B { D0 } - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -#define RGB_DI_PIN D3 -#ifdef RGB_DI_PIN -# define RGBLED_NUM 53 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ -# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#endif diff --git a/keyboards/takashicompany/spreadwriter/info.json b/keyboards/takashicompany/spreadwriter/info.json index d6897cf04558..2d83beb6bcf9 100644 --- a/keyboards/takashicompany/spreadwriter/info.json +++ b/keyboards/takashicompany/spreadwriter/info.json @@ -40,6 +40,16 @@ "pid": "0x0023", "vid": "0x7463" }, + "rgblight": { + "led_count": 52, + "pin": "D3", + "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "animations": { + "all": true + } + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index 5f9434bda8e2..526a8f06f815 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -3,44 +3,14 @@ enum custom_keycodes { SPREADWRITER = SAFE_RANGE, WEB, - SPECIAL }; -// 必要な数のタップダンス状態のタイプを定義します -typedef enum { - TD_NONE, - TD_UNKNOWN, - TD_SINGLE_TAP, - TD_SINGLE_HOLD, - TD_DOUBLE_TAP -} td_state_t; - -typedef struct { - bool is_press_action; - td_state_t state; -} td_tap_t; - -enum { - QUOT_LAYR, // カスタムタップダンスキー。他のタップダンスキーはこの列挙型に追加します -}; - -// タップダンスキーで使われる関数を宣言します - -// 全てのタップダンスに関連する関数 -td_state_t cur_dance(qk_tap_dance_state_t *state); - -// 個別のタップダンスに関連する関数 -void ql_finished(qk_tap_dance_state_t *state, void *user_data); -void ql_reset(qk_tap_dance_state_t *state, void *user_data); - -uint8_t _MY_LAYER = 4; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, - KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LANG2), SFT_T(KC_TAB), TD(QUOT_LAYR), LT(6, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LANG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_WH_U, KC_WH_D ), @@ -57,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS + KC_BSPC, KC_SPC ), LAYOUT( @@ -129,94 +99,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case WEB: if (record->event.pressed) { - SEND_STRING("https://github.com/takashicompany/spreadwriter"); + SEND_STRING("github.com/takashicompany/spreadwriter"); } return false; - - case SPECIAL: - if (record->event.pressed) { - add_mods(MOD_MASK_SHIFT); - layer_on(4); - } else { - del_mods(MOD_MASK_SHIFT); - layer_off(4); - } - } return true; -} - -// 現在のタップダンスの状態を決定します -td_state_t cur_dance(qk_tap_dance_state_t *state) { - // if (state->count == 1) { - // if (!state->pressed) return TD_SINGLE_TAP; - // else return TD_SINGLE_HOLD; - // } // else if (state->count == 2) return TD_DOUBLE_TAP; - // else return TD_UNKNOWN; - - if (state->count == 1 && state->pressed) { - return TD_SINGLE_HOLD; - } // else if (state->count == 2) return TD_DOUBLE_TAP; - return TD_SINGLE_TAP; -} - -// この例のタップダンスキーに関連付けられた "tap" 構造体を初期化します -static td_tap_t ql_tap_state = { - .is_press_action = true, - .state = TD_NONE -}; - -// タップダンスキーの動作をコントロールする関数 -void ql_finished(qk_tap_dance_state_t *state, void *user_data) { - //if (!state->interrupted) { - - ql_tap_state.state = cur_dance(state); - switch (ql_tap_state.state) { - case TD_SINGLE_TAP: - // tap_code(KC_SPC); - break; - case TD_SINGLE_HOLD: - register_code (KC_BSPC); - unregister_code (KC_BSPC); - layer_on(_MY_LAYER); - break; - case TD_DOUBLE_TAP: - // レイヤーが既にセットされているか確認します - if (layer_state_is(_MY_LAYER)) { - // レイヤーが既にセットされていたら、オフにします。 - layer_off(_MY_LAYER); - } else { - // レイヤーがセットされていなかったら、オンにします。 - layer_on(_MY_LAYER); - } - break; - default: - break; - } - // } -} - -void ql_reset(qk_tap_dance_state_t *state, void *user_data) { - // キーを押し続けていて今離したら、レイヤーをオフに切り替えます。 - if (ql_tap_state.state == TD_SINGLE_HOLD) { - layer_off(_MY_LAYER); - } - ql_tap_state.state = TD_NONE; -} - -void dance_each_tap (qk_tap_dance_state_t *state, void *user_data) { // キーが押下される都度実行される - switch (state->keycode) { - case TD(QUOT_LAYR): - if (state->count == 1) { - register_code (KC_SPC); - unregister_code (KC_SPC); - } - break; - } - } - -// タップダンスキーを機能に関連付けます -qk_tap_dance_action_t tap_dance_actions[] = { - [QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(dance_each_tap, ql_finished, ql_reset, 100) -}; \ No newline at end of file +} \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/rules.mk b/keyboards/takashicompany/spreadwriter/rules.mk index 2ac36208d944..248f19320f0e 100644 --- a/keyboards/takashicompany/spreadwriter/rules.mk +++ b/keyboards/takashicompany/spreadwriter/rules.mk @@ -1,7 +1,2 @@ -# Bootloader selection -BOOTLOADER = caterina -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow - ENCODER_ENABLE = yes - -TAP_DANCE_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.h b/keyboards/takashicompany/spreadwriter/spreadwriter.h index 893d0ed2fdc9..395790cd9dc3 100644 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.h +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.h @@ -1,4 +1,4 @@ -/* Copyright 2021 takashicompany +/* Copyright 2022 takashicompany * * 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 From ab60669f72d09d2a664f3fdc313bba76766005b3 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Sun, 8 May 2022 23:12:15 +0900 Subject: [PATCH 13/26] add via --- .../spreadwriter/keymaps/default/keymap.c | 25 ------ .../spreadwriter/keymaps/via/config.h | 20 +++++ .../spreadwriter/keymaps/via/keymap.c | 83 +++++++++++++++++++ .../spreadwriter/keymaps/via/rules.mk | 1 + .../takashicompany/spreadwriter/readme.md | 16 +++- 5 files changed, 117 insertions(+), 28 deletions(-) create mode 100644 keyboards/takashicompany/spreadwriter/keymaps/via/config.h create mode 100644 keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c create mode 100644 keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index 526a8f06f815..f1f0050480cd 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -60,32 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS - ), - - LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS - ), - - LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS ) - }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/config.h b/keyboards/takashicompany/spreadwriter/keymaps/via/config.h new file mode 100644 index 000000000000..cc750286c9f1 --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2021 takashicompany + +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 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 7 diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c new file mode 100644 index 000000000000..f1f0050480cd --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c @@ -0,0 +1,83 @@ +#include QMK_KEYBOARD_H + +enum custom_keycodes { + SPREADWRITER = SAFE_RANGE, + WEB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT( + KC_ESC, LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, SPREADWRITER, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, MEH(KC_4), LSA(KC_5), KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, MO(5), MO(4), ALT_T(KC_LANG2), SFT_T(KC_TAB), WEB, LT(6, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + KC_WH_U, KC_WH_D + ), + + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_BSPC, KC_SPC + ), + + LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_TRNS, RESET, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_JYEN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_NUHS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_JYEN), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_LBRC), S(KC_RBRC), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_NUHS), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_RO), KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), G(KC_JYEN), KC_TRNS, + KC_LCTL, S(KC_EQL), S(KC_LBRC), S(KC_SLSH), S(KC_MINS), S(KC_RO), KC_TRNS, S(KC_SCLN), S(KC_QUOT), S(KC_RBRC), S(KC_NUHS), S(KC_JYEN), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SPREADWRITER: + if (record->event.pressed) { + SEND_STRING("Spreadwriter"); + rgblight_toggle(); + } + return false; + + case WEB: + if (record->event.pressed) { + SEND_STRING("github.com/takashicompany/spreadwriter"); + } + return false; + } + + return true; +} \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk b/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/readme.md b/keyboards/takashicompany/spreadwriter/readme.md index 843bbb7fb12c..f20ad475789f 100644 --- a/keyboards/takashicompany/spreadwriter/readme.md +++ b/keyboards/takashicompany/spreadwriter/readme.md @@ -1,12 +1,22 @@ # takashicompany/spreadwriter -![takashicompany/spreadwriter](imgur.com image replace me!) +![takashicompany/spreadwriter](https://dl.dropboxusercontent.com/s/c26r9bugx9xw5df/01.jpg) *A short description of the keyboard/project* +"Spreadwriter" はGL516ケースに対応した50%キーボードです。 +放射状のキーレイアウトは、手を自然な形で置くことができ、楽な姿勢での打鍵を可能にしています。 + +LEDを用いたキーの照明や、ロータリーエンコーダの搭載も可能です。 +--- +"Spreadwriter" is a 50% keyboard for the GL516 case. +The radial key layout allows for a natural hand placement and comfortable typing posture. + +LED-based key illumination and a rotary encoder are also available. + * Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) -* Hardware Supported: *The PCBs, controllers supported* -* Hardware Availability: *Links to where you can find this hardware* +* Hardware Supported: Spreadwriter PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/spreadwriter Make example for this keyboard (after setting up your build environment): From 5656920a866985c4e37c712d9863491c56ae3ac7 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Sun, 8 May 2022 23:15:10 +0900 Subject: [PATCH 14/26] delete description --- keyboards/takashicompany/spreadwriter/readme.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/readme.md b/keyboards/takashicompany/spreadwriter/readme.md index f20ad475789f..3c9189aa16a3 100644 --- a/keyboards/takashicompany/spreadwriter/readme.md +++ b/keyboards/takashicompany/spreadwriter/readme.md @@ -2,8 +2,6 @@ ![takashicompany/spreadwriter](https://dl.dropboxusercontent.com/s/c26r9bugx9xw5df/01.jpg) -*A short description of the keyboard/project* - "Spreadwriter" はGL516ケースに対応した50%キーボードです。 放射状のキーレイアウトは、手を自然な形で置くことができ、楽な姿勢での打鍵を可能にしています。 From 74cd3206534a2d6e80e445c4c680eb6b25cb2e54 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 9 May 2022 18:33:17 +0900 Subject: [PATCH 15/26] Update keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c Co-authored-by: Joel Challis --- keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index f1f0050480cd..a2f52c3dc212 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H enum custom_keycodes { From 8a161c6dd79eec600a69f4f3b5d9013b4b414864 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 9 May 2022 18:33:23 +0900 Subject: [PATCH 16/26] Update keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c Co-authored-by: Joel Challis --- keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c index f1f0050480cd..a2f52c3dc212 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H enum custom_keycodes { From b180618c6f853566ff93d53c20abfdb24f1b5453 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 9 May 2022 18:33:44 +0900 Subject: [PATCH 17/26] Update keyboards/takashicompany/spreadwriter/spreadwriter.c Co-authored-by: Joel Challis --- .../takashicompany/spreadwriter/spreadwriter.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.c b/keyboards/takashicompany/spreadwriter/spreadwriter.c index 2bee2eededad..97e30423f4d3 100644 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.c +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.c @@ -1,18 +1,5 @@ -/* Copyright 2021 takashicompany - * - * 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 . - */ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later #include "spreadwriter.h" From e729dc8ed4957b4355140cecd9878009c1726e3b Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 9 May 2022 18:33:50 +0900 Subject: [PATCH 18/26] Update keyboards/takashicompany/spreadwriter/keymaps/via/config.h Co-authored-by: Joel Challis --- .../spreadwriter/keymaps/via/config.h | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/config.h b/keyboards/takashicompany/spreadwriter/keymaps/via/config.h index cc750286c9f1..b0e0cc3ee77a 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/via/config.h +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/config.h @@ -1,19 +1,5 @@ -/* -Copyright 2021 takashicompany - -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 . -*/ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once From dada2cf3e62d3de02ded8f14605a5b4cf4c319f1 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 9 May 2022 18:34:07 +0900 Subject: [PATCH 19/26] Update keyboards/takashicompany/spreadwriter/spreadwriter.c Co-authored-by: Joel Challis --- keyboards/takashicompany/spreadwriter/spreadwriter.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.c b/keyboards/takashicompany/spreadwriter/spreadwriter.c index 97e30423f4d3..35028725d4e3 100644 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.c +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.c @@ -4,6 +4,8 @@ #include "spreadwriter.h" bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; + keypos_t key; if (index == 0) { if (clockwise) { From eae19c4c5e0bc90d89e7b93c89cda037e7a19f01 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 9 May 2022 18:34:16 +0900 Subject: [PATCH 20/26] Update keyboards/takashicompany/spreadwriter/spreadwriter.c Co-authored-by: Joel Challis --- keyboards/takashicompany/spreadwriter/spreadwriter.c | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.c b/keyboards/takashicompany/spreadwriter/spreadwriter.c index 35028725d4e3..f399f64316f7 100644 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.c +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.c @@ -3,6 +3,7 @@ #include "spreadwriter.h" +#ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) return false; From 013c84251db44a84f82697a798ba508620a5e0f2 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 9 May 2022 18:34:21 +0900 Subject: [PATCH 21/26] Update keyboards/takashicompany/spreadwriter/spreadwriter.c Co-authored-by: Joel Challis --- keyboards/takashicompany/spreadwriter/spreadwriter.c | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.c b/keyboards/takashicompany/spreadwriter/spreadwriter.c index f399f64316f7..588068790846 100644 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.c +++ b/keyboards/takashicompany/spreadwriter/spreadwriter.c @@ -25,3 +25,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { return true; } +#endif From 6e03927fbc05355f85f5fcf1139e685404849510 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 9 May 2022 18:35:27 +0900 Subject: [PATCH 22/26] Delete spreadwriter.h --- .../spreadwriter/spreadwriter.h | 47 ------------------- 1 file changed, 47 deletions(-) delete mode 100644 keyboards/takashicompany/spreadwriter/spreadwriter.h diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.h b/keyboards/takashicompany/spreadwriter/spreadwriter.h deleted file mode 100644 index 395790cd9dc3..000000000000 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2022 takashicompany - * - * 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" - -/* This is a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ - - /* -#define LAYOUT( \ - k01, k02, k03, k04, k05, k06, k30, k31, k32, k33, k34, k35, \ - k08, k09, k10, k11, k12, k13, k14, k37, k38, k39, k40, k41, k42, \ - k15, k16, k17, k18, k19, k20, k21, k43, k44, k45, k46, k47, k48, k49, \ - k22, k23, k24, k25, k26, k27, k28, k36, k50, k51, k52, k53, k54, k55, k56, \ - k07, k29 \ -) { \ - { k01, k02, k03, k04, k05, k06, k07 }, \ - { k08, k09, k10, k11, k12, k13, k14 }, \ - { k15, k16, k17, k18, k19, k20, k21 }, \ - { k22, k23, k24, k25, k26, k27, k28 }, \ - { k29, k30, k31, k32, k33, k34, k35 }, \ - { k36, k37, k38, k39, k40, k41, k42 }, \ - { k43, k44, k45, k46, k47, k48, k49 }, \ - { k50, k51, k52, k53, k54, k55, k56 } \ -} -*/ From acaf6cac0e8045d1ba901a2d6d71ea3f705f5883 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Thu, 12 May 2022 00:43:30 +0900 Subject: [PATCH 23/26] fix rotary encoder --- .../spreadwriter/keymaps/default/keymap.c | 11 +++++ .../spreadwriter/keymaps/via/config.h | 14 ++++++ .../spreadwriter/keymaps/via/keymap.c | 43 ++++++++++++++++++- .../spreadwriter/spreadwriter.c | 28 ------------ 4 files changed, 67 insertions(+), 29 deletions(-) delete mode 100644 keyboards/takashicompany/spreadwriter/spreadwriter.c diff --git a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c index a2f52c3dc212..665f180a38bd 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/default/keymap.c @@ -82,5 +82,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } + return true; +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + return true; } \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/config.h b/keyboards/takashicompany/spreadwriter/keymaps/via/config.h index b0e0cc3ee77a..adbbc6ce838e 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/via/config.h +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/config.h @@ -4,3 +4,17 @@ #pragma once #define DYNAMIC_KEYMAP_LAYER_COUNT 7 + +//------------------------------------------------------------------------------ +// Rotary Encoder +//------------------------------------------------------------------------------ +// Encoder triggers specific key matrix position, +// when turn knob clockwise or counterclockwise. +// This is handy to assign key codes by VIA. + +// Number of endoder +#define ENCODERS 1 + +// Mappings of encoder rotation to key position in key matrix. +#define ENCODERS_CW_KEY { { 0, 4 }} +#define ENCODERS_CCW_KEY { { 6, 0 }} \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c index a2f52c3dc212..defca4b55a6a 100644 --- a/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c +++ b/keyboards/takashicompany/spreadwriter/keymaps/via/keymap.c @@ -83,4 +83,45 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; -} \ No newline at end of file +} + +//------------------------------------------------------------------------------ +// Rotary Encoder +//------------------------------------------------------------------------------ +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; +static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; + +void encoder_action_unregister(void) { + for (int index = 0; index < ENCODERS; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t) { + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1) + }; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +} + +void encoder_action_register(uint8_t index, bool clockwise) { + keyevent_t encoder_event = (keyevent_t) { + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1) + }; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); +} + +void matrix_scan_kb(void) { + encoder_action_unregister(); + matrix_scan_user(); +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + encoder_action_register(index, clockwise); + return true; +}; \ No newline at end of file diff --git a/keyboards/takashicompany/spreadwriter/spreadwriter.c b/keyboards/takashicompany/spreadwriter/spreadwriter.c deleted file mode 100644 index 588068790846..000000000000 --- a/keyboards/takashicompany/spreadwriter/spreadwriter.c +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022 takashicompany (@takashicompany) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "spreadwriter.h" - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) return false; - - keypos_t key; - if (index == 0) { - if (clockwise) { - key.row = 4; - key.col = 0; - } else { - key.row = 0; - key.col = 6; - } - uint8_t layer = layer_switch_get_layer(key); - uint16_t keycode = keymap_key_to_keycode(layer, key); - - tap_code16(keycode); - return false; - } - - return true; -} -#endif From d71ace8e155e66bdbc6c33b2cde28c53f9fccd82 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Thu, 12 May 2022 00:48:00 +0900 Subject: [PATCH 24/26] fix image url --- keyboards/takashicompany/spreadwriter/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/takashicompany/spreadwriter/readme.md b/keyboards/takashicompany/spreadwriter/readme.md index 3c9189aa16a3..4439098c04c3 100644 --- a/keyboards/takashicompany/spreadwriter/readme.md +++ b/keyboards/takashicompany/spreadwriter/readme.md @@ -1,6 +1,6 @@ # takashicompany/spreadwriter -![takashicompany/spreadwriter](https://dl.dropboxusercontent.com/s/c26r9bugx9xw5df/01.jpg) +![takashicompany/spreadwriter](https://i.imgur.com/mMAzyvU.jpg) "Spreadwriter" はGL516ケースに対応した50%キーボードです。 放射状のキーレイアウトは、手を自然な形で置くことができ、楽な姿勢での打鍵を可能にしています。 From d9b4a5ab26fe1404a83d0071b5b15a1671baff19 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Thu, 12 May 2022 23:54:29 +0900 Subject: [PATCH 25/26] fix led_count --- keyboards/takashicompany/spreadwriter/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/takashicompany/spreadwriter/info.json b/keyboards/takashicompany/spreadwriter/info.json index 2d83beb6bcf9..2f802bab0b9d 100644 --- a/keyboards/takashicompany/spreadwriter/info.json +++ b/keyboards/takashicompany/spreadwriter/info.json @@ -41,7 +41,7 @@ "vid": "0x7463" }, "rgblight": { - "led_count": 52, + "led_count": 53, "pin": "D3", "hue_steps": 10, "saturation_steps": 17, From 2ce4f134f207a74678deb99775cc66d0632bf5cd Mon Sep 17 00:00:00 2001 From: takashicompany Date: Sat, 14 May 2022 01:17:26 +0900 Subject: [PATCH 26/26] Update keyboards/takashicompany/spreadwriter/readme.md Co-authored-by: Drashna Jaelre --- keyboards/takashicompany/spreadwriter/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/takashicompany/spreadwriter/readme.md b/keyboards/takashicompany/spreadwriter/readme.md index 4439098c04c3..972dcba4de87 100644 --- a/keyboards/takashicompany/spreadwriter/readme.md +++ b/keyboards/takashicompany/spreadwriter/readme.md @@ -1,6 +1,6 @@ # takashicompany/spreadwriter -![takashicompany/spreadwriter](https://i.imgur.com/mMAzyvU.jpg) +![takashicompany/spreadwriter](https://i.imgur.com/mMAzyvUh.jpg) "Spreadwriter" はGL516ケースに対応した50%キーボードです。 放射状のキーレイアウトは、手を自然な形で置くことができ、楽な姿勢での打鍵を可能にしています。