mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-23 08:02:03 +00:00
Compare commits
12 Commits
ff6c44db25
...
462ab3c4d2
Author | SHA1 | Date | |
---|---|---|---|
|
462ab3c4d2 | ||
|
1b3b1427d2 | ||
|
bc78474906 | ||
|
cdaac25861 | ||
|
40f0325af8 | ||
|
989f2476b6 | ||
|
9c6b8fae40 | ||
|
4eb5c6803f | ||
|
758766820d | ||
|
e19cbe25f3 | ||
|
f07841cce3 | ||
|
41a5046e89 |
@ -14,9 +14,7 @@
|
||||
},
|
||||
"url": "http://binepad.com",
|
||||
"usb": {
|
||||
"vid": "0x4249",
|
||||
"pid": "0x4231",
|
||||
"device_version": "1.0.0"
|
||||
"vid": "0x4249"
|
||||
},
|
||||
"community_layouts": ["ortho_1x1"],
|
||||
"layouts": {
|
||||
|
@ -1,6 +1,4 @@
|
||||
# Copyright 2022 Binepad (@binpad)
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
LTO_ENABLE = yes
|
||||
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
@ -1,7 +1,6 @@
|
||||
# Copyright 2022 Binepad (@binpad)
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
LTO_ENABLE = yes
|
||||
VIA_ENABLE = yes
|
||||
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
@ -3,13 +3,19 @@
|
||||
The BNR1 is a multifunction knob, which can be rotated, pressed, and rotated while pressed.
|
||||
|
||||
* Keyboard Maintainer: [Binpad](https://github.com/binepad)
|
||||
* Hardware Supported: **BNR1** & **BNR1 R2** *("V1" ft. ATMega32u4 MCU)*
|
||||
* Hardware Supported:
|
||||
* **BNR1** & **BNR1 R2** *("V1" ft. ATMega32u4 MCU)*
|
||||
* **BNR1 V2** *("V2" ft. STM32F103 MCU)*
|
||||
* Hardware Availability: [Binepad.com](https://www.binepad.com/bnr1)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make binepad/bnr1/v1:default
|
||||
|
||||
..or..
|
||||
|
||||
make binepad/bnr1/v2:default
|
||||
|
||||
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).
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
# This file intentionally left blank
|
||||
# This file is mostly left blank
|
||||
|
||||
DEFAULT_FOLDER = binepad/bnr1/v1
|
||||
DEFAULT_FOLDER = binepad/bnr1/v2
|
||||
|
@ -2,13 +2,21 @@
|
||||
"bootloader": "atmel-dfu",
|
||||
"processor": "atmega32u4",
|
||||
"diode_direction": "COL2ROW",
|
||||
"usb": {
|
||||
"pid": "0x4231",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B0"],
|
||||
"rows": ["E6"]
|
||||
},
|
||||
"encoder": {
|
||||
"enabled": true,
|
||||
"rotary": [
|
||||
{ "pin_a": "D6", "pin_b": "D7" }
|
||||
{
|
||||
"pin_a": "D6",
|
||||
"pin_b": "D7"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,3 @@
|
||||
# This file intentionally left blank
|
||||
# This file is mostly left blank
|
||||
|
||||
LTO_ENABLE = yes
|
||||
|
9
keyboards/binepad/bnr1/v2/config.h
Normal file
9
keyboards/binepad/bnr1/v2/config.h
Normal file
@ -0,0 +1,9 @@
|
||||
// Copyright 2022 BINEPAD (@binepad)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 1024
|
||||
#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
|
22
keyboards/binepad/bnr1/v2/info.json
Executable file
22
keyboards/binepad/bnr1/v2/info.json
Executable file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"bootloader": "stm32duino",
|
||||
"processor": "STM32F103",
|
||||
"diode_direction": "COL2ROW",
|
||||
"usb": {
|
||||
"pid": "0x4241",
|
||||
"device_version": "2.0.0"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A15"],
|
||||
"rows": ["A8"]
|
||||
},
|
||||
"encoder": {
|
||||
"enabled": true,
|
||||
"rotary": [
|
||||
{
|
||||
"pin_a": "B3",
|
||||
"pin_b": "B4"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
7
keyboards/binepad/bnr1/v2/rules.mk
Executable file
7
keyboards/binepad/bnr1/v2/rules.mk
Executable file
@ -0,0 +1,7 @@
|
||||
# This file only contains EFL/WL settings and enables F103 low-power mode
|
||||
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = embedded_flash
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
24
keyboards/cannonkeys/typeb/config.h
Normal file
24
keyboards/cannonkeys/typeb/config.h
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
Copyright 2015 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
||||
|
97
keyboards/cannonkeys/typeb/info.json
Normal file
97
keyboards/cannonkeys/typeb/info.json
Normal file
@ -0,0 +1,97 @@
|
||||
{
|
||||
"keyboard_name": "Type-B",
|
||||
"maintainer": "awkannan",
|
||||
"manufacturer": "CannonKeys",
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"usb": {
|
||||
"vid": "0xCA04",
|
||||
"pid": "0x001B",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"url": "https://cannonkeys.com",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["GP3", "GP2", "GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18"],
|
||||
"rows": ["GP4", "GP5", "GP13", "GP14", "GP10"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "GP12",
|
||||
"on_state": 0
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0.0, "y": 0.0 },
|
||||
{ "matrix": [0, 1], "x": 1.0, "y": 0.0 },
|
||||
{ "matrix": [0, 2], "x": 2.0, "y": 0.0 },
|
||||
{ "matrix": [0, 3], "x": 3.0, "y": 0.0 },
|
||||
{ "matrix": [0, 4], "x": 4.0, "y": 0.0 },
|
||||
{ "matrix": [0, 5], "x": 5.0, "y": 0.0 },
|
||||
{ "matrix": [0, 6], "x": 6.0, "y": 0.0 },
|
||||
{ "matrix": [0, 7], "x": 7.0, "y": 0.0 },
|
||||
{ "matrix": [0, 8], "x": 8.0, "y": 0.0 },
|
||||
{ "matrix": [0, 9], "x": 9.0, "y": 0.0 },
|
||||
{ "matrix": [0, 10], "x": 10.0, "y": 0.0 },
|
||||
{ "matrix": [0, 11], "x": 11.0, "y": 0.0 },
|
||||
{ "matrix": [0, 12], "x": 12.0, "y": 0.0 },
|
||||
{ "matrix": [0, 13], "x": 13.0, "y": 0.0 },
|
||||
{ "matrix": [2, 12], "x": 14.0, "y": 0.0 },
|
||||
{ "matrix": [1, 0], "w": 1.5, "x": 0.0, "y": 1.0 },
|
||||
{ "matrix": [1, 1], "x": 1.5, "y": 1.0 },
|
||||
{ "matrix": [1, 2], "x": 2.5, "y": 1.0 },
|
||||
{ "matrix": [1, 3], "x": 3.5, "y": 1.0 },
|
||||
{ "matrix": [1, 4], "x": 4.5, "y": 1.0 },
|
||||
{ "matrix": [1, 5], "x": 5.5, "y": 1.0 },
|
||||
{ "matrix": [1, 6], "x": 6.5, "y": 1.0 },
|
||||
{ "matrix": [1, 7], "x": 7.5, "y": 1.0 },
|
||||
{ "matrix": [1, 8], "x": 8.5, "y": 1.0 },
|
||||
{ "matrix": [1, 9], "x": 9.5, "y": 1.0 },
|
||||
{ "matrix": [1, 10], "x": 10.5, "y": 1.0 },
|
||||
{ "matrix": [1, 11], "x": 11.5, "y": 1.0 },
|
||||
{ "matrix": [1, 12], "x": 12.5, "y": 1.0 },
|
||||
{ "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1.0 },
|
||||
{ "matrix": [2, 0], "w": 1.75, "x": 0.0, "y": 2.0 },
|
||||
{ "matrix": [2, 1], "x": 1.75, "y": 2.0 },
|
||||
{ "matrix": [2, 2], "x": 2.75, "y": 2.0 },
|
||||
{ "matrix": [2, 3], "x": 3.75, "y": 2.0 },
|
||||
{ "matrix": [2, 4], "x": 4.75, "y": 2.0 },
|
||||
{ "matrix": [2, 5], "x": 5.75, "y": 2.0 },
|
||||
{ "matrix": [2, 6], "x": 6.75, "y": 2.0 },
|
||||
{ "matrix": [2, 7], "x": 7.75, "y": 2.0 },
|
||||
{ "matrix": [2, 8], "x": 8.75, "y": 2.0 },
|
||||
{ "matrix": [2, 9], "x": 9.75, "y": 2.0 },
|
||||
{ "matrix": [2, 10], "x": 10.75, "y": 2.0 },
|
||||
{ "matrix": [2, 11], "x": 11.75, "y": 2.0 },
|
||||
{ "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2.0 },
|
||||
{ "matrix": [3, 0], "w": 1.25, "x": 0.0, "y": 3.0 },
|
||||
{ "matrix": [3, 1], "x": 1.25, "y": 3.0 },
|
||||
{ "matrix": [3, 2], "x": 2.25, "y": 3.0 },
|
||||
{ "matrix": [3, 3], "x": 3.25, "y": 3.0 },
|
||||
{ "matrix": [3, 4], "x": 4.25, "y": 3.0 },
|
||||
{ "matrix": [3, 5], "x": 5.25, "y": 3.0 },
|
||||
{ "matrix": [3, 6], "x": 6.25, "y": 3.0 },
|
||||
{ "matrix": [3, 7], "x": 7.25, "y": 3.0 },
|
||||
{ "matrix": [3, 8], "x": 8.25, "y": 3.0 },
|
||||
{ "matrix": [3, 9], "x": 9.25, "y": 3.0 },
|
||||
{ "matrix": [3, 10], "x": 10.25, "y": 3.0 },
|
||||
{ "matrix": [3, 11], "x": 11.25, "y": 3.0 },
|
||||
{ "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3.0 },
|
||||
{ "matrix": [3, 13], "x": 14.0, "y": 3.0 },
|
||||
{ "matrix": [4, 1], "x": 1.5, "y": 4.0 },
|
||||
{ "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4.0 },
|
||||
{ "matrix": [4, 6], "w": 6, "x": 4.0, "y": 4.0 },
|
||||
{ "matrix": [4, 10], "w": 1.5, "x": 10.0, "y": 4.0 },
|
||||
{ "matrix": [4, 11], "x": 11.5, "y": 4.0 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
45
keyboards/cannonkeys/typeb/keymaps/default/keymap.c
Normal file
45
keyboards/cannonkeys/typeb/keymaps/default/keymap.c
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum {
|
||||
_BASE = 0,
|
||||
_FN1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
|
||||
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT(
|
||||
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, QK_BOOT
|
||||
)
|
||||
};
|
61
keyboards/cannonkeys/typeb/keymaps/via/keymap.c
Normal file
61
keyboards/cannonkeys/typeb/keymaps/via/keymap.c
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum {
|
||||
_BASE = 0,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
|
||||
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT(
|
||||
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, QK_BOOT
|
||||
),
|
||||
[_FN2] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______
|
||||
),
|
||||
[_FN3] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
1
keyboards/cannonkeys/typeb/keymaps/via/rules.mk
Normal file
1
keyboards/cannonkeys/typeb/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
26
keyboards/cannonkeys/typeb/readme.md
Normal file
26
keyboards/cannonkeys/typeb/readme.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Type-B
|
||||
|
||||
Type-B Keyboard by bababaul
|
||||
|
||||
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||
* Hardware Supported: RP2040
|
||||
* Hardware Availability: [CannonKeys](https://cannonkeys.com)
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cannonkeys/typeb:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cannonkeys/typeb: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**: Toggle the switch on the back of the PCB to "Recovery" and briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
2
keyboards/cannonkeys/typeb/rules.mk
Normal file
2
keyboards/cannonkeys/typeb/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = rp2040_flash
|
115
keyboards/crkbd/keymaps/colemak_luna/config.h
Normal file
115
keyboards/crkbd/keymaps/colemak_luna/config.h
Normal file
@ -0,0 +1,115 @@
|
||||
/*
|
||||
Copyright 2019 @foostan
|
||||
Copyright 2023 @asdfire1
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#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
|
||||
#define RGBLIGHT_LIMIT_VAL 120
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
#endif
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
//# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
|
||||
// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
|
||||
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||
//# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
|
||||
// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
|
||||
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
|
||||
# define RGB_MATRIX_HUE_STEP 8
|
||||
# define RGB_MATRIX_SAT_STEP 8
|
||||
# define RGB_MATRIX_VAL_STEP 8
|
||||
# define RGB_MATRIX_SPD_STEP 10
|
||||
|
||||
/* Enable the animations you want/need. You may need to enable only a small number of these because *
|
||||
* they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */
|
||||
// RGB Matrix Animation modes. Explicitly enabled
|
||||
// For full list of effects, see:
|
||||
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
|
||||
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
//# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
//# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
//# define ENABLE_RGB_MATRIX_BREATHING
|
||||
//# define ENABLE_RGB_MATRIX_BAND_SAT
|
||||
//# define ENABLE_RGB_MATRIX_BAND_VAL
|
||||
//# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
//# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
//# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
//# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
//# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
//# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
//# define ENABLE_RGB_MATRIX_DUAL_BEACON
|
||||
//# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
//# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
//# define ENABLE_RGB_MATRIX_RAINDROPS
|
||||
//# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
//# define ENABLE_RGB_MATRIX_HUE_BREATHING
|
||||
//# define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
||||
//# define ENABLE_RGB_MATRIX_HUE_WAVE
|
||||
//# define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
//# define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
||||
//# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
||||
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
|
||||
//# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
//# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
//# define ENABLE_RGB_MATRIX_SPLASH
|
||||
//# define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
//# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
#endif
|
||||
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
|
||||
#define SPLIT_LAYER_STATE_ENABLE
|
||||
#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268).
|
||||
#define NO_ACTION_ONESHOT
|
||||
//#define SPLIT_OLED_ENABLE
|
||||
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
|
385
keyboards/crkbd/keymaps/colemak_luna/keymap.c
Normal file
385
keyboards/crkbd/keymaps/colemak_luna/keymap.c
Normal file
@ -0,0 +1,385 @@
|
||||
/*
|
||||
Copyright 2019 @foostan
|
||||
Copyright 2021 @HellSingCoder
|
||||
Copyright 2023 @asdfire1
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
//#include <stdio.h>
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
//COLEMAK
|
||||
[0] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, MO(3), KC_SPC, KC_ENT, MO(4), KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
|
||||
),
|
||||
//GAME1
|
||||
[1] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LALT, MO(2), KC_SPC, KC_ENT, MO(4), KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
//GAME2
|
||||
[2] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, KC_F1, KC_F2, XXXXXXX, XXXXXXX, KC_6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, KC_SPC, KC_ENT, MO(5), KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
//LOWER
|
||||
[3] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, KC_MPRV, XXXXXXX, KC_MINS, KC_P7, KC_P8, KC_P9, KC_DEL,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, KC_MPLY, XXXXXXX, KC_PLUS, KC_P4, KC_P5, KC_P6, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MNXT, XXXXXXX, KC_EQL, KC_P1, KC_P2, KC_P3, KC_F13,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, KC_SPC, KC_SPC, MO(5), KC_P0
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
//RAISE
|
||||
[4] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_CAPS, KC_CIRC, KC_AMPR, KC_LCBR, KC_LBRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_RCBR, XXXXXXX, KC_END, KC_PGDN,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, KC_ASTR, KC_UNDS, KC_BSLS, KC_PIPE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, MO(5), KC_BSPC, _______, _______, KC_LALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
//ADJUST
|
||||
[5] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
QK_BOOT, TG(1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, _______, _______, _______, KC_LALT
|
||||
//`--------------------------' `--------------------------'
|
||||
)
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
|
||||
/* 32 * 32 logo */
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM hexagram_logo[] = {
|
||||
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x70, 0x18, 0x06,
|
||||
0x06, 0x18, 0x70, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x07, 0x1f, 0x32, 0x66, 0xc4, 0x6c, 0x38, 0x1e, 0x37, 0x61, 0xc0, 0x80, 0x80,
|
||||
0x80, 0x80, 0xc0, 0x61, 0x37, 0x1e, 0x38, 0x6c, 0xc4, 0x66, 0x32, 0x1f, 0x07, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0xe0, 0xf8, 0x4c, 0x66, 0x23, 0x36, 0x1c, 0x78, 0xec, 0x86, 0x03, 0x01, 0x01,
|
||||
0x01, 0x01, 0x03, 0x86, 0xec, 0x78, 0x1c, 0x36, 0x23, 0x66, 0x4c, 0xf8, 0xe0, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0e, 0x18, 0x60,
|
||||
0x60, 0x18, 0x0e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(hexagram_logo, sizeof(hexagram_logo));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* KEYBOARD PET START */
|
||||
|
||||
/* settings */
|
||||
# define MIN_WALK_SPEED 10
|
||||
# define MIN_RUN_SPEED 40
|
||||
|
||||
/* advanced settings */
|
||||
# define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms
|
||||
# define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024
|
||||
|
||||
/* timers */
|
||||
uint32_t anim_timer = 0;
|
||||
uint32_t anim_sleep = 0;
|
||||
|
||||
/* current frame */
|
||||
uint8_t current_frame = 0;
|
||||
|
||||
/* status variables */
|
||||
int current_wpm = 0;
|
||||
led_t led_usb_state;
|
||||
|
||||
bool isSneaking = false;
|
||||
bool isJumping = false;
|
||||
bool showedJump = true;
|
||||
bool isBarking = false;
|
||||
|
||||
/* logic */
|
||||
static void render_luna(int LUNA_X, int LUNA_Y) {
|
||||
/* Sit */
|
||||
static const char PROGMEM sit[2][ANIM_SIZE] = {/* 'sit1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'sit2', 32x22px */
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||
|
||||
/* Walk */
|
||||
static const char PROGMEM walk[2][ANIM_SIZE] = {/* 'walk1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'walk2', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* Run */
|
||||
static const char PROGMEM run[2][ANIM_SIZE] = {/* 'run1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'run2', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* Bark */
|
||||
static const char PROGMEM bark[2][ANIM_SIZE] = {/* 'bark1', 32x22px */
|
||||
{
|
||||
0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'bark2', 32x22px */
|
||||
{
|
||||
0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* Sneak */
|
||||
static const char PROGMEM sneak[2][ANIM_SIZE] = {/* 'sneak1', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
|
||||
/* 'sneak2', 32x22px */
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
}};
|
||||
|
||||
/* animation */
|
||||
void animate_luna(void) {
|
||||
/* jump */
|
||||
if (isJumping || !showedJump) {
|
||||
/* clear */
|
||||
oled_set_cursor(LUNA_X, LUNA_Y + 2);
|
||||
oled_write(" ", false);
|
||||
|
||||
oled_set_cursor(LUNA_X, LUNA_Y - 1);
|
||||
|
||||
showedJump = true;
|
||||
} else {
|
||||
/* clear */
|
||||
oled_set_cursor(LUNA_X, LUNA_Y - 1);
|
||||
oled_write(" ", false);
|
||||
|
||||
oled_set_cursor(LUNA_X, LUNA_Y);
|
||||
}
|
||||
|
||||
/* switch frame */
|
||||
current_frame = (current_frame + 1) % 2;
|
||||
|
||||
/* current status */
|
||||
if (led_usb_state.caps_lock) {
|
||||
oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else if (isSneaking) {
|
||||
oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else if (current_wpm <= MIN_WALK_SPEED) {
|
||||
oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else if (current_wpm <= MIN_RUN_SPEED) {
|
||||
oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE);
|
||||
|
||||
} else {
|
||||
oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
/* animation timer */
|
||||
if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
|
||||
anim_timer = timer_read32();
|
||||
animate_luna();
|
||||
}
|
||||
|
||||
/* this fixes the screen on and off bug */
|
||||
if (current_wpm > 0) {
|
||||
oled_on();
|
||||
anim_sleep = timer_read32();
|
||||
} else if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
|
||||
/* clear */
|
||||
oled_set_cursor(0,0);
|
||||
oled_write(" ", false);
|
||||
oled_off();
|
||||
oled_set_cursor(LUNA_X,LUNA_Y);
|
||||
}
|
||||
}
|
||||
|
||||
/* KEYBOARD PET END */
|
||||
|
||||
static void print_logo_narrow(void) {
|
||||
render_logo();
|
||||
if (current_wpm > 0) {
|
||||
anim_sleep = timer_read32();
|
||||
/* wpm counter */
|
||||
oled_set_cursor(0, 14);
|
||||
oled_write(get_u8_str(get_current_wpm(), '0'), false);
|
||||
|
||||
oled_set_cursor(0, 15);
|
||||
oled_write(" wpm", false);
|
||||
|
||||
/* this fixes the screen on and off bug */
|
||||
|
||||
} else if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
|
||||
/* clear */
|
||||
oled_set_cursor(0,0);
|
||||
oled_write(" ", false);
|
||||
oled_off();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
switch (get_highest_layer(state)) {
|
||||
case 0:
|
||||
rgb_matrix_reload_from_eeprom();
|
||||
break;
|
||||
case 1:
|
||||
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
|
||||
rgb_matrix_sethsv_noeeprom(HSV_TEAL);
|
||||
break;
|
||||
case 2:
|
||||
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
|
||||
rgb_matrix_sethsv_noeeprom(HSV_PURPLE);
|
||||
break;
|
||||
case 5:
|
||||
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
|
||||
rgb_matrix_sethsv_noeeprom(HSV_YELLOW);
|
||||
break;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
static void print_status_narrow(void) {
|
||||
|
||||
|
||||
/* Print current layer */
|
||||
oled_write("LAYER", false);
|
||||
|
||||
oled_set_cursor(0, 6);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case 0:
|
||||
oled_write("Base ", false);
|
||||
break;
|
||||
case 1:
|
||||
oled_write("Game ", false);
|
||||
break;
|
||||
case 2:
|
||||
oled_write("Game2", false);
|
||||
break;
|
||||
case 3:
|
||||
oled_write("Lower", false);
|
||||
break;
|
||||
case 4:
|
||||
oled_write("Raise", false);
|
||||
break;
|
||||
case 5:
|
||||
oled_write("Adj ", false);
|
||||
break;
|
||||
default:
|
||||
oled_write("Undef", false);
|
||||
}
|
||||
|
||||
|
||||
/* KEYBOARD PET RENDER START */
|
||||
|
||||
render_luna(0, 13);
|
||||
|
||||
/* KEYBOARD PET RENDER END */
|
||||
}
|
||||
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
|
||||
|
||||
bool oled_task_user(void) {
|
||||
/* KEYBOARD PET VARIABLES START */
|
||||
|
||||
current_wpm = get_current_wpm();
|
||||
led_usb_state = host_keyboard_led_state();
|
||||
|
||||
/* KEYBOARD PET VARIABLES END */
|
||||
|
||||
if (is_keyboard_master()) {
|
||||
print_status_narrow();
|
||||
} else {
|
||||
print_logo_narrow();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
/* KEYBOARD PET STATUS START */
|
||||
|
||||
case KC_LCTL:
|
||||
isSneaking = record->event.pressed;
|
||||
break;
|
||||
case KC_SPC:
|
||||
isJumping = record->event.pressed;
|
||||
if (isJumping) {
|
||||
showedJump = false;
|
||||
}
|
||||
break;
|
||||
case KC_CAPS:
|
||||
isBarking = record->event.pressed;
|
||||
break;
|
||||
|
||||
/* KEYBOARD PET STATUS END */
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
17
keyboards/crkbd/keymaps/colemak_luna/readme.md
Normal file
17
keyboards/crkbd/keymaps/colemak_luna/readme.md
Normal file
@ -0,0 +1,17 @@
|
||||
# Personal keymap for the CRKBD
|
||||
My own keymap with some custom OLED features, Colemak base layer and gaming layers. The F13 key on multiple layers can be bound to something, I use it as toggle mute microphone on Discord.
|
||||
## Layers
|
||||
- Colemak - Default layer
|
||||
- Lower - Has numbers and arrows
|
||||
- Raise - Has symbols
|
||||
- Game1 - A QWERTY Gaming layer
|
||||
- Game2 - An alternate lower layer when Game1 is active, has numbers and other keys that may be needed
|
||||
- Adjust - Has F-keys and settings, allows to set the Game1 as base layer.
|
||||
## Custom OLED
|
||||
- Left side:
|
||||
- Layer indicator
|
||||
- Keyboard pet Luna from @HellSingCoder <https://github.com/HellSingCoder/qmk_firmware/tree/master/keyboards/sofle/keymaps/helltm>
|
||||
- Right side
|
||||
- Unicursal hexagram pixel art logo
|
||||
- WPM counter
|
||||
|
8
keyboards/crkbd/keymaps/colemak_luna/rules.mk
Normal file
8
keyboards/crkbd/keymaps/colemak_luna/rules.mk
Normal file
@ -0,0 +1,8 @@
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
RGBLIGHT_ENABLE = no
|
||||
RGB_MATRIX_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
VIA_ENABLE = yes # Enable VIA
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306
|
||||
LTO_ENABLE = yes
|
||||
WPM_ENABLE = yes
|
48
keyboards/cxt_studio/config.h
Normal file
48
keyboards/cxt_studio/config.h
Normal file
@ -0,0 +1,48 @@
|
||||
// Copyright 2023 Colin Kinloch (@ColinKinloch)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 12
|
||||
#define RGB_DI_PIN F7
|
||||
|
||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_TYPING_HEATMAP
|
||||
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
|
||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
#define ENABLE_RGB_MATRIX_SPLASH
|
||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
|
||||
#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 9
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
55
keyboards/cxt_studio/cxt_studio.c
Normal file
55
keyboards/cxt_studio/cxt_studio.c
Normal file
@ -0,0 +1,55 @@
|
||||
// Copyright 2023 Colin Kinloch (@ColinKinloch)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
static uint8_t anim = 0;
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
return false;
|
||||
}
|
||||
switch (index) {
|
||||
case 0: {
|
||||
if (clockwise) {
|
||||
tap_code_delay(KC_VOLU, 10);
|
||||
} else {
|
||||
tap_code_delay(KC_VOLD, 10);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1: {
|
||||
if (clockwise) {
|
||||
rgblight_increase_hue();
|
||||
} else {
|
||||
rgblight_decrease_hue();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2: {
|
||||
if (clockwise) {
|
||||
rgblight_increase_val();
|
||||
} else {
|
||||
rgblight_decrease_val();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3: {
|
||||
if (clockwise) {
|
||||
anim++;
|
||||
} else {
|
||||
anim--;
|
||||
}
|
||||
if (anim >= RGB_MATRIX_EFFECT_MAX) {
|
||||
anim = 0;
|
||||
} else if (anim < 0) {
|
||||
anim = RGB_MATRIX_EFFECT_MAX - 1;
|
||||
}
|
||||
rgblight_mode(anim);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
76
keyboards/cxt_studio/info.json
Normal file
76
keyboards/cxt_studio/info.json
Normal file
@ -0,0 +1,76 @@
|
||||
{
|
||||
"manufacturer": "CXT",
|
||||
"keyboard_name": "cxt_studio",
|
||||
"maintainer": "ColinKinloch",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "ROW2COL",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"encoder": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D4", "D7", "B4", "B5"],
|
||||
"rows": ["C7", "C6", "D6", "F4"]
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{ "pin_a": "D5", "pin_b": "D3" },
|
||||
{ "pin_a": "B2", "pin_b": "B3" },
|
||||
{ "pin_a": "F5", "pin_b": "F6" },
|
||||
{ "pin_a": "E6", "pin_b": "F0" }
|
||||
]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"rgb_matrix": {
|
||||
"driver": "WS2812",
|
||||
"layout": [
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "flags": 4, "matrix": [1, 0], "x": 0, "y": 1 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 1, "y": 1 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 1, "y": 2 },
|
||||
{ "flags": 4, "matrix": [2, 0], "x": 0, "y": 2 }
|
||||
]
|
||||
},
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"layouts": {
|
||||
"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 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
13
keyboards/cxt_studio/keymaps/default/keymap.json
Normal file
13
keyboards/cxt_studio/keymaps/default/keymap.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"keyboard": "cxt_studio",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT",
|
||||
"layers": [
|
||||
[
|
||||
"KC_ESC", "KC_F11", "KC_NO", "KC_MSTP",
|
||||
"KC_NO", "KC_NO", "KC_MRWD", "KC_MFFD",
|
||||
"KC_NO", "KC_MPLY", "KC_MPLY", "KC_MNXT",
|
||||
"KC_MUTE", "KC_NO", "KC_NO", "RGB_TOG"
|
||||
]
|
||||
]
|
||||
}
|
27
keyboards/cxt_studio/readme.md
Normal file
27
keyboards/cxt_studio/readme.md
Normal file
@ -0,0 +1,27 @@
|
||||
# cxt_studio
|
||||
|
||||

|
||||
|
||||
3x4 ortho rgb lighting 4 knobs.
|
||||
|
||||
* Keyboard Maintainer: [Colin Kinloch](https://github.com/ColinKinloch)
|
||||
* Hardware Supported: CXT-Studio
|
||||
* Hardware Availability: AliExpress. I think the manufacturer is on Taobao.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cxt_studio:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cxt_studio: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
|
1
keyboards/cxt_studio/rules.mk
Normal file
1
keyboards/cxt_studio/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
39
keyboards/doio/kb38/config.h
Normal file
39
keyboards/doio/kb38/config.h
Normal file
@ -0,0 +1,39 @@
|
||||
// Copyright 2022 Katrina (@Daggette10)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
#include "config_common.h"
|
||||
|
||||
#define RGB_DI_PIN F6
|
||||
#define RGB_MATRIX_LED_COUNT 44
|
||||
|
||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
|
||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
#define ENABLE_RGB_MATRIX_BREATHING
|
||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||
|
||||
#define ENCODERS_PAD_A { C7, F7, D6 }
|
||||
#define ENCODERS_PAD_B { C6, E6, D7 }
|
||||
#define ENCODER_RESOLUTIONS { 4, 4, 2 }
|
||||
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
135
keyboards/doio/kb38/info.json
Normal file
135
keyboards/doio/kb38/info.json
Normal file
@ -0,0 +1,135 @@
|
||||
{
|
||||
"manufacturer": "Doio",
|
||||
"keyboard_name": "doio/kb38",
|
||||
"maintainer": "PepperKats",
|
||||
"url": "https://www.keebmonkey.com/products/megalodon-doio-triple-knob-38-keyboard-with-oled-screen",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true,
|
||||
"rgblight": false
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F5", "F4", "F1", "F0", "B7", "B6", "B5", "B4"],
|
||||
"rows": ["D5", "D4", "D3", "D2", "B3", "B2"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "WS2812",
|
||||
"layout": [
|
||||
{"flags": 4, "matrix": [0, 0], "x":0, "y":0},
|
||||
{"flags": 4, "matrix": [0, 1], "x":62.2, "y":0},
|
||||
{"flags": 4, "matrix": [0, 2], "x":99.6, "y":0},
|
||||
{"flags": 4, "matrix": [0, 3], "x":124.4, "y":0},
|
||||
{"flags": 4, "matrix": [0, 4], "x":149.3, "y":0},
|
||||
{"flags": 4, "matrix": [0, 5], "x":174.2, "y":0},
|
||||
{"flags": 4, "matrix": [0, 6], "x":199.1, "y":0},
|
||||
{"flags": 4, "matrix": [0, 7], "x":224, "y":0},
|
||||
|
||||
{"flags": 4, "matrix": [1, 0], "x":0, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 1], "x":24.9, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 2], "x":49.8, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 3], "x":74.6, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 4], "x":99.6, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 5], "x":124.4, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 6], "x":149.3, "y":12.8},
|
||||
|
||||
{"flags": 4, "matrix": [2, 0], "x":0, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 1], "x":24.9, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 2], "x":49.8, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 3], "x":74.6, "y":32},
|
||||
{"flags": 4, "matrix": [2, 4], "x":90, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 5], "x":124.4, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 6], "x":149.3, "y":25.6},
|
||||
|
||||
{"flags": 4, "matrix": [3, 0], "x":0, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 1], "x":24.9, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 2], "x":49.8, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 3], "x":99.6, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 4], "x":124.4, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 5], "x":149.3, "y":38.4},
|
||||
|
||||
{"flags": 4, "matrix": [4, 0], "x":0, "y":51.2},
|
||||
{"flags": 4, "matrix": [4, 1], "x":24.9, "y":51.2},
|
||||
{"flags": 4, "matrix": [4, 2], "x":49.8, "y":51.2},
|
||||
{"flags": 4, "matrix": [4, 3], "x":74.6, "y":57.6},
|
||||
{"flags": 4, "matrix": [4, 5], "x":124.4, "y":51.2},
|
||||
|
||||
{"flags": 4, "matrix": [5, 0], "x":12.5, "y":64},
|
||||
{"flags": 4, "matrix": [5, 1], "x":49.8, "y":64},
|
||||
{"flags": 4, "matrix": [5, 2], "x":99.6, "y":64},
|
||||
{"flags": 4, "matrix": [5, 3], "x":124.4, "y":64},
|
||||
{"flags": 4, "matrix": [5, 4], "x":149.3, "y":64},
|
||||
|
||||
{"flags": 2, "x":224, "y":64},
|
||||
{"flags": 2, "x":74.6, "y":64},
|
||||
{"flags": 2, "x":0, "y":64},
|
||||
{"flags": 2, "x":0, "y":0},
|
||||
{"flags": 2, "x":74.6, "y":0},
|
||||
{"flags": 2, "x":224, "y":0}
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "label":"ESC", "x":0, "y":0},
|
||||
{"matrix": [0, 1], "label":"BSPC", "x":1, "y":0},
|
||||
{"matrix": [0, 2], "label":"RGB BACK", "x":2, "y":0},
|
||||
{"matrix": [0, 3], "label":"RGB OFF", "x":3, "y":0},
|
||||
{"matrix": [0, 4], "label":"RGB FORW", "x":4, "y":0},
|
||||
{"matrix": [0, 5], "label":"MAKE", "x":5, "y":0},
|
||||
{"matrix": [0, 6], "label":"REBOOT", "x":6, "y":0},
|
||||
{"matrix": [0, 7], "label":"BOOTLOAD", "x":7, "y":0},
|
||||
|
||||
{"matrix": [1, 0], "label":"NUMLOCK", "x":0, "y":1},
|
||||
{"matrix": [1, 1], "label":"PSLS", "x":1, "y":1},
|
||||
{"matrix": [1, 2], "label":"PAST", "x":2, "y":1},
|
||||
{"matrix": [1, 3], "label":"PMNS", "x":3, "y":1},
|
||||
{"matrix": [1, 4], "label":"PAUS", "x":3, "y":1},
|
||||
{"matrix": [1, 5], "label":"SCRL", "x":3, "y":1},
|
||||
{"matrix": [1, 6], "label":"PSCR", "x":3, "y":1},
|
||||
|
||||
{"matrix": [2, 0], "label":"7", "x":0, "y":2},
|
||||
{"matrix": [2, 1], "label":"8", "x":1, "y":2},
|
||||
{"matrix": [2, 2], "label":"9", "x":2, "y":2},
|
||||
{"matrix": [2, 3], "label":"PPLS", "x":3, "y":2},
|
||||
{"matrix": [2, 4], "label":"INS", "x":3, "y":2},
|
||||
{"matrix": [2, 5], "label":"HOME", "x":3, "y":2},
|
||||
{"matrix": [2, 6], "label":"PGUP", "x":3, "y":2},
|
||||
|
||||
{"matrix": [3, 0], "label":"4", "x":0, "y":3},
|
||||
{"matrix": [3, 1], "label":"5", "x":1, "y":3},
|
||||
{"matrix": [3, 2], "label":"6", "x":2, "y":3},
|
||||
{"matrix": [3, 3], "label":"END", "x":3, "y":3},
|
||||
{"matrix": [3, 4], "label":"DEL", "x":3, "y":3},
|
||||
{"matrix": [3, 5], "label":"PGDN", "x":3, "y":3},
|
||||
|
||||
{"matrix": [4, 0], "label":"1", "x":0, "y":4},
|
||||
{"matrix": [4, 1], "label":"2", "x":1, "y":4},
|
||||
{"matrix": [4, 2], "label":"3", "x":2, "y":4},
|
||||
{"matrix": [4, 3], "label":"PENT", "x":3, "y":4},
|
||||
{"matrix": [4, 5], "label":"UP", "x":3, "y":4},
|
||||
|
||||
{"matrix": [5, 0], "label":"0", "x":0, "y":5},
|
||||
{"matrix": [5, 1], "label":"PDOT", "x":1, "y":5},
|
||||
{"matrix": [5, 2], "label":"LEFT", "x":2, "y":5},
|
||||
{"matrix": [5, 3], "label":"DOWN", "x":3, "y":5},
|
||||
{"matrix": [5, 4], "label":"RIGHT", "x":4, "y":5},
|
||||
{"matrix": [5, 5], "label":"KNOB_L", "x":3, "y":5},
|
||||
{"matrix": [5, 6], "label":"KNOB_R", "x":3, "y":5},
|
||||
{"matrix": [5, 7], "label":"KNOB_D", "x":3, "y":5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
69
keyboards/doio/kb38/kb38.c
Normal file
69
keyboards/doio/kb38/kb38.c
Normal file
@ -0,0 +1,69 @@
|
||||
/* Copyright 2021 Katrina (@PepperKats)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
//Display
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM qmk_logo[] = {
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
|
||||
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
|
||||
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
|
||||
};
|
||||
|
||||
oled_write_P(qmk_logo, false);
|
||||
}
|
||||
|
||||
bool oled_task_kb(void) {
|
||||
if (!oled_task_user()) { return false; }
|
||||
render_logo();
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
//Knobs
|
||||
#ifdef ENCODER_ENABLE
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (index == 0) {
|
||||
// Page Up/Down
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
// Mouse Wheel Up/Down
|
||||
if (clockwise) {
|
||||
tap_code(KC_MS_WH_DOWN);
|
||||
} else {
|
||||
tap_code(KC_MS_WH_UP);
|
||||
}
|
||||
} else if (index == 2) {
|
||||
// Volume Up/Down
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
61
keyboards/doio/kb38/keymaps/default/keymap.c
Normal file
61
keyboards/doio/kb38/keymaps/default/keymap.c
Normal file
@ -0,0 +1,61 @@
|
||||
/* Copyright 2021 Katrina (@PepperKats)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_QWERTY,
|
||||
_LAYERTWO
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* ┌───┐ ┌───────┐┌───┬───┬───┐┌───┬───┬───┐
|
||||
* │ESC│ │KC_BSPC││F1 │F2 │F3 ││F4 │F5 │F6 │
|
||||
* └───┘ └───────┘└───┴───┴───┘└───┴───┴───┘
|
||||
* ┌───┬───┬───┬───┐┌───┬───┬───┐
|
||||
* │NUM│ / │ * │ - ││PAS│SCR│PSC│
|
||||
* ├───┼───┼───┼───┤├───┼───┼───│
|
||||
* │ 7 │ 8 │ 9 │ ││INS│HOM│PGU│
|
||||
* ├───┼───┼───│ + │├───┼───┼───│
|
||||
* │ 4 │ 5 │ 6 │ ││END│DEL│PGD│
|
||||
* ├───┼───┼───┼───┤└───┼───┼───┘
|
||||
* │ 1 │ 2 │ 3 │ E │ │UP │
|
||||
* ├───┼───┼───│ N │┌───┼───┼───┐┌───┬───┬───┐
|
||||
* │ 0 │DEL│ T ││LFT│DWN│RHT││ O │ O │ O │
|
||||
* └───┴───┴───┴───┘└───┴───┴───┘└───┴───┴───┘
|
||||
*/
|
||||
[_QWERTY] = LAYOUT(
|
||||
MO(1), KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_F1, KC_F2, KC_F3,
|
||||
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR,
|
||||
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN,
|
||||
KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP,
|
||||
KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, KC_B
|
||||
),
|
||||
[_LAYERTWO] = LAYOUT(
|
||||
_______, KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_A, QK_REBOOT, QK_BOOTLOADER,
|
||||
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR,
|
||||
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN,
|
||||
KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP,
|
||||
KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, KC_B
|
||||
)
|
||||
};
|
||||
|
||||
/*NOTE FOR PERSON MODIFYING KEYMAP
|
||||
The large knob press is mapped as KC_B, despite it not having one.
|
||||
I'm not quite sure why, but the only reason it can't be clicked is because the potentiometer is different.
|
||||
If you were to replace it with one that can be clicked, it would work. I shorted it and it does work.*/
|
24
keyboards/doio/kb38/readme.md
Normal file
24
keyboards/doio/kb38/readme.md
Normal file
@ -0,0 +1,24 @@
|
||||
# doio/kb38
|
||||
|
||||
QMK for Megalodon DOIO Triple Knob 38% with OLED Screen.
|
||||
|
||||
* Keyboard Maintainer: [Katrina](https://github.com/PepperKats)
|
||||
* Hardware Supported: Megalodon DOIO Triple Knob 38%
|
||||
* Hardware Availability: https://www.keebmonkey.com/products/megalodon-doio-triple-knob-38-keyboard-with-oled-screen
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make doio/kb38:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make doio/kb38: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:
|
||||
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
27
keyboards/doio/kb38/rgb_matrix_kb.inc
Normal file
27
keyboards/doio/kb38/rgb_matrix_kb.inc
Normal file
@ -0,0 +1,27 @@
|
||||
RGB_MATRIX_EFFECT(trans)
|
||||
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
|
||||
static bool trans(effect_params_t* params) {
|
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max);
|
||||
for (int i = 0; i < 8; i++) {
|
||||
rgb_matrix_set_color(i, 0x00, 0x00, 0xFF);
|
||||
}
|
||||
for (int i = 8; i < 15; i++) {
|
||||
rgb_matrix_set_color(i, 0xFF, 0x00, 0x92);
|
||||
}
|
||||
for (int i = 15; i < 28; i++) {
|
||||
rgb_matrix_set_color(i, 0xFF, 0xFF, 0xFF);
|
||||
}
|
||||
for (int i = 28; i < 33; i++) {
|
||||
rgb_matrix_set_color(i, 0xFF, 0x00, 0x92);
|
||||
}
|
||||
for (int i = 33; i < 38; i++) {
|
||||
rgb_matrix_set_color(i, 0x00, 0x00, 0xFF);
|
||||
}
|
||||
for (int i = 38; i < 44; i++) {
|
||||
rgb_matrix_set_color(i, 0x00, 0x00, 0xFF);
|
||||
}
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
#endif
|
3
keyboards/doio/kb38/rules.mk
Normal file
3
keyboards/doio/kb38/rules.mk
Normal file
@ -0,0 +1,3 @@
|
||||
OLED_ENABLE = yes
|
||||
ENCODER_ENABLE = yes
|
||||
RGB_MATRIX_CUSTOM_KB = yes
|
26
keyboards/eason/greatsword80/config.h
Normal file
26
keyboards/eason/greatsword80/config.h
Normal file
@ -0,0 +1,26 @@
|
||||
/* Copyright 2023 Eason <xiaoxuxk@yeah.net>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, D4 }
|
||||
#define MATRIX_COL_PINS { D6, D7, B4, B5, B6, C6, C7, E2, F7, F6, F5, F4, B0, B1, B2, B3 }
|
||||
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define LED_CAPS_LOCK_PIN F0
|
||||
#define LED_PIN_ON_STATE 0
|
112
keyboards/eason/greatsword80/info.json
Normal file
112
keyboards/eason/greatsword80/info.json
Normal file
@ -0,0 +1,112 @@
|
||||
{
|
||||
"keyboard_name": "GREATSWORD80",
|
||||
"manufacturer": "Eason",
|
||||
"url": "https://github.com/EasonQian1",
|
||||
"maintainer": "Eason",
|
||||
"usb": {
|
||||
"vid": "0x980E",
|
||||
"pid": "0x998F",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label": "K00 (D0,D6)", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "K01 (D0,D7)", "matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"label": "K02 (D0,B4)", "matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"label": "K03 (D0,B5)", "matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"label": "K04 (D0,B6)", "matrix": [0, 4], "x": 4.25, "y": 0},
|
||||
{"label": "K05 (D0,C6)", "matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"label": "K06 (D0,C7)", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label": "K07 (D0,E2)", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label": "K08 (D0,F7)", "matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"label": "K09 (D0,F6)", "matrix": [0, 9], "x": 9.75, "y": 0},
|
||||
{"label": "K0A (D0,F5)", "matrix": [0, 10], "x": 10.75, "y": 0},
|
||||
{"label": "K0B (D0,F4)", "matrix": [0, 11], "x": 11.75, "y": 0},
|
||||
{"label": "K0C (D0,B0)", "matrix": [0, 12], "x": 12.75, "y": 0},
|
||||
{"label": "K0D (D0,B1)", "matrix": [0, 13], "x": 14, "y": 0},
|
||||
{"label": "K0E (D0,B2)", "matrix": [0, 14], "x": 15.5, "y": 0},
|
||||
{"label": "K0F (D0,B3)", "matrix": [0, 15], "x": 16.5, "y": 0},
|
||||
{"label": "K5A (D4,F5)", "matrix": [5, 10], "x": 17.5, "y": 0},
|
||||
|
||||
{"label": "K10 (D1,D6)", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label": "K11 (D1,D7)", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label": "K12 (D1,B4)", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label": "K13 (D1,B5)", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label": "K14 (D1,B6)", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label": "K15 (D1,C6)", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label": "K16 (D1,C7)", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label": "K17 (D1,E2)", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label": "K18 (D1,F7)", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label": "K19 (D1,F6)", "matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"label": "K1A (D1,F5)", "matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"label": "K1B (D1,F4)", "matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"label": "K1C (D1,B0)", "matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"label": "K1D (D1,B1)", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
{"label": "K1E (D1,B2)", "matrix": [1, 14], "x": 15.5, "y": 1.25},
|
||||
{"label": "K1F (D1,B3)", "matrix": [1, 15], "x": 16.5, "y": 1.25},
|
||||
{"label": "K5B (D4,F4)", "matrix": [5, 11], "x": 17.5, "y": 1.25},
|
||||
|
||||
{"label": "K20 (D2,D6)", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label": "K21 (D2,D7)", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label": "K22 (D2,B4)", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label": "K23 (D2,B5)", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label": "K24 (D2,B6)", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label": "K25 (D2,C6)", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label": "K26 (D2,C7)", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label": "K27 (D2,E2)", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label": "K28 (D2,F7)", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label": "K29 (D2,F6)", "matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"label": "K2A (D2,F5)", "matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"label": "K2B (D2,F4)", "matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"label": "K2C (D2,B0)", "matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"label": "K2D (D2,B1)", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
{"label": "K2E (D2,B2)", "matrix": [2, 14], "x": 15.5, "y": 2.25},
|
||||
{"label": "K2F (D2,B3)", "matrix": [2, 15], "x": 16.5, "y": 2.25},
|
||||
{"label": "K5C (D4,B0)", "matrix": [5, 12], "x": 17.5, "y": 2.25},
|
||||
|
||||
{"label": "K30 (D3,D6)", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label": "K31 (D3,D7)", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label": "K32 (D3,B4)", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label": "K33 (D3,B5)", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label": "K34 (D3,B6)", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label": "K35 (D3,C6)", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label": "K36 (D3,C7)", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label": "K37 (D3,E2)", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label": "K38 (D3,F7)", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label": "K39 (D3,F6)", "matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"label": "K3A (D3,F5)", "matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"label": "K3B (D3,F4)", "matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"label": "K3C (D3,B0)", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"label": "K40 (D5,D6)", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"label": "K41 (D5,D7)", "matrix": [4, 1], "x": 1.25, "y": 4.25},
|
||||
{"label": "K42 (D5,B4)", "matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"label": "K43 (D5,B5)", "matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"label": "K44 (D5,B6)", "matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"label": "K45 (D5,C6)", "matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"label": "K46 (D5,C7)", "matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"label": "K47 (D5,E2)", "matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"label": "K48 (D5,F7)", "matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"label": "K49 (D5,F6)", "matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"label": "K4A (D5,F5)", "matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"label": "K4B (D5,F4)", "matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"label": "K4C (D5,B0)", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
{"label": "K4E (D5,B2)", "matrix": [4, 14], "x": 16.5, "y": 4.25},
|
||||
|
||||
{"label": "K50 (D4,D6)", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "K51 (D4,D7)", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "K52 (D4,B4)", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "K56 (D4,C7)", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "K57 (D4,E2)", "matrix": [5, 7], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "K58 (D4,F7)", "matrix": [5, 8], "x": 12.5, "y": 5.25},
|
||||
{"label": "K59 (D4,F6)", "matrix": [5, 9], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "K5D (D4,B1)", "matrix": [5, 13], "x": 15.5, "y": 5.25},
|
||||
{"label": "K5E (D4,B2)", "matrix": [5, 14], "x": 16.5, "y": 5.25},
|
||||
{"label": "K5F (D4,B3)", "matrix": [5, 15], "x": 17.5, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
38
keyboards/eason/greatsword80/keymaps/default/keymap.c
Normal file
38
keyboards/eason/greatsword80/keymaps/default/keymap.c
Normal file
@ -0,0 +1,38 @@
|
||||
/* Copyright 2023 Eason <xiaoxuxk@yeah.net>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
56
keyboards/eason/greatsword80/keymaps/via/keymap.c
Normal file
56
keyboards/eason/greatsword80/keymaps/via/keymap.c
Normal file
@ -0,0 +1,56 @@
|
||||
/* Copyright 2023 Eason <xiaoxuxk@yeah.net>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[2] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[3] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
|
||||
};
|
2
keyboards/eason/greatsword80/keymaps/via/rules.mk
Normal file
2
keyboards/eason/greatsword80/keymaps/via/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
22
keyboards/eason/greatsword80/readme.md
Normal file
22
keyboards/eason/greatsword80/readme.md
Normal file
@ -0,0 +1,22 @@
|
||||
# GREATSWORD80
|
||||
A customizable soldering 80% keyboard.
|
||||
|
||||
* Keyboard Maintainer: [eason](https://github.com/EasonQian1)
|
||||
* Hardware Supported: greatsword80
|
||||
* Hardware Availability: [eason](https://github.com/EasonQian1)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make eason/greatsword80:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make eason/greatsword80: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 esc in the keyboard then replug
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT`
|
12
keyboards/eason/greatsword80/rules.mk
Normal file
12
keyboards/eason/greatsword80/rules.mk
Normal file
@ -0,0 +1,12 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
119
keyboards/igloo/info.json
Normal file
119
keyboards/igloo/info.json
Normal file
@ -0,0 +1,119 @@
|
||||
{
|
||||
"manufacturer": "Dong Jae Shin",
|
||||
"keyboard_name": "Igloo",
|
||||
"maintainer": "Dong Jae Shin",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F7", "F6", "F5", "F4", "F1", "F0",
|
||||
"B0", "B1", "B2", "B4", "B5", "B6",
|
||||
"C6", "C7", "D5", "D6", "D4"],
|
||||
"rows": ["B7", "D0", "D1", "D2", "D3"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0001",
|
||||
"vid": "0xBEAD"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_nofrow_ansi": {
|
||||
"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": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 10, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 12, "y": 0 },
|
||||
{ "matrix": [0, 13], "w": 2, "x": 13, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||
|
||||
{ "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||
{ "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||
{ "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||
{ "matrix": [1, 14], "x": 15.25, "y": 1 },
|
||||
{ "matrix": [1, 15], "x": 16.25, "y": 1 },
|
||||
{ "matrix": [1, 16], "x": 17.25, "y": 1 },
|
||||
|
||||
{ "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||
{ "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
|
||||
{ "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
|
||||
{ "matrix": [2, 14], "x": 12.75, "y": 2 },
|
||||
{ "matrix": [2, 15], "x": 13, "y": 0 },
|
||||
|
||||
|
||||
{ "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 1.25, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 2.25, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 3.25, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 4.25, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 5.25, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 6.25, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 7.25, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 8.25, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 9.25, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 10.25, "y": 3 },
|
||||
{ "matrix": [3, 11], "x": 11.25, "y": 3 },
|
||||
{ "matrix": [3, 12], "x": 12.25, "y": 3 },
|
||||
{ "matrix": [3, 14], "x": 13.25, "y": 3 },
|
||||
{ "matrix": [3, 15], "x": 16.25, "y": 3 },
|
||||
|
||||
{ "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 },
|
||||
{ "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 },
|
||||
{ "matrix": [4, 3], "x": 6.25, "y": 4 },
|
||||
{ "matrix": [4, 4], "w": 2.25, "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4 },
|
||||
{ "matrix": [4, 6], "w": 2.25, "x": 7.25, "y": 4 },
|
||||
{ "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 },
|
||||
{ "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 },
|
||||
{ "matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4 },
|
||||
{ "matrix": [4, 12], "w": 1.25, "x": 13.75, "y": 4 },
|
||||
{ "matrix": [4, 13], "w": 1.25, "x": 15, "y": 4 },
|
||||
{ "matrix": [4, 14], "x": 15.25, "y": 4 },
|
||||
{ "matrix": [4, 15], "x": 16.25, "y": 4 },
|
||||
{ "matrix": [4, 16], "x": 17.25, "y": 4 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
42
keyboards/igloo/keymaps/default/keymap.c
Normal file
42
keyboards/igloo/keymaps/default/keymap.c
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
Copyright 2023 Dong Jae Shin <djok0127@gmail.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
enum layers {
|
||||
_LAYER0,
|
||||
_LAYER1,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_LAYER0] = LAYOUT_tkl_nofrow_ansi(
|
||||
// 0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_NONUS_HASH, KC_BSPC,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_LAYER1] = LAYOUT_tkl_nofrow_ansi(
|
||||
// 0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
42
keyboards/igloo/keymaps/via/keymap.c
Normal file
42
keyboards/igloo/keymaps/via/keymap.c
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
Copyright 2023 Dong Jae Shin <djok0127@gmail.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
enum layers {
|
||||
_LAYER0,
|
||||
_LAYER1,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_LAYER0] = LAYOUT_tkl_nofrow_ansi(
|
||||
// 0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_NONUS_HASH, KC_BSPC,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_LAYER1] = LAYOUT_tkl_nofrow_ansi(
|
||||
// 0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
1
keyboards/igloo/keymaps/via/rules.mk
Normal file
1
keyboards/igloo/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
18
keyboards/igloo/readme.md
Normal file
18
keyboards/igloo/readme.md
Normal file
@ -0,0 +1,18 @@
|
||||
# Igloo
|
||||
|
||||
* Keyboard Maintainer: [Chris Shin](https://github.com/djok0127)
|
||||
* Hardware Supported: Igloo PCB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make igloo:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make igloo: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
|
||||
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
1
keyboards/igloo/rules.mk
Normal file
1
keyboards/igloo/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
@ -112,8 +112,8 @@
|
||||
{ "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "x": 1.5, "y": 4 },
|
||||
{ "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 },
|
||||
{ "matrix": [4, 3], "w": 7, "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 },
|
||||
{ "matrix": [4, 7], "w": 7, "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
|
||||
{ "matrix": [4, 12], "x": 13, "y": 4 },
|
||||
{ "matrix": [4, 13], "x": 14, "y": 4 },
|
||||
{ "matrix": [4, 14], "x": 15, "y": 4 }
|
||||
|
@ -8,6 +8,8 @@
|
||||
"pid": "0x0110",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_ansi_67": {
|
||||
"layout": [
|
||||
|
@ -1,9 +1,3 @@
|
||||
# MCU name
|
||||
MCU = STM32L433
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = stm32-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
|
@ -8,6 +8,8 @@
|
||||
"pid": "0x0111",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_ansi_67": {
|
||||
"layout": [
|
||||
|
@ -1,9 +1,3 @@
|
||||
# MCU name
|
||||
MCU = STM32L433
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = stm32-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
|
@ -8,6 +8,8 @@
|
||||
"pid": "0x0112",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_iso_68": {
|
||||
"layout": [
|
||||
|
@ -1,9 +1,3 @@
|
||||
# MCU name
|
||||
MCU = STM32L433
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = stm32-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
|
@ -8,6 +8,8 @@
|
||||
"pid": "0x0113",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_iso_68": {
|
||||
"layout": [
|
||||
|
@ -1,9 +1,3 @@
|
||||
# MCU name
|
||||
MCU = STM32L433
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = stm32-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
|
27
keyboards/keychron/q2/jis/config.h
Normal file
27
keyboards/keychron/q2/jis/config.h
Normal file
@ -0,0 +1,27 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* RGB Matrix Configuration */
|
||||
#define DRIVER_1_LED_TOTAL 35
|
||||
#define DRIVER_2_LED_TOTAL 36
|
||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||
|
||||
#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D }
|
||||
|
||||
/* Enable caps-lock LED */
|
||||
#define CAPS_LOCK_LED_INDEX 30
|
94
keyboards/keychron/q2/jis/info.json
Normal file
94
keyboards/keychron/q2/jis/info.json
Normal file
@ -0,0 +1,94 @@
|
||||
{
|
||||
"keyboard_name": "Keychron Q2",
|
||||
"manufacturer": "Keychron",
|
||||
"url": "https://github.com/Keychron",
|
||||
"maintainer": "lalalademaxiya1",
|
||||
"usb": {
|
||||
"vid": "0x3434",
|
||||
"pid": "0x0114",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_jis_71": {
|
||||
"layout": [
|
||||
{"matrix":[0, 0], "x":0, "y":0.25},
|
||||
{"matrix":[0, 1], "x":1, "y":0.25},
|
||||
{"matrix":[0, 2], "x":2, "y":0.25},
|
||||
{"matrix":[0, 3], "x":3, "y":0.25},
|
||||
{"matrix":[0, 4], "x":4, "y":0.25},
|
||||
{"matrix":[0, 5], "x":5, "y":0.25},
|
||||
{"matrix":[0, 6], "x":6, "y":0.25},
|
||||
{"matrix":[0, 7], "x":7, "y":0.25},
|
||||
{"matrix":[0, 8], "x":8, "y":0.25},
|
||||
{"matrix":[0, 9], "x":9, "y":0.25},
|
||||
{"matrix":[0,10], "x":10, "y":0.25},
|
||||
{"matrix":[0,11], "x":11, "y":0.25},
|
||||
{"matrix":[0,12], "x":12, "y":0.25},
|
||||
{"matrix":[0,13], "x":13, "y":0.25},
|
||||
{"matrix":[3, 1], "x":14, "y":0.25},
|
||||
{"matrix":[0,14], "x":15.25, "y":0},
|
||||
|
||||
{"matrix":[1, 0], "x":0, "y":1.25, "w":1.5},
|
||||
{"matrix":[1, 1], "x":1.5, "y":1.25},
|
||||
{"matrix":[1, 2], "x":2.5, "y":1.25},
|
||||
{"matrix":[1, 3], "x":3.5, "y":1.25},
|
||||
{"matrix":[1, 4], "x":4.5, "y":1.25},
|
||||
{"matrix":[1, 5], "x":5.5, "y":1.25},
|
||||
{"matrix":[1, 6], "x":6.5, "y":1.25},
|
||||
{"matrix":[1, 7], "x":7.5, "y":1.25},
|
||||
{"matrix":[1, 8], "x":8.5, "y":1.25},
|
||||
{"matrix":[1, 9], "x":9.5, "y":1.25},
|
||||
{"matrix":[1,10], "x":10.5, "y":1.25},
|
||||
{"matrix":[1,11], "x":11.5, "y":1.25},
|
||||
{"matrix":[1,12], "x":12.5, "y":1.25},
|
||||
{"matrix":[1,14], "x":15.25, "y":1.25},
|
||||
|
||||
{"matrix":[2, 0], "x":0, "y":2.25, "w":1.75},
|
||||
{"matrix":[2, 1], "x":1.75, "y":2.25},
|
||||
{"matrix":[2, 2], "x":2.75, "y":2.25},
|
||||
{"matrix":[2, 3], "x":3.75, "y":2.25},
|
||||
{"matrix":[2, 4], "x":4.75, "y":2.25},
|
||||
{"matrix":[2, 5], "x":5.75, "y":2.25},
|
||||
{"matrix":[2, 6], "x":6.75, "y":2.25},
|
||||
{"matrix":[2, 7], "x":7.75, "y":2.25},
|
||||
{"matrix":[2, 8], "x":8.75, "y":2.25},
|
||||
{"matrix":[2, 9], "x":9.75, "y":2.25},
|
||||
{"matrix":[2,10], "x":10.75, "y":2.25},
|
||||
{"matrix":[2,11], "x":11.75, "y":2.25},
|
||||
{"matrix":[2,13], "x":12.75, "y":2.25},
|
||||
{"matrix":[1,13], "x":13.75, "y":1.25, "w":1.25, "h":2},
|
||||
{"matrix":[2,14], "x":15.25, "y":2.25},
|
||||
|
||||
{"matrix":[3, 0], "x":0, "y":3.25, "w":2.25},
|
||||
{"matrix":[3, 2], "x":2.25, "y":3.25},
|
||||
{"matrix":[3, 3], "x":3.25, "y":3.25},
|
||||
{"matrix":[3, 4], "x":4.25, "y":3.25},
|
||||
{"matrix":[3, 5], "x":5.25, "y":3.25},
|
||||
{"matrix":[3, 6], "x":6.25, "y":3.25},
|
||||
{"matrix":[3, 7], "x":7.25, "y":3.25},
|
||||
{"matrix":[3, 8], "x":8.25, "y":3.25},
|
||||
{"matrix":[3, 9], "x":9.25, "y":3.25},
|
||||
{"matrix":[3,10], "x":10.25, "y":3.25},
|
||||
{"matrix":[3,11], "x":11.25, "y":3.25},
|
||||
{"matrix":[3,12], "x":12.25, "y":3.25},
|
||||
{"matrix":[3,13], "x":13.25, "y":3.25},
|
||||
{"matrix":[3,14], "x":14.25, "y":3.25},
|
||||
|
||||
{"matrix":[4, 0], "x":0, "y":4.25, "w":1.25},
|
||||
{"matrix":[4, 1], "x":1.25, "y":4.25},
|
||||
{"matrix":[4, 2], "x":2.25, "y":4.25, "w":1.25},
|
||||
{"matrix":[4, 3], "x":3.5, "y":4.25},
|
||||
{"matrix":[4, 6], "x":4.5, "y":4.25, "w":4.5},
|
||||
{"matrix":[4, 9], "x":9, "y":4.25, "w":1.25},
|
||||
{"matrix":[4,10], "x":10.25, "y":4.25},
|
||||
{"matrix":[4,11], "x":11.25, "y":4.25},
|
||||
{"matrix":[4,12], "x":12.25, "y":4.25},
|
||||
{"matrix":[4,13], "x":13.25, "y":4.25},
|
||||
{"matrix":[2,12], "x":14.25, "y":4.25},
|
||||
{"matrix":[4,14], "x":15.25, "y":4.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
134
keyboards/keychron/q2/jis/jis.c
Normal file
134
keyboards/keychron/q2/jis/jis.c
Normal file
@ -0,0 +1,134 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
{0, C_1, A_1, B_1},
|
||||
{0, C_2, A_2, B_2},
|
||||
{0, C_3, A_3, B_3},
|
||||
{0, C_4, A_4, B_4},
|
||||
{0, C_5, A_5, B_5},
|
||||
{0, C_6, A_6, B_6},
|
||||
{0, C_7, A_7, B_7},
|
||||
{0, C_8, A_8, B_8},
|
||||
{0, C_9, A_9, B_9},
|
||||
{0, C_10, A_10, B_10},
|
||||
{0, C_11, A_11, B_11},
|
||||
{0, C_12, A_12, B_12},
|
||||
{0, C_13, A_13, B_13},
|
||||
{0, C_14, A_14, B_14},
|
||||
{0, C_15, A_15, B_15},
|
||||
{0, C_16, A_16, B_16},
|
||||
|
||||
{0, F_1, D_1, E_1},
|
||||
{0, F_2, D_2, E_2},
|
||||
{0, F_3, D_3, E_3},
|
||||
{0, F_4, D_4, E_4},
|
||||
{0, F_5, D_5, E_5},
|
||||
{0, F_6, D_6, E_6},
|
||||
{0, F_7, D_7, E_7},
|
||||
{0, F_8, D_8, E_8},
|
||||
{0, F_9, D_9, E_9},
|
||||
{0, F_10, D_10, E_10},
|
||||
{0, F_11, D_11, E_11},
|
||||
{0, F_12, D_12, E_12},
|
||||
{0, F_13, D_13, E_13},
|
||||
{0, F_16, D_16, E_16},
|
||||
|
||||
{0, I_1, G_1, H_1},
|
||||
{0, I_2, G_2, H_2},
|
||||
{0, I_3, G_3, H_3},
|
||||
{0, I_4, G_4, H_4},
|
||||
{0, I_5, G_5, H_5},
|
||||
{1, I_6, G_6, H_6},
|
||||
{1, I_7, G_7, H_7},
|
||||
{1, I_8, G_8, H_8},
|
||||
{1, I_9, G_9, H_9},
|
||||
{1, I_10, G_10, H_10},
|
||||
{1, I_11, G_11, H_11},
|
||||
{1, I_12, G_12, H_12},
|
||||
{1, I_14, G_14, H_14},
|
||||
{0, F_14, D_14, E_14},
|
||||
{1, I_16, G_16, H_16},
|
||||
|
||||
{1, C_1, A_1, B_1},
|
||||
{1, C_3, A_3, B_3},
|
||||
{1, C_4, A_4, B_4},
|
||||
{1, C_5, A_5, B_5},
|
||||
{1, C_6, A_6, B_6},
|
||||
{1, C_7, A_7, B_7},
|
||||
{1, C_8, A_8, B_8},
|
||||
{1, C_9, A_9, B_9},
|
||||
{1, C_10, A_10, B_10},
|
||||
{1, C_11, A_11, B_11},
|
||||
{1, C_12, A_12, B_12},
|
||||
{1, C_13, A_13, B_13},
|
||||
{1, C_14, A_14, B_14},
|
||||
{1, C_15, A_15, B_15},
|
||||
|
||||
{1, F_1, D_1, E_1},
|
||||
{1, F_2, D_2, E_2},
|
||||
{1, F_3, D_3, E_3},
|
||||
{1, F_4, D_4, E_4},
|
||||
{1, F_7, D_7, E_7},
|
||||
{1, F_10, D_10, E_10},
|
||||
{1, F_11, D_11, E_11},
|
||||
{1, F_12, D_12, E_12},
|
||||
{1, F_13, D_13, E_13},
|
||||
{1, F_14, D_14, E_14},
|
||||
{1, F_15, D_15, E_15},
|
||||
{1, F_16, D_16, E_16}
|
||||
};
|
||||
|
||||
#define __ NO_LED
|
||||
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
// Key Matrix to LED Index
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
|
||||
{ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 },
|
||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 },
|
||||
{ 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
|
||||
{ 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 }
|
||||
},
|
||||
{
|
||||
// LED Index to Physical Position
|
||||
{0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0},
|
||||
{4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19},
|
||||
{6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34},
|
||||
{9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49},
|
||||
{2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64},
|
||||
},
|
||||
{
|
||||
// RGB LED Index to Flag
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
|
||||
}
|
||||
};
|
||||
|
||||
#endif // RGB_MATRIX_ENABLE
|
67
keyboards/keychron/q2/jis/keymaps/default/keymap.c
Normal file
67
keyboards/keychron/q2/jis/keymaps/default/keymap.c
Normal file
@ -0,0 +1,67 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_INS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_INS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
74
keyboards/keychron/q2/jis/keymaps/keychron/keymap.c
Normal file
74
keyboards/keychron/q2/jis/keymaps/keychron/keymap.c
Normal file
@ -0,0 +1,74 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keychron_common.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_INS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_INS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_keychron(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
4
keyboards/keychron/q2/jis/keymaps/keychron/rules.mk
Normal file
4
keyboards/keychron/q2/jis/keymaps/keychron/rules.mk
Normal file
@ -0,0 +1,4 @@
|
||||
VIA_ENABLE = yes
|
||||
|
||||
VPATH += keyboards/keychron/common
|
||||
SRC += keychron_common.c
|
67
keyboards/keychron/q2/jis/keymaps/via/keymap.c
Normal file
67
keyboards/keychron/q2/jis/keymaps/via/keymap.c
Normal file
@ -0,0 +1,67 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_INS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_INS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
1
keyboards/keychron/q2/jis/keymaps/via/rules.mk
Normal file
1
keyboards/keychron/q2/jis/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
21
keyboards/keychron/q2/jis/rules.mk
Normal file
21
keyboards/keychron/q2/jis/rules.mk
Normal file
@ -0,0 +1,21 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable USB N-key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
DIP_SWITCH_ENABLE = yes
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
RGB_MATRIX_DRIVER = CKLED2001
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = embedded_flash
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||
|
33
keyboards/keychron/q2/jis_encoder/config.h
Normal file
33
keyboards/keychron/q2/jis_encoder/config.h
Normal file
@ -0,0 +1,33 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* RGB Matrix Configuration */
|
||||
#define DRIVER_1_LED_TOTAL 35
|
||||
#define DRIVER_2_LED_TOTAL 36
|
||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||
|
||||
#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D }
|
||||
|
||||
/* Encoder Configuration */
|
||||
#define ENCODERS_PAD_A { A10 }
|
||||
#define ENCODERS_PAD_B { B5 }
|
||||
#define ENCODER_RESOLUTION 4
|
||||
#define ENCODER_DEFAULT_POS 0x3
|
||||
|
||||
/* Enable caps-lock LED */
|
||||
#define CAPS_LOCK_LED_INDEX 30
|
94
keyboards/keychron/q2/jis_encoder/info.json
Normal file
94
keyboards/keychron/q2/jis_encoder/info.json
Normal file
@ -0,0 +1,94 @@
|
||||
{
|
||||
"keyboard_name": "Keychron Q2",
|
||||
"manufacturer": "Keychron",
|
||||
"url": "https://github.com/Keychron",
|
||||
"maintainer": "lalalademaxiya1",
|
||||
"usb": {
|
||||
"vid": "0x3434",
|
||||
"pid": "0x0115",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_jis_71": {
|
||||
"layout": [
|
||||
{"matrix":[0, 0], "x":0, "y":0.25},
|
||||
{"matrix":[0, 1], "x":1, "y":0.25},
|
||||
{"matrix":[0, 2], "x":2, "y":0.25},
|
||||
{"matrix":[0, 3], "x":3, "y":0.25},
|
||||
{"matrix":[0, 4], "x":4, "y":0.25},
|
||||
{"matrix":[0, 5], "x":5, "y":0.25},
|
||||
{"matrix":[0, 6], "x":6, "y":0.25},
|
||||
{"matrix":[0, 7], "x":7, "y":0.25},
|
||||
{"matrix":[0, 8], "x":8, "y":0.25},
|
||||
{"matrix":[0, 9], "x":9, "y":0.25},
|
||||
{"matrix":[0,10], "x":10, "y":0.25},
|
||||
{"matrix":[0,11], "x":11, "y":0.25},
|
||||
{"matrix":[0,12], "x":12, "y":0.25},
|
||||
{"matrix":[0,13], "x":13, "y":0.25},
|
||||
{"matrix":[3, 1], "x":14, "y":0.25},
|
||||
{"matrix":[0,14], "x":15.25, "y":0},
|
||||
|
||||
{"matrix":[1, 0], "x":0, "y":1.25, "w":1.5},
|
||||
{"matrix":[1, 1], "x":1.5, "y":1.25},
|
||||
{"matrix":[1, 2], "x":2.5, "y":1.25},
|
||||
{"matrix":[1, 3], "x":3.5, "y":1.25},
|
||||
{"matrix":[1, 4], "x":4.5, "y":1.25},
|
||||
{"matrix":[1, 5], "x":5.5, "y":1.25},
|
||||
{"matrix":[1, 6], "x":6.5, "y":1.25},
|
||||
{"matrix":[1, 7], "x":7.5, "y":1.25},
|
||||
{"matrix":[1, 8], "x":8.5, "y":1.25},
|
||||
{"matrix":[1, 9], "x":9.5, "y":1.25},
|
||||
{"matrix":[1,10], "x":10.5, "y":1.25},
|
||||
{"matrix":[1,11], "x":11.5, "y":1.25},
|
||||
{"matrix":[1,12], "x":12.5, "y":1.25},
|
||||
{"matrix":[1,14], "x":15.25, "y":1.25},
|
||||
|
||||
{"matrix":[2, 0], "x":0, "y":2.25, "w":1.75},
|
||||
{"matrix":[2, 1], "x":1.75, "y":2.25},
|
||||
{"matrix":[2, 2], "x":2.75, "y":2.25},
|
||||
{"matrix":[2, 3], "x":3.75, "y":2.25},
|
||||
{"matrix":[2, 4], "x":4.75, "y":2.25},
|
||||
{"matrix":[2, 5], "x":5.75, "y":2.25},
|
||||
{"matrix":[2, 6], "x":6.75, "y":2.25},
|
||||
{"matrix":[2, 7], "x":7.75, "y":2.25},
|
||||
{"matrix":[2, 8], "x":8.75, "y":2.25},
|
||||
{"matrix":[2, 9], "x":9.75, "y":2.25},
|
||||
{"matrix":[2,10], "x":10.75, "y":2.25},
|
||||
{"matrix":[2,11], "x":11.75, "y":2.25},
|
||||
{"matrix":[2,13], "x":12.75, "y":2.25},
|
||||
{"matrix":[1,13], "x":13.75, "y":1.25, "w":1.25, "h":2},
|
||||
{"matrix":[2,14], "x":15.25, "y":2.25},
|
||||
|
||||
{"matrix":[3, 0], "x":0, "y":3.25, "w":2.25},
|
||||
{"matrix":[3, 2], "x":2.25, "y":3.25},
|
||||
{"matrix":[3, 3], "x":3.25, "y":3.25},
|
||||
{"matrix":[3, 4], "x":4.25, "y":3.25},
|
||||
{"matrix":[3, 5], "x":5.25, "y":3.25},
|
||||
{"matrix":[3, 6], "x":6.25, "y":3.25},
|
||||
{"matrix":[3, 7], "x":7.25, "y":3.25},
|
||||
{"matrix":[3, 8], "x":8.25, "y":3.25},
|
||||
{"matrix":[3, 9], "x":9.25, "y":3.25},
|
||||
{"matrix":[3,10], "x":10.25, "y":3.25},
|
||||
{"matrix":[3,11], "x":11.25, "y":3.25},
|
||||
{"matrix":[3,12], "x":12.25, "y":3.25},
|
||||
{"matrix":[3,13], "x":13.25, "y":3.25},
|
||||
{"matrix":[3,14], "x":14.25, "y":3.25},
|
||||
|
||||
{"matrix":[4, 0], "x":0, "y":4.25, "w":1.25},
|
||||
{"matrix":[4, 1], "x":1.25, "y":4.25},
|
||||
{"matrix":[4, 2], "x":2.25, "y":4.25, "w":1.25},
|
||||
{"matrix":[4, 3], "x":3.5, "y":4.25},
|
||||
{"matrix":[4, 6], "x":4.5, "y":4.25, "w":4.5},
|
||||
{"matrix":[4, 9], "x":9, "y":4.25, "w":1.25},
|
||||
{"matrix":[4,10], "x":10.25, "y":4.25},
|
||||
{"matrix":[4,11], "x":11.25, "y":4.25},
|
||||
{"matrix":[4,12], "x":12.25, "y":4.25},
|
||||
{"matrix":[4,13], "x":13.25, "y":4.25},
|
||||
{"matrix":[2,12], "x":14.25, "y":4.25},
|
||||
{"matrix":[4,14], "x":15.25, "y":4.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
134
keyboards/keychron/q2/jis_encoder/jis_encoder.c
Normal file
134
keyboards/keychron/q2/jis_encoder/jis_encoder.c
Normal file
@ -0,0 +1,134 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
{0, C_1, A_1, B_1},
|
||||
{0, C_2, A_2, B_2},
|
||||
{0, C_3, A_3, B_3},
|
||||
{0, C_4, A_4, B_4},
|
||||
{0, C_5, A_5, B_5},
|
||||
{0, C_6, A_6, B_6},
|
||||
{0, C_7, A_7, B_7},
|
||||
{0, C_8, A_8, B_8},
|
||||
{0, C_9, A_9, B_9},
|
||||
{0, C_10, A_10, B_10},
|
||||
{0, C_11, A_11, B_11},
|
||||
{0, C_12, A_12, B_12},
|
||||
{0, C_13, A_13, B_13},
|
||||
{0, C_14, A_14, B_14},
|
||||
{0, C_15, A_15, B_15},
|
||||
{0, C_16, A_16, B_16},
|
||||
|
||||
{0, F_1, D_1, E_1},
|
||||
{0, F_2, D_2, E_2},
|
||||
{0, F_3, D_3, E_3},
|
||||
{0, F_4, D_4, E_4},
|
||||
{0, F_5, D_5, E_5},
|
||||
{0, F_6, D_6, E_6},
|
||||
{0, F_7, D_7, E_7},
|
||||
{0, F_8, D_8, E_8},
|
||||
{0, F_9, D_9, E_9},
|
||||
{0, F_10, D_10, E_10},
|
||||
{0, F_11, D_11, E_11},
|
||||
{0, F_12, D_12, E_12},
|
||||
{0, F_13, D_13, E_13},
|
||||
{0, F_16, D_16, E_16},
|
||||
|
||||
{0, I_1, G_1, H_1},
|
||||
{0, I_2, G_2, H_2},
|
||||
{0, I_3, G_3, H_3},
|
||||
{0, I_4, G_4, H_4},
|
||||
{0, I_5, G_5, H_5},
|
||||
{1, I_6, G_6, H_6},
|
||||
{1, I_7, G_7, H_7},
|
||||
{1, I_8, G_8, H_8},
|
||||
{1, I_9, G_9, H_9},
|
||||
{1, I_10, G_10, H_10},
|
||||
{1, I_11, G_11, H_11},
|
||||
{1, I_12, G_12, H_12},
|
||||
{1, I_14, G_14, H_14},
|
||||
{0, F_14, D_14, E_14},
|
||||
{1, I_16, G_16, H_16},
|
||||
|
||||
{1, C_1, A_1, B_1},
|
||||
{1, C_3, A_3, B_3},
|
||||
{1, C_4, A_4, B_4},
|
||||
{1, C_5, A_5, B_5},
|
||||
{1, C_6, A_6, B_6},
|
||||
{1, C_7, A_7, B_7},
|
||||
{1, C_8, A_8, B_8},
|
||||
{1, C_9, A_9, B_9},
|
||||
{1, C_10, A_10, B_10},
|
||||
{1, C_11, A_11, B_11},
|
||||
{1, C_12, A_12, B_12},
|
||||
{1, C_13, A_13, B_13},
|
||||
{1, C_14, A_14, B_14},
|
||||
{1, C_15, A_15, B_15},
|
||||
|
||||
{1, F_1, D_1, E_1},
|
||||
{1, F_2, D_2, E_2},
|
||||
{1, F_3, D_3, E_3},
|
||||
{1, F_4, D_4, E_4},
|
||||
{1, F_7, D_7, E_7},
|
||||
{1, F_10, D_10, E_10},
|
||||
{1, F_11, D_11, E_11},
|
||||
{1, F_12, D_12, E_12},
|
||||
{1, F_13, D_13, E_13},
|
||||
{1, F_14, D_14, E_14},
|
||||
{1, F_15, D_15, E_15},
|
||||
{1, F_16, D_16, E_16}
|
||||
};
|
||||
|
||||
#define __ NO_LED
|
||||
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
// Key Matrix to LED Index
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
|
||||
{ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 },
|
||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 },
|
||||
{ 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
|
||||
{ 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 },
|
||||
},
|
||||
{
|
||||
// LED Index to Physical Position
|
||||
{0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0},
|
||||
{4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19},
|
||||
{6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34},
|
||||
{9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49},
|
||||
{2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64},
|
||||
},
|
||||
{
|
||||
// RGB LED Index to Flag
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
|
||||
}
|
||||
};
|
||||
|
||||
#endif // RGB_MATRIX_ENABLE
|
77
keyboards/keychron/q2/jis_encoder/keymaps/default/keymap.c
Normal file
77
keyboards/keychron/q2/jis_encoder/keymaps/default/keymap.c
Normal file
@ -0,0 +1,77 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_MUTE,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_MUTE,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN3] = { ENCODER_CCW_CW(_______, _______)}
|
||||
};
|
||||
#endif // ENCODER_MAP_ENABLE
|
@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
84
keyboards/keychron/q2/jis_encoder/keymaps/keychron/keymap.c
Normal file
84
keyboards/keychron/q2/jis_encoder/keymaps/keychron/keymap.c
Normal file
@ -0,0 +1,84 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keychron_common.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_MUTE,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_MUTE,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN3] = { ENCODER_CCW_CW(_______, _______)}
|
||||
};
|
||||
#endif // ENCODER_MAP_ENABLE
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_keychron(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
VPATH += keyboards/keychron/common
|
||||
SRC += keychron_common.c
|
77
keyboards/keychron/q2/jis_encoder/keymaps/via/keymap.c
Normal file
77
keyboards/keychron/q2/jis_encoder/keymaps/via/keymap.c
Normal file
@ -0,0 +1,77 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_MUTE,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_MUTE,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN3] = { ENCODER_CCW_CW(_______, _______)}
|
||||
};
|
||||
#endif // ENCODER_MAP_ENABLE
|
2
keyboards/keychron/q2/jis_encoder/keymaps/via/rules.mk
Normal file
2
keyboards/keychron/q2/jis_encoder/keymaps/via/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
22
keyboards/keychron/q2/jis_encoder/rules.mk
Normal file
22
keyboards/keychron/q2/jis_encoder/rules.mk
Normal file
@ -0,0 +1,22 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable USB N-key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes # Enable Encoder
|
||||
DIP_SWITCH_ENABLE = yes
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
RGB_MATRIX_DRIVER = CKLED2001
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = embedded_flash
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright 2021 @ Keychron (https://www.keychron.com)
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* 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
|
||||
@ -35,3 +35,45 @@ bool dip_switch_update_kb(uint8_t index, bool active) {
|
||||
}
|
||||
|
||||
#endif // DIP_SWITCH_ENABLE
|
||||
|
||||
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_user(keycode, record)) { return false; }
|
||||
switch (keycode) {
|
||||
case RGB_TOG:
|
||||
if (record->event.pressed) {
|
||||
switch (rgb_matrix_get_flags()) {
|
||||
case LED_FLAG_ALL: {
|
||||
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
} break;
|
||||
default: {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
if (!rgb_matrix_is_enabled()) {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
rgb_matrix_enable();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
|
||||
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { return false; }
|
||||
// RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue);
|
||||
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255);
|
||||
} else {
|
||||
if (!rgb_matrix_get_flags()) {
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // CAPS_LOCK_LED_INDEX
|
||||
|
@ -8,11 +8,11 @@ A customizable 65% keyboard.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keychron/q2/ansi:default
|
||||
make keychron/q2/ansi:default
|
||||
|
||||
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
|
||||
|
||||
make keychron/q2/ansi:default:flash
|
||||
make keychron/q2/ansi:default:flash
|
||||
|
||||
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
|
||||
|
||||
|
18
keyboards/vertex/arc60h/arc60h.c
Normal file
18
keyboards/vertex/arc60h/arc60h.c
Normal file
@ -0,0 +1,18 @@
|
||||
/* Copyright 2022 vertex
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include "arc60h.h"
|
36
keyboards/vertex/arc60h/arc60h.h
Normal file
36
keyboards/vertex/arc60h/arc60h.h
Normal file
@ -0,0 +1,36 @@
|
||||
/* Copyright 2022 vertex
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define ___ KC_NO
|
||||
|
||||
|
||||
#define LAYOUT_all( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||
K40, K41, K43, K46, K4B, K4C, K4E \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, ___ }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
|
||||
{ K40, K41, ___, K43, ___, ___, K46, ___, ___, ___, ___, K4B, K4C, ___, K4E } \
|
||||
}
|
59
keyboards/vertex/arc60h/config.h
Normal file
59
keyboards/vertex/arc60h/config.h
Normal file
@ -0,0 +1,59 @@
|
||||
/* Copyright 2022 vertex
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_COL_PINS { B9, B8, B7, B6, B5, B4, B3, B11, A15, A10, A9, B14, B13, B12, A5 }
|
||||
#define MATRIX_ROW_PINS { B10, B1, B0, A7, A6 }
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define LED_CAPS_LOCK_PIN C13
|
||||
#define LED_PIN_ON_STATE 0
|
||||
|
||||
#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
|
||||
#define RGB_DI_PIN B15
|
||||
#define RGBLED_NUM 9
|
||||
#define WS2812_SPI SPID2
|
||||
#define WS2812_SPI_MOSI_PAL_MODE 5
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
#define FORCE_NKRO
|
||||
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
25
keyboards/vertex/arc60h/halconf.h
Normal file
25
keyboards/vertex/arc60h/halconf.h
Normal file
@ -0,0 +1,25 @@
|
||||
/* Copyright 2022 vertex
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/bt66tech/bt66tech60/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#include_next <halconf.h>
|
82
keyboards/vertex/arc60h/info.json
Normal file
82
keyboards/vertex/arc60h/info.json
Normal file
@ -0,0 +1,82 @@
|
||||
{
|
||||
"keyboard_name": "ARC60H",
|
||||
"manufacturer": "vertex",
|
||||
"url": "",
|
||||
"maintainer": "EasonQian1, Vertex-kb",
|
||||
"usb": {
|
||||
"vid": "0x7374",
|
||||
"pid": "0x9770",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"processor": "STM32F103",
|
||||
"bootloader": "stm32duino",
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0 },
|
||||
{"x": 1, "y": 0 },
|
||||
{"x": 2, "y": 0 },
|
||||
{"x": 3, "y": 0 },
|
||||
{"x": 4, "y": 0 },
|
||||
{"x": 5, "y": 0 },
|
||||
{"x": 6, "y": 0 },
|
||||
{"x": 7, "y": 0 },
|
||||
{"x": 8, "y": 0 },
|
||||
{"x": 9, "y": 0 },
|
||||
{"x": 10, "y": 0 },
|
||||
{"x": 11, "y": 0 },
|
||||
{"x": 12, "y": 0 },
|
||||
{"x": 13, "y": 0 },
|
||||
{"x": 14, "y": 0 },
|
||||
{"x": 0, "y": 1, "w": 1.5 },
|
||||
{"x": 1.5, "y": 1 },
|
||||
{"x": 2.5, "y": 1 },
|
||||
{"x": 3.5, "y": 1 },
|
||||
{"x": 4.5, "y": 1 },
|
||||
{"x": 5.5, "y": 1 },
|
||||
{"x": 6.5, "y": 1 },
|
||||
{"x": 7.5, "y": 1 },
|
||||
{"x": 8.5, "y": 1 },
|
||||
{"x": 9.5, "y": 1 },
|
||||
{"x": 10.5, "y": 1 },
|
||||
{"x": 11.5, "y": 1 },
|
||||
{"x": 12.5, "y": 1 },
|
||||
{"x": 13.5, "y": 1, "w": 1.5 },
|
||||
{"x": 0, "y": 2, "w": 1.75 },
|
||||
{"x": 1.75, "y": 2 },
|
||||
{"x": 2.75, "y": 2 },
|
||||
{"x": 3.75, "y": 2 },
|
||||
{"x": 4.75, "y": 2 },
|
||||
{"x": 5.75, "y": 2 },
|
||||
{"x": 6.75, "y": 2 },
|
||||
{"x": 7.75, "y": 2 },
|
||||
{"x": 8.75, "y": 2 },
|
||||
{"x": 9.75, "y": 2 },
|
||||
{"x": 10.75, "y": 2 },
|
||||
{"x": 11.75, "y": 2 },
|
||||
{"x": 12.75, "y": 2, "w": 2.25 },
|
||||
{"x": 0, "y": 3, "w": 1.25 },
|
||||
{"x": 1.25, "y": 3 },
|
||||
{"x": 2.25, "y": 3 },
|
||||
{"x": 3.25, "y": 3 },
|
||||
{"x": 4.25, "y": 3 },
|
||||
{"x": 5.25, "y": 3 },
|
||||
{"x": 6.25, "y": 3 },
|
||||
{"x": 7.25, "y": 3 },
|
||||
{"x": 8.25, "y": 3 },
|
||||
{"x": 9.25, "y": 3 },
|
||||
{"x": 10.25, "y": 3 },
|
||||
{"x": 11.25, "y": 3 },
|
||||
{"x": 12.25, "y": 3, "w": 1.75 },
|
||||
{"x": 14, "y": 3 },
|
||||
{"x": 0, "y": 4, "w": 1.5 },
|
||||
{"x": 1.5, "y": 4, "w": 1 },
|
||||
{"x": 2.5, "y": 4, "w": 1.5 },
|
||||
{"x": 4, "y": 4, "w": 7 },
|
||||
{"x": 11, "y": 4, "w": 1.5 },
|
||||
{"x": 12.5, "y": 4, "w": 1 },
|
||||
{"x": 13.5, "y": 4, "w": 1.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
36
keyboards/vertex/arc60h/keymaps/default/keymap.c
Normal file
36
keyboards/vertex/arc60h/keymaps/default/keymap.c
Normal file
@ -0,0 +1,36 @@
|
||||
/* Copyright 2022 vertex
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_1, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
51
keyboards/vertex/arc60h/keymaps/via/keymap.c
Normal file
51
keyboards/vertex/arc60h/keymaps/via/keymap.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* Copyright 2022 vertex
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_1, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______, RGB_TOG, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[3] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
2
keyboards/vertex/arc60h/keymaps/via/rules.mk
Normal file
2
keyboards/vertex/arc60h/keymaps/via/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
27
keyboards/vertex/arc60h/mcuconf.h
Normal file
27
keyboards/vertex/arc60h/mcuconf.h
Normal file
@ -0,0 +1,27 @@
|
||||
/* Copyright 2022 vertex
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/bt66tech/bt66tech60/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h`
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_SPI_USE_SPI2
|
||||
#define STM32_SPI_USE_SPI2 TRUE
|
22
keyboards/vertex/arc60h/readme.md
Normal file
22
keyboards/vertex/arc60h/readme.md
Normal file
@ -0,0 +1,22 @@
|
||||
# arc60h
|
||||
|
||||
* A customizable hotswap 60% keyboard.
|
||||
|
||||
* Keyboard Maintainer: [EASON](https://github.com/EasonQian1)
|
||||
* Hardware Supported: arc60h
|
||||
* Hardware Availability: [vertex-kb](https://github.com/Vertex-kb)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make vertex/arc60h:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make vertex/arc60h: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 Enter in the keyboard then replug
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT`
|
17
keyboards/vertex/arc60h/rules.mk
Normal file
17
keyboards/vertex/arc60h/rules.mk
Normal file
@ -0,0 +1,17 @@
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
SLEEP_LED_ENABLE = yes
|
||||
WS2812_DRIVER = spi
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
@ -1,5 +1,24 @@
|
||||
/* Copyright 2023 Juno Nguyen <juno.ngx@gmail.com>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "muse.h"
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
# include "muse.h"
|
||||
#endif
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
@ -120,39 +139,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
|
||||
float caps_song_on[][2] = SONG(NUM_LOCK_ON_SOUND);
|
||||
float caps_song_off[][2] = SONG(SCROLL_LOCK_ON_SOUND);
|
||||
float caps_song_on[][2] = SONG(NUM_LOCK_ON_SOUND);
|
||||
float caps_song_off[][2] = SONG(SCROLL_LOCK_ON_SOUND);
|
||||
|
||||
// Custom songs for DPAD layer status
|
||||
float dpad_song_on[][2] = {
|
||||
HD_NOTE(_A4), HD_NOTE(_A4), HD_NOTE(_A4),
|
||||
QD_NOTE(_F4), QD_NOTE(_C5), HD_NOTE(_A4),
|
||||
QD_NOTE(_F4), QD_NOTE(_C5), WD_NOTE(_A4)
|
||||
};
|
||||
// Custom songs for DPAD layer status
|
||||
float dpad_song_on[][2] = {
|
||||
HD_NOTE(_A4), HD_NOTE(_A4), HD_NOTE(_A4),
|
||||
QD_NOTE(_F4), QD_NOTE(_C5), HD_NOTE(_A4),
|
||||
QD_NOTE(_F4), QD_NOTE(_C5), WD_NOTE(_A4)
|
||||
};
|
||||
|
||||
float dpad_song_off[][2] = {
|
||||
ED_NOTE(_C6), ED_NOTE(_C6),
|
||||
ED_NOTE(_C6), ED_NOTE(_C6),
|
||||
W__NOTE(_REST), QD_NOTE(_GS5),
|
||||
QD_NOTE(_AS5), Q__NOTE(_C6),
|
||||
Q__NOTE(_AS5), Q__NOTE(_C6)
|
||||
};
|
||||
float dpad_song_off[][2] = {
|
||||
ED_NOTE(_C6), ED_NOTE(_C6),
|
||||
ED_NOTE(_C6), ED_NOTE(_C6),
|
||||
W__NOTE(_REST), QD_NOTE(_GS5),
|
||||
QD_NOTE(_AS5), Q__NOTE(_C6),
|
||||
Q__NOTE(_AS5), Q__NOTE(_C6)
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifndef BACKLIGHT_ENABLE
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
// LED control, lighting up when Fn layer is activated
|
||||
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
switch (get_highest_layer(state)) {
|
||||
# ifdef BACKLIGHT_ENABLE
|
||||
// LED control, lighting up when Fn layer is activated
|
||||
switch (get_highest_layer(state)) {
|
||||
case _QWERTY:
|
||||
backlight_set(0);
|
||||
break;
|
||||
@ -162,112 +175,111 @@ layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
case _DPAD:
|
||||
backlight_set(3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
# endif
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
print("mode just switched to qwerty and this is a huge string\n");
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_DVORAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
print("mode just switched to qwerty and this is a huge string\n");
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_DVORAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
# ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
#ifdef KEYBOARD_planck_rev5
|
||||
# endif
|
||||
# ifdef KEYBOARD_planck_rev5
|
||||
writePinLow(E6);
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
#ifdef KEYBOARD_planck_rev5
|
||||
# endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
# ifdef KEYBOARD_planck_rev5
|
||||
writePinHigh(E6);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case PLOVER:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
# endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case PLOVER:
|
||||
if (record->event.pressed) {
|
||||
# ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_off(_RAISE);
|
||||
layer_off(_LOWER);
|
||||
layer_off(_ADJUST);
|
||||
layer_on(_PLOVER);
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
keymap_config.raw = eeconfig_read_keymap();
|
||||
keymap_config.nkro = 1;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
# endif
|
||||
layer_off(_RAISE);
|
||||
layer_off(_LOWER);
|
||||
layer_off(_ADJUST);
|
||||
layer_on(_PLOVER);
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case EXT_PLV:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
keymap_config.raw = eeconfig_read_keymap();
|
||||
keymap_config.nkro = 1;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case EXT_PLV:
|
||||
if (record->event.pressed) {
|
||||
# ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
# endif
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
// Play audio upon switching Caps Lock and custom layers
|
||||
|
||||
case KC_CAPS:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
// Play audio upon switching Caps Lock and custom layers
|
||||
case KC_CAPS:
|
||||
if (record->event.pressed) {
|
||||
# ifdef AUDIO_ENABLE
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
PLAY_SONG(caps_song_off);
|
||||
} else {
|
||||
PLAY_SONG(caps_song_on);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return true;
|
||||
# endif
|
||||
}
|
||||
return true;
|
||||
|
||||
case DP_ON:
|
||||
if (record->event.pressed) {
|
||||
} else { // only actived upon key release
|
||||
#ifdef AUDIO_ENABLE
|
||||
case DP_ON:
|
||||
if (record->event.pressed) {
|
||||
} else { // only actived upon key release
|
||||
# ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(dpad_song_on);
|
||||
#endif
|
||||
# endif
|
||||
|
||||
layer_off(_FN1);
|
||||
layer_on(_DPAD);
|
||||
}
|
||||
layer_off(_FN1);
|
||||
layer_on(_DPAD);
|
||||
}
|
||||
|
||||
case DP_OFF:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
case DP_OFF:
|
||||
if (record->event.pressed) {
|
||||
# ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(dpad_song_off);
|
||||
#endif
|
||||
# endif
|
||||
|
||||
layer_off(_DPAD);
|
||||
}
|
||||
layer_off(_DPAD);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -305,28 +317,28 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
|
||||
bool dip_switch_update_user(uint8_t index, bool active) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
if (active) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
case 0:
|
||||
if (active) {
|
||||
# ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_on(_ADJUST);
|
||||
} else {
|
||||
#ifdef AUDIO_ENABLE
|
||||
# endif
|
||||
layer_on(_ADJUST);
|
||||
} else {
|
||||
# ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (active) {
|
||||
muse_mode = true;
|
||||
} else {
|
||||
muse_mode = false;
|
||||
#ifdef AUDIO_ENABLE
|
||||
# endif
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (active) {
|
||||
muse_mode = true;
|
||||
} else {
|
||||
muse_mode = false;
|
||||
# ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
#endif
|
||||
}
|
||||
# endif
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -349,10 +361,19 @@ void matrix_scan_user(void) {
|
||||
|
||||
bool music_mask_user(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case RAISE:
|
||||
case LOWER:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
case RAISE:
|
||||
case LOWER:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
void keyboard_post_init_user(void) {
|
||||
rgblight_enable_noeeprom(); // Enables RGB, without saving settings
|
||||
// Vibrant cyan
|
||||
rgblight_sethsv_noeeprom(HSV_SPRINGGREEN);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||
}
|
||||
#endif
|
||||
|
@ -1,13 +1,15 @@
|
||||
SRC += muse.c
|
||||
ifeq ($(strip $(AUDIO_ENABLE)), yes)
|
||||
SRC += muse.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(KEYBOARD)),$(filter $(strip $(KEYBOARD)), planck/rev2 planck/rev3 planck/rev4 planck/rev5))
|
||||
BACKLIGHT_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = yes
|
||||
else
|
||||
BACKLIGHT_ENABLE = no
|
||||
BACKLIGHT_ENABLE = no
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(KEYBOARD)), vitamins_included/rev1)
|
||||
NKRO_ENABLE = no
|
||||
NKRO_ENABLE = no
|
||||
endif
|
||||
|
||||
MIDI_ENABLE=no
|
||||
|
Loading…
Reference in New Issue
Block a user