[Keyboard] Add GOAT51 (#18220)

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
takashicompany 2022-09-24 23:05:53 +09:00 committed by GitHub
parent fe9c1d8e45
commit 45cc7f1e94
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 776 additions and 0 deletions

View file

@ -0,0 +1,498 @@
{
"manufacturer": "takashicompany",
"keyboard_name": "GOAT51",
"maintainer": "takashicompany",
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"encoder": true,
"rgblight": true
},
"matrix_pins": {
"cols": [
"D4",
"C6",
"D7",
"E6",
"B4",
"B5",
"D2"
],
"rows": [
"F4",
"F5",
"F6",
"F7",
"B1",
"B3",
"B2",
"B6"
]
},
"encoder": {
"rotary": [
{ "pin_a": "D1", "pin_b": "D0" }
]
},
"url": "https://github.com/takashicompany/goat51",
"usb": {
"device_version": "1.0.0",
"pid": "0x0029",
"vid": "0x7463"
},
"rgblight": {
"led_count": 11,
"pin": "D3",
"hue_steps": 10,
"saturation_steps": 17,
"brightness_steps": 17,
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
}
},
"layouts": {
"LAYOUT": {
"layout": [
{
"matrix": [
0,
0
],
"x": 0,
"y": 0.5
},
{
"matrix": [
0,
1
],
"x": 1,
"y": 0.5
},
{
"matrix": [
0,
2
],
"x": 2,
"y": 0.25
},
{
"matrix": [
0,
3
],
"x": 3,
"y": 0
},
{
"matrix": [
0,
4
],
"x": 4,
"y": 0
},
{
"matrix": [
0,
5
],
"x": 5,
"y": 0
},
{
"matrix": [
4,
1
],
"x": 10,
"y": 0
},
{
"matrix": [
4,
2
],
"x": 11,
"y": 0
},
{
"matrix": [
4,
3
],
"x": 12,
"y": 0
},
{
"matrix": [
4,
4
],
"x": 13,
"y": 0.25
},
{
"matrix": [
4,
5
],
"x": 14,
"y": 0.5
},
{
"matrix": [
4,
6
],
"x": 15,
"y": 0.5
},
{
"matrix": [
1,
0
],
"x": 0,
"y": 1.5
},
{
"matrix": [
1,
1
],
"x": 1,
"y": 1.5
},
{
"matrix": [
1,
2
],
"x": 2,
"y": 1.25
},
{
"matrix": [
1,
3
],
"x": 3,
"y": 1
},
{
"matrix": [
1,
4
],
"x": 4,
"y": 1
},
{
"matrix": [
1,
5
],
"x": 5,
"y": 1
},
{
"matrix": [
1,
6
],
"x": 7.5,
"y": 0.5
},
{
"matrix": [
5,
1
],
"x": 10,
"y": 1
},
{
"matrix": [
5,
2
],
"x": 11,
"y": 1
},
{
"matrix": [
5,
3
],
"x": 12,
"y": 1
},
{
"matrix": [
5,
4
],
"x": 13,
"y": 1.25
},
{
"matrix": [
5,
5
],
"x": 14,
"y": 1.5
},
{
"matrix": [
5,
6
],
"x": 15,
"y": 1.5
},
{
"matrix": [
2,
0
],
"x": 0,
"y": 2.5
},
{
"matrix": [
2,
1
],
"x": 1,
"y": 2.5
},
{
"matrix": [
2,
2
],
"x": 2,
"y": 2.25
},
{
"matrix": [
2,
3
],
"x": 3,
"y": 2
},
{
"matrix": [
2,
4
],
"x": 4,
"y": 2
},
{
"matrix": [
2,
5
],
"x": 5,
"y": 2
},
{
"matrix": [
6,
1
],
"x": 10,
"y": 2
},
{
"matrix": [
6,
2
],
"x": 11,
"y": 2
},
{
"matrix": [
6,
3
],
"x": 12,
"y": 2
},
{
"matrix": [
6,
4
],
"x": 13,
"y": 2.25
},
{
"matrix": [
6,
5
],
"x": 14,
"y": 2.5
},
{
"matrix": [
6,
6
],
"x": 15,
"y": 2.5
},
{
"matrix": [
3,
0
],
"x": 0,
"y": 3.5
},
{
"matrix": [
3,
1
],
"x": 1,
"y": 3.5
},
{
"matrix": [
3,
2
],
"x": 2,
"y": 3.25
},
{
"matrix": [
3,
3
],
"x": 3,
"y": 3
},
{
"matrix": [
3,
4
],
"x": 4,
"y": 3
},
{
"matrix": [
3,
5
],
"x": 5,
"y": 3
},
{
"matrix": [
3,
6
],
"x": 6,
"y": 3
},
{
"matrix": [
7,
0
],
"x": 9,
"y": 3
},
{
"matrix": [
7,
1
],
"x": 10,
"y": 3
},
{
"matrix": [
7,
2
],
"x": 11,
"y": 3
},
{
"matrix": [
7,
3
],
"x": 12,
"y": 3
},
{
"matrix": [
7,
4
],
"x": 13,
"y": 3.25
},
{
"matrix": [
7,
5
],
"x": 14,
"y": 3.5
},
{
"matrix": [
7,
6
],
"x": 15,
"y": 3.5
},
{
"matrix": [
0,
6
],
"x": 7,
"y": 1.5
},
{
"matrix": [
4,
0
],
"x": 8,
"y": 1.5
}
]
}
}
}

View file

@ -0,0 +1,123 @@
// Copyright 2022 takashicompany (@takashicompany)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_keycodes {
GOAT51 = SAFE_RANGE,
WEB,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// 0: JIS-Alphabet
LAYOUT(
KC_ESC, LT(7, 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(6, KC_D), KC_F, KC_G, GOAT51, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT,
KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL,
TG(6), KC_PGUP, KC_PGDN, KC_LCTL, KC_LGUI, ALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
KC_PGDN, KC_PGUP
),
// 1: JIS-Num
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_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, GOAT51, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS,
KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(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
),
// 2: JIS-Shift-Num
LAYOUT(
KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), KC_TRNS,
KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), GOAT51, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS,
KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
// 3: US-Alphabet
LAYOUT(
KC_TRNS, LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, GOAT51, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS,
KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS,
TG(6), KC_PGUP, KC_PGDN, KC_LCTL, KC_LGUI, ALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LANG1), KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
KC_PGDN, KC_PGUP
),
// 4: US-Num
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_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, GOAT51, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_JYEN, KC_TRNS,
KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
// 5: US-Shift-Num
LAYOUT(
KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS,
KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, GOAT51, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
// 6: Cursor
LAYOUT(
KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PCMM, GOAT51, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS,
KC_TRNS, LSFT_T(KC_P1), KC_P2, KC_P3, KC_PMNS, KC_KP_EQUAL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
TG(6), KC_P0, KC_PDOT, KC_PENT, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
// 7: Function
LAYOUT(
KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, GOAT51, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(8), MO(9), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
// 8: LED
LAYOUT(
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, DF(0), DF(3), KC_TRNS,
KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, GOAT51, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 GOAT51:
if (record->event.pressed) {
SEND_STRING("GOAT51");
rgblight_toggle();
}
return false;
case WEB:
if (record->event.pressed) {
SEND_STRING("github.com/takashicompany/goat51");
}
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;
}

View file

@ -0,0 +1,6 @@
// Copyright 2022 takashicompany (@takashicompany)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define DYNAMIC_KEYMAP_LAYER_COUNT 7

View file

@ -0,0 +1,106 @@
// Copyright 2022 takashicompany (@takashicompany)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_keycodes {
GOAT51 = SAFE_RANGE,
WEB,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// 0: JIS-Alphabet
LAYOUT(
KC_ESC, LT(4, 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(3, KC_D), KC_F, KC_G, GOAT51, KC_H, KC_J, LT(3, KC_K), KC_L, KC_ENT, KC_ENT,
KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL,
TG(3), KC_PGUP, KC_PGDN, KC_LCTL, KC_LGUI, ALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
KC_PGDN, KC_PGUP
),
// 1: JIS-Num
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_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, GOAT51, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS,
KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(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
),
// 2: JIS-Shift-Num
LAYOUT(
KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), KC_TRNS,
KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), GOAT51, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS,
KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
// 3: Cursor
LAYOUT(
KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PCMM, GOAT51, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS,
KC_TRNS, LSFT_T(KC_P1), KC_P2, KC_P3, KC_PMNS, KC_KP_EQUAL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
TG(3), KC_P0, KC_PDOT, KC_PENT, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
// 4: Function
LAYOUT(
KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, GOAT51, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(5), MO(6), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
// 5: LED
LAYOUT(
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, GOAT51, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case GOAT51:
if (record->event.pressed) {
SEND_STRING("GOAT51");
rgblight_toggle();
}
return false;
case WEB:
if (record->event.pressed) {
SEND_STRING("github.com/takashicompany/goat51");
}
return false;
}
return true;
}
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
{ ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) },
{ ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
{ ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
{ ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
{ ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
{ ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
{ ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
};
#endif

View file

@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View file

@ -0,0 +1,40 @@
# 🐐 GOAT51
![takashicompany/GOAT51](https://i.imgur.com/7xD9a4zh.jpg)
GOAT51は51キーのキーボードです。
特徴的な放射状のキーレイアウトは指を自然に置くことができ、効率的な入力が可能です。
MX互換のキースイッチとChoc v1キースイッチの取り付けに対応しております。
またPCBにキースイッチソケットを取り付けることが可能で、容易にキースイッチの交換ができます。
キーボードの中央にはお気に入りのキーキャップを取り付ける専用スペースがあり、アルチザンキーキャップやお気に入りのキーキャップを飾ることができます。
実はそこにはロータリーエンコーダを置くこともできちゃいます。
---
GOAT51 is a 51-key keyboard.
The distinctive radial key layout allows the fingers to be placed naturally for efficient typing.
It supports the installation of MX compatible key switches and Choc v1 key switches.
A key switch socket can also be installed on the PCB for easy keyswitch replacement.
There is a dedicated space in the center of the keyboard for mounting your favorite keycaps, allowing you to display Artisan keycaps or your favorite keycaps.
In fact, you can even place a rotary encoder there.
* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany)
* Hardware Supported: GOAT51 PCB, Pro Micro
* Hardware Availability: https://github.com/takashicompany/goat51
Make example for this keyboard (after setting up your build environment):
make takashicompany/goat51:default
Flashing example for this keyboard:
make takashicompany/goat51: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 `QK_BOOT` if it is available

View file

@ -0,0 +1 @@
# This file intentionally left blank