Compare commits
24 Commits
d43045e845
...
c7f3150066
Author | SHA1 | Date |
---|---|---|
TuDatTr | c7f3150066 | |
Nick Brassel | c1d21de1a2 | |
Klesh Wong | 164d2f36d1 | |
Nick Brassel | df7f33582f | |
TuDatTr | fcd65a4241 | |
Jesper Severinsen | 0e81954289 | |
Kim Minjong | b100db1e56 | |
nodatk | 3f63bbc7d8 | |
Conor Burns | fe7ac87f18 | |
dependabot[bot] | 8b824a8029 | |
TuDatTr | f29a2b5112 | |
TuDatTr | c138c30733 | |
TuDatTr | 40e43f02c6 | |
TuDatTr | a151631357 | |
TuDatTr | 1d87ab2409 | |
TuDatTr | f032bcbe73 | |
TuDatTr | c6a790d04b | |
TuDatTr | 676fe78d4c | |
TuDatTr | cde715734f | |
TuDatTr | d92f8499fd | |
TuDatTr | e639d9ca70 | |
TuDatTr | 00b935a9f7 | |
TuDatTr | 4b0ff7aead | |
TuDatTr | c860dd5972 |
|
@ -27,7 +27,7 @@ jobs:
|
|||
fetch-depth: 0
|
||||
|
||||
- name: Bump version and push tag
|
||||
uses: anothrNick/github-tag-action@1.51.0
|
||||
uses: anothrNick/github-tag-action@1.52.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
DEFAULT_BUMP: 'patch'
|
||||
|
|
|
@ -133,3 +133,4 @@ Check:
|
|||
- Set `debug_enable=true`. See [Debugging](#debugging)
|
||||
- Try using `print` function instead of debug print. See **common/print.h**.
|
||||
- Disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
|
||||
- Ensure all strings end with a newline character (`\n`). QMK Toolbox prints console output on a per-line basis.
|
||||
|
|
|
@ -58,7 +58,7 @@ The double-tap reset mechanism is an alternate way in QMK to enter the embedded
|
|||
```c
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur.
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK 0U // Specify a optional status led which blinks when entering the bootloader
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 // Specify a optional status led by GPIO number which blinks when entering the bootloader
|
||||
```
|
||||
|
||||
## Pre-defined RP2040 boards
|
||||
|
|
|
@ -76,17 +76,18 @@ void palCallback(void *arg) {
|
|||
}
|
||||
|
||||
# define PS2_INT_INIT() \
|
||||
{ palSetLineMode(PS2_CLOCK_PIN, PAL_MODE_INPUT); } \
|
||||
while (0)
|
||||
do { \
|
||||
palSetLineMode(PS2_CLOCK_PIN, PAL_MODE_INPUT); \
|
||||
} while (0)
|
||||
# define PS2_INT_ON() \
|
||||
{ \
|
||||
do { \
|
||||
palEnableLineEvent(PS2_CLOCK_PIN, PAL_EVENT_MODE_FALLING_EDGE); \
|
||||
palSetLineCallback(PS2_CLOCK_PIN, palCallback, NULL); \
|
||||
} \
|
||||
while (0)
|
||||
} while (0)
|
||||
# define PS2_INT_OFF() \
|
||||
{ palDisableLineEvent(PS2_CLOCK_PIN); } \
|
||||
while (0)
|
||||
do { \
|
||||
palDisableLineEvent(PS2_CLOCK_PIN); \
|
||||
} while (0)
|
||||
#endif // PROTOCOL_CHIBIOS
|
||||
|
||||
void ps2_host_init(void) {
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
#define UNICODE_CYCLE_PERSIST false
|
||||
#define UNICODE_SELECTED_MODES UC_WINC, UC_LNX
|
||||
|
|
@ -0,0 +1,188 @@
|
|||
/* Copyright 2021 @tudattr
|
||||
*
|
||||
* 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
|
||||
|
||||
// Layers
|
||||
#define _DEFAULT 0
|
||||
#define _MACRO 1
|
||||
#define _FUNCTION 2
|
||||
#define _LIGHTS 3
|
||||
|
||||
enum custom_keycodes {
|
||||
SHRG = SAFE_RANGE,
|
||||
UWU,
|
||||
LYING,
|
||||
TBL,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Base layer
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ~ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backspace |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | LCtrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | Shift | Z | X | C | V | B | N | M | < | > | ? | Shift | _LIGHTS |
|
||||
* `---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------´
|
||||
* | LGui | LAlt | _FUNCTION/Space | RAlt | PrntScrn | _MACRO |
|
||||
* `--------------------------------------------------------------------------------------------------------------------------------------------´
|
||||
*/
|
||||
|
||||
[_DEFAULT] = LAYOUT_all (
|
||||
// 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_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_LCTRL, 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_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_LIGHTS), KC_NO,
|
||||
KC_NO, KC_LGUI, KC_LALT, KC_NO, LT(_FUNCTION, KC_SPC), KC_NO, KC_RALT, KC_PSCR, KC_NO, MO(_MACRO), KC_NO),
|
||||
|
||||
|
||||
/* Macro Layer (Default Unicode: Windows (Windows, Linux))
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | Mute | | | | | | | | | | | | | | |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | | | | | | | Previous | VolDown | VolUp | Next | | | |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | | | (╯°□°)╯彡 ┻━┻ | ¯\_(ツ)_/¯ | | BrghtDown | BrghtUp | | | | | uwu | _(:3」∠)_ |
|
||||
* `---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------´
|
||||
* | | | | PrvUnicode | NxtUnicode | |
|
||||
* `--------------------------------------------------------------------------------------------------------------------------------------------´
|
||||
*/
|
||||
|
||||
[_MACRO] = LAYOUT_all (
|
||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_NO, KC_TRNS, TBL, SHRG, KC_TRNS, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UWU, LYING, KC_NO,
|
||||
KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_NO, UC_RMOD, UC_MOD, KC_NO, KC_TRNS, KC_NO),
|
||||
|
||||
|
||||
/* Function Layer
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INS | ` |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F22 | F23 | F24 |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | | | | | | Left | Down | Up | Right | | | | |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | | | | | | | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------´
|
||||
* | | | | | | |
|
||||
* `--------------------------------------------------------------------------------------------------------------------------------------------´
|
||||
*/
|
||||
|
||||
[_FUNCTION] = LAYOUT_all (
|
||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
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, KC_INS, KC_GRV,
|
||||
KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO,
|
||||
KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO),
|
||||
|
||||
|
||||
/* Light Layer
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | Toggle | Static | Breathing | Rainbow | KnghtRdr | Christmas | Gradient | Swirl | Snake | | | | | | |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | | HueUp | SatUp | BrghtUp | SpdUp | | | | | | | | | |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | | HueDown | SatDown | BrghtDown | SpdDown | | | | | | | | Bootloader Mode |
|
||||
* |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
* | | | | | | | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------´
|
||||
* | | | | | | |
|
||||
* `--------------------------------------------------------------------------------------------------------------------------------------------´
|
||||
*/
|
||||
|
||||
[_LIGHTS] = LAYOUT_all (
|
||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
|
||||
KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO,
|
||||
KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch(keycode) {
|
||||
case TBL:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_string("(╯°□°)╯彡 ┻━┻");
|
||||
}
|
||||
break;
|
||||
|
||||
case SHRG:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_string("¯\\_(ツ)_/¯");
|
||||
}
|
||||
break;
|
||||
|
||||
case UWU:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("`MMMMMMMMM0;xKkKKKKKKKKKKKKKKKKKKKk0KKKKKKKKKKKO',N`\n");
|
||||
SEND_STRING("`MMMMMMMNoo0KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK0l;`\n");
|
||||
SEND_STRING("`MMMMMWd;OKKKKKKKKKKoKKKKKKKKKKKKO0KKKKKKKKKKKKKKKk`\n");
|
||||
SEND_STRING("`MMMMW:oKKKKKKKKKKKdlKKKKKKKKKKK0okKKKKKKKKKKKKKKKX`\n");
|
||||
SEND_STRING("`MMMN:kKKKKKKKKKKK0'dKKKKKKKKKKKc,oKKKKKKKKKKKKKKKK`\n");
|
||||
SEND_STRING("`MMX,kKKKKKK0kKKK0;.kKKKKKKKKKKK'd;0KKKKKKKKKKKKKKK`\n");
|
||||
SEND_STRING("`MW;oKKKKKKK:dKKk,k,xKKKKOKKKKKl;WdcKKKKxKKKOOKKKKK`\n");
|
||||
SEND_STRING("`Mx:KKKKKKKc:K0l;KWclKKKdlKKKKd'XWWcoKKKxlKKKlKKKKK`\n");
|
||||
SEND_STRING("`W,kKKKKKO;l0d',dodc.OKK:dKKKo;KOdoo.l0KKcdKK:0KKKK`\n");
|
||||
SEND_STRING("`0;KKKKKo;dlcoOKNWWWdcKKccK0coNWWWWNKd'lx0:dKcxKKKK`\n");
|
||||
SEND_STRING("`doKKxo:.dONWWWWWWWWWklOO,oxXWWWWWWWWWXxd0KoocoKKKK`\n");
|
||||
SEND_STRING("`lxKO;00 dWWXXWWWWWkNWWOkxcxXWW0dXWWWWWXO0O0O;oKKKK`\n");
|
||||
SEND_STRING("`lxO':KK:kWN.:WWWW0.xWWWWWWWNWWc.dWWWW0.cWWWWcdKKKK`\n");
|
||||
SEND_STRING("`ko:'dKKodWN. 'cl, .XWWWWWWWWWWO. :oo;. dWWWW'kKKKK`\n");
|
||||
SEND_STRING("`N:;,OK0o:KK0o;,,;dKOWWWNNWWWN:xXl,..'c0NNWWO,KKKKK`\n");
|
||||
SEND_STRING("`Mxd'000o'OOOOO0KXNX.dWO..kWWl ONNXKKK00KKXX;oKKKKK`\n");
|
||||
SEND_STRING("`MM0'K00,:OOOO00KXNWO.''Ok'.'.xNNXK0000000Kd,0KKKKK`\n");
|
||||
SEND_STRING("`MMo.0K0,oKKKKXXNNWWWNXWWWWXNWWWNNXKKKKKKK0,kKKKKOo`\n");
|
||||
SEND_STRING("`MMc'xKK,,XNNWWWWWWWWWWWWWWWWWWWWWNNNNNNNX:dKKKKk.,`\n");
|
||||
SEND_STRING("`MM:c:Kk.',KWWWWWWWWWWWWWWWWWWWWWWWWWWWWNlxKKKKd'oK`\n");
|
||||
SEND_STRING("`MMcdlox.:,.c0WWWWWWWWWWWWWWWWWWWWWWWWN0;oKKKk;c0KK`\n");
|
||||
SEND_STRING("`MMdoKdl.ccc:,,cox0KXNNWWWWWNNXX0kdol:'l0KOo;,xKKKK`\n");
|
||||
}
|
||||
break;
|
||||
|
||||
case LYING:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_string("_(:3」∠)_");
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if (record->event.pressed) {
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void eeconfig_init_user(void) {
|
||||
set_unicode_input_mode(UC_WINC);
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
UNICODE_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = no
|
|
@ -0,0 +1,28 @@
|
|||
// Copyright 2022 Takeshi Noda (nodatk@gmail.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 14
|
||||
|
||||
#define MATRIX_ROW_PINS { B7, B6, B5, B4 }
|
||||
#define MATRIX_COL_PINS { A2, A1, A0, B8 , B13, B14, B15, B9, B10, B11, B3, B2, B1, B0}
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define DEBOUNCE 8
|
||||
#define TAPPING_TERM 150
|
||||
|
||||
#define FORCE_NKRO
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define AUDIO_PIN A5
|
||||
#define AUDIO_PIN_ALT A4
|
||||
#define AUDIO_PIN_ALT_AS_NEGATIVE
|
||||
#define STARTUP_SONG SONG(STARTUP_SOUND)
|
||||
#define AUDIO_INIT_DELAY
|
||||
#endif
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"keyboard_name": "twig50",
|
||||
"manufacturer": "Twig",
|
||||
"url": "",
|
||||
"maintainer": "nodatk",
|
||||
"usb": {
|
||||
"vid": "0xFEED",
|
||||
"pid": "0x6060",
|
||||
"device_version": "0.2.1"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_diag_4x14": {
|
||||
"layout": [
|
||||
{"x":0, "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":0, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1},
|
||||
{"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":13, "y":2},
|
||||
{"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":13, "y":3}]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
// Copyright 2022 Takeshi Noda (nodatk@gmail.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "twig50.h"
|
||||
|
||||
#define LAL_NCV LALT_T(KC_LANG2)
|
||||
#define RAL_CNV RALT_T(KC_LANG1)
|
||||
#define LGU_NCV LGUI_T(KC_LANG2)
|
||||
#define RGU_ENT RGUI_T(KC_ENT)
|
||||
#define RGU_IN8 RGUI_T(KC_INT8)
|
||||
|
||||
#define RSF_SCL RSFT_T(KC_SCLN)
|
||||
#define RCT_ESC RCTL_T(KC_ESC)
|
||||
#define RCT_IN7 RCTL_T(KC_INT7)
|
||||
|
||||
#define LT1_SPC LT(1, KC_SPC)
|
||||
#define LT2_F LT(2, KC_F)
|
||||
#define LT2_N LT(2, KC_N)
|
||||
#define LT3_BS LT(3, KC_BSPC)
|
||||
#define LT3_V LT(3, KC_V)
|
||||
#define LT3_QOT LT(3, KC_QUOT)
|
||||
#define TG4 TG(4)
|
||||
|
||||
#define SFT_1 RSFT(KC_1)
|
||||
#define SFT_2 RSFT(KC_2)
|
||||
#define SFT_3 RSFT(KC_3)
|
||||
#define SFT_4 RSFT(KC_4)
|
||||
#define SFT_5 RSFT(KC_5)
|
||||
#define SFT_6 LSFT(KC_6)
|
||||
#define SFT_7 LSFT(KC_7)
|
||||
#define SFT_8 LSFT(KC_8)
|
||||
#define SFT_9 LSFT(KC_9)
|
||||
#define SFT_0 LSFT(KC_0)
|
||||
#define SFT_LBR LSFT(KC_LBRC)
|
||||
|
||||
#define OSM_LSF OSM(MOD_LSFT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// Layer 0, Base layer
|
||||
LAYOUT_diag_4x14(
|
||||
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_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, LT2_F, KC_G, KC_H, KC_J, KC_K, KC_L, RSF_SCL, LT3_QOT, KC_ENT,
|
||||
KC_LSFT, TG4, KC_Z, KC_X, KC_C, LT3_V, KC_B, LT2_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_BTN1, KC_BTN2, KC_LALT, LGU_NCV, LT1_SPC, RCT_ESC, RGU_ENT, RAL_CNV, KC_INT1, KC_DEL, MU_TOG
|
||||
),
|
||||
|
||||
// Layer 1, Space-modifiers: Basic keys
|
||||
LAYOUT_diag_4x14(
|
||||
RESET, KC_EXEC, KC_HELP, KC_MENU, KC_SLCT, KC_STOP, KC_BTN2, KC_INT1, KC_MINS, KC_EQL, KC_INT3, SFT_LBR, KC_TRNS,
|
||||
KC_TRNS, KC_AGIN, KC_FIND, KC_PGUP, KC_PGDN, KC_F19, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT, SFT_7, SFT_2,
|
||||
KC_TRNS, KC_TRNS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_APP, KC_BSPC, KC_DEL, KC_RBRC, KC_BSLS, KC_HOME, KC_END,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCT_IN7, RGU_IN8, KC_TRNS, KC_INT2, KC_INT4, MU_MOD
|
||||
),
|
||||
|
||||
// Layer 2, F,N-modifiers: Number keys and symbols
|
||||
LAYOUT_diag_4x14(
|
||||
KC_TRNS, SFT_1, SFT_2, SFT_3, SFT_4, SFT_5, SFT_6, SFT_7, SFT_8, SFT_9, KC_COMM, KC_DOT, KC_QUOT,
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SFT_1, SFT_2,
|
||||
KC_TRNS, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, SFT_4, SFT_5, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_INT5, KC_INT6, KC_TRNS
|
||||
),
|
||||
|
||||
// Layer 3, V,:-modifiers: Functions and mouse keys
|
||||
LAYOUT_diag_4x14(
|
||||
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_MPLY, KC_MRWD, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN3, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_WH_D, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
// Layer 4, Toggles: One handed mode
|
||||
LAYOUT_diag_4x14(
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_LSFT, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RSFT, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, TG4, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_LALT, KC_LGUI, KC_LCTL, KC_RCTL, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
)
|
||||
};
|
|
@ -0,0 +1,29 @@
|
|||
# Twig50
|
||||
|
||||
![Twig50](https://user-images.githubusercontent.com/12627081/185365257-03a4904b-8432-445b-9eca-67f2aff57cd9.jpg "Sample build")
|
||||
|
||||
Handwired 50 key with Proton C.
|
||||
|
||||
* Keyboard Maintainer: [Takeshi Noda](https://github.com/nodatk)
|
||||
* Hardware Supported: Proton C
|
||||
* Hardware Availability: Sorry, not available for now
|
||||
|
||||
Layout data is available [here](http://www.keyboard-layout-editor.com/#/gists/8df4caf51c8d57e4069e2ae19965f02c).
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make handwired/twig/twig50:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make handwired/twig/twig50:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
|
|
@ -0,0 +1,19 @@
|
|||
# MCU name
|
||||
MCU = STM32F303
|
||||
BOARD = QMK_PROTON_C
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = stm32-dfu
|
||||
|
||||
# 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 = yes # Audio output
|
|
@ -0,0 +1,4 @@
|
|||
// Copyright 2022 Takeshi Noda (nodatk@gmail.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "twig50.h"
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2022 Takeshi Noda (nodatk@gmail.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define ___ KC_NO
|
||||
|
||||
#define LAYOUT_diag_4x14( \
|
||||
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K31, K32, K34, K35, K37, K38, K39, K3A, K3B, K3D \
|
||||
) { \
|
||||
{ K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \
|
||||
{ K30, K31, K32, ___, K34, K35, ___, K37, K38, K39, K3A, K3B, ___, K3D } \
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
This is the c configuration file for the keymap
|
||||
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
Copyright 2015 Jack Humbert
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define EE_HANDS
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
#define OLED_TIMEOUT 300000
|
||||
|
||||
#define NO_MUSIC_MODE
|
||||
|
||||
#define PERMISSIVE_HOLD
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
#ifdef TAPPING_TERM
|
||||
#undef TAPPING_TERM
|
||||
#endif
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
#ifdef COMBO_COUNT
|
||||
#undef COMBO_COUNT
|
||||
#endif
|
||||
#define COMBO_COUNT 2
|
||||
#define COMBO_TERM 20
|
|
@ -0,0 +1,246 @@
|
|||
/* Copyright 2021 @tudattr
|
||||
*
|
||||
* 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>
|
||||
#include <string.h>
|
||||
|
||||
// Animation
|
||||
#define IDLE_FRAMES 5
|
||||
#define IDLE_SPEED 30
|
||||
#define TAP_FRAMES 2
|
||||
#define TAP_SPEED 60
|
||||
#define ANIM_FRAME_DURATION 200
|
||||
#define ANIM_SIZE 512
|
||||
|
||||
char wpm[16];
|
||||
uint32_t anim_timer = 0;
|
||||
uint32_t anim_sleep = 0;
|
||||
uint8_t current_idle_frame = 0;
|
||||
uint8_t current_tap_frame = 0;
|
||||
|
||||
// static long int oled_timeout = 300000;
|
||||
|
||||
// Layers
|
||||
# define _DFLT 0
|
||||
# define _LWR 1
|
||||
# define _RSE 2
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* DEFAULT
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
|
||||
* |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
|
||||
* |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | LGUI | LALT | LWR | /Space / \Enter \ | RALT |BackSP| RSE |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
|
||||
[_DFLT] = LAYOUT( \
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_BSLS, \
|
||||
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
||||
KC_LGUI, KC_LALT, MO(_LWR), KC_SPC , KC_ENT, KC_RALT, KC_BSPC, MO(_RSE) \
|
||||
),
|
||||
/* LOWER
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | HOME | END | [ | ] | |-------. ,-------| LEFT | DOWN | UP | RIGHT| | |
|
||||
* |------+------+------+------+------+------| MUTE | | PLAY |------+------+------+------+------+------|
|
||||
* | | | | | | |-------| |-------| = | - | | | | |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | | | | /VOLDWN / \VOLUP \ | PRNT | DEL | |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
[_LWR] = LAYOUT( \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______,\
|
||||
KC_F11 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F12 ,\
|
||||
_______, KC_HOME, KC_END , KC_LBRC, KC_RBRC,_______ , KC_LEFT, KC_DOWN , KC_UP , KC_RIGHT, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_EQL , KC_MINS ,_______,_______ , _______, _______,\
|
||||
_______, _______, _______, KC_VOLD , KC_VOLU, KC_PSCR , KC_DEL, _______ \
|
||||
),
|
||||
/* RISE
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | NUM | 7 | 8 | 9 | | | SCRL | PAUS |INSERT| | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | 4 | 5 | 6 | + |-------. ,-------| LEFT | DOWN | UP | RIGHT| | |
|
||||
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
|
||||
* | | | 1 | 2 | 3 | ENTR |-------| |-------| | | | | | |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | | | | / - / \ \ | | | |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
[_RSE] = LAYOUT( \
|
||||
_______, _______ ,_______ ,_______,_______ ,_______ , _______,_______ ,_______ ,_______,_______ ,_______, \
|
||||
_______, KC_NUM , KC_P7 , KC_P8 , KC_P9 ,_______ , KC_SCRL, KC_PAUS, KC_INS , _______, _______,_______, \
|
||||
_______, _______, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, KC_LEFT, KC_DOWN , KC_UP , KC_RIGHT, _______, _______,\
|
||||
_______, _______, KC_P1 , KC_P2 , KC_P3 , KC_PENT, _______, _______, _______, _______ ,_______,_______ , _______, _______,\
|
||||
_______, _______, _______, KC_P0, _______, _______ , _______, _______ \
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
#ifdef OLED_DRIVER_ENABLE
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
if (!is_keyboard_master()) return OLED_ROTATION_180;
|
||||
else return rotation;
|
||||
}
|
||||
|
||||
static void render_status(void) {
|
||||
oled_write_P(PSTR(" @TuDatTr\n"), false);
|
||||
oled_write_P(PSTR(" Layer "), false);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case 0:
|
||||
oled_write_P(PSTR(" 0"), false);
|
||||
break;
|
||||
case 1:
|
||||
oled_write_P(PSTR(" 1"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_P(PSTR(" ?"), false);
|
||||
break;
|
||||
}
|
||||
|
||||
oled_write_P(PSTR("\n\n "), false);
|
||||
sprintf(wpm, "%01d", get_current_wpm());
|
||||
oled_write(wpm, false);
|
||||
oled_write_P(PSTR(" wpm"), false);
|
||||
}
|
||||
|
||||
static void render_anim(void) {
|
||||
static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {
|
||||
{
|
||||
0,124,130,186,178,156,0,6,2,254,2,6,0,120,128,128,64,248,0,254,130,130,130,124,0,64,168,168,240,128,0,8,8,126,136,72,0,6,2,254,2,6,0,248,16,8,8,16,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
},
|
||||
{
|
||||
0,124,130,186,178,156,0,6,2,254,2,6,0,120,128,128,64,248,0,254,130,130,130,124,0,64,168,168,240,128,0,8,8,126,136,72,0,6,2,254,2,6,0,248,16,8,8,16,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
},
|
||||
{
|
||||
0,124,130,186,178,156,0,6,2,254,2,6,0,120,128,128,64,248,0,254,130,130,130,124,0,64,168,168,240,128,0,8,8,126,136,72,0,6,2,254,2,6,0,248,16,8,8,16,0,0,0,0,0,0,0,0,0,0,0,128,128,64,64,64,64,32,32,32,32,16,8,4,2,2,4,24,96,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,194,1,1,2,2,4,4,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,96,0,129,130,130,132,8,16,32,64,128,0,0,0,0,128,128,128,128,64,64,64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,25,6,0,0,0,0,0,0,0,24,24,24,27,3,0,64,160,34,36,20,18,18,18,11,8,8,8,8,5,5,9,9,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
},
|
||||
{
|
||||
0,124,130,186,178,156,0,6,2,254,2,6,0,120,128,128,64,248,0,254,130,130,130,124,0,64,168,168,240,128,0,8,8,126,136,72,0,6,2,254,2,6,0,248,16,8,8,16,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
},
|
||||
{
|
||||
0,124,130,186,178,156,0,6,2,254,2,6,0,120,128,128,64,248,0,254,130,130,130,124,0,64,168,168,240,128,0,8,8,126,136,72,0,6,2,254,2,6,0,248,16,8,8,16,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,8,4,2,2,2,4,56,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,226,1,1,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
}
|
||||
};
|
||||
|
||||
static const char PROGMEM prep[][ANIM_SIZE] = {
|
||||
{
|
||||
0,124,130,186,178,156,0,6,2,254,2,6,0,120,128,128,64,248,0,254,130,130,130,124,0,64,168,168,240,128,0,8,8,126,136,72,0,6,2,254,2,6,0,248,16,8,8,16,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64,64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,24,6,5,152,153,132,195,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
}
|
||||
};
|
||||
|
||||
static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = {
|
||||
{
|
||||
0,124,130,186,178,156,0,6,2,254,2,6,0,120,128,128,64,248,0,254,130,130,130,124,0,64,168,168,240,128,0,8,8,126,136,72,0,6,2,254,2,6,0,248,16,8,8,16,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,248,248,248,248,0,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,1,2,4,8,16,32,67,135,7,1,0,184,188,190,159,95,95,79,76,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,24,6,5,152,153,132,67,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,61,124,252,252,252,252,252,60,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
},
|
||||
{
|
||||
0,124,130,186,178,156,0,6,2,254,2,6,0,120,128,128,64,248,0,254,130,130,130,124,0,64,168,168,240,128,0,8,8,126,136,72,0,6,2,254,2,6,0,248,16,8,8,16,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64,64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,0,0,0,1,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,122,122,121,121,121,121,57,49,2,2,4,4,8,8,8,136,136,135,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
void animation_phase(void) {
|
||||
if (get_current_wpm() <= IDLE_SPEED) {
|
||||
current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES;
|
||||
|
||||
oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE);
|
||||
}
|
||||
|
||||
if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) {
|
||||
oled_write_raw_P(prep[0], ANIM_SIZE);
|
||||
}
|
||||
|
||||
if (get_current_wpm() >= TAP_SPEED) {
|
||||
current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES;
|
||||
|
||||
oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
sprintf(wpm, "%03d", get_current_wpm());
|
||||
|
||||
if (strcmp(wpm, "000") != 0) {
|
||||
anim_sleep = timer_read32();
|
||||
} else {
|
||||
if (timer_elapsed32(anim_sleep) > oled_timeout) {
|
||||
anim_sleep = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (timer_elapsed32(anim_sleep) > oled_timeout) {
|
||||
oled_off();
|
||||
} else {
|
||||
oled_on();
|
||||
|
||||
if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
|
||||
anim_timer = timer_read32();
|
||||
|
||||
animation_phase();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
render_status();
|
||||
} else {
|
||||
render_anim();
|
||||
}
|
||||
}
|
||||
#endif
|
|
@ -0,0 +1,3 @@
|
|||
OLED_DRIVER_ENABLE = yes
|
||||
WPM_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
|
@ -0,0 +1,27 @@
|
|||
/* Copyright 2020 Team Mechlovin'
|
||||
*
|
||||
* 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, 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_DEL, 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_HASH, 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_LSFT, KC_LSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI,MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
# The default keymap for infinity87
|
|
@ -0,0 +1,52 @@
|
|||
/* Copyright 2020 Team Mechlovin'
|
||||
*
|
||||
* 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, 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_DEL, 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_HASH, 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_LSFT, KC_LSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[3] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
# The via keymap for infinity87
|
|
@ -0,0 +1,2 @@
|
|||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
|
@ -0,0 +1,182 @@
|
|||
{
|
||||
"keyboard_name": "NFR-70",
|
||||
"manufacturer": "Nyhxis",
|
||||
"url": "https://github.com/Nyhxis/keyboard-resources/tree/master/NFR-70",
|
||||
"maintainer": "Nyhxis",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": [ "B2", "B3", "B1", "F7", "F6", "F5", "F4" ],
|
||||
"rows": [ "D3", "D2", "D1", "D0", "C6", "D4", "E6", "D7", "B5", "B4", "B6" ]
|
||||
},
|
||||
"usb": {
|
||||
"vid": "0xABCD",
|
||||
"pid": "0x0001",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_ansi":{
|
||||
"layout":
|
||||
[
|
||||
{ "label": "ESC", "x": 0, "y": 0 },
|
||||
{ "label": "F2", "x": 2.25, "y": 0 },
|
||||
{ "label": "F4", "x": 4.25, "y": 0 },
|
||||
{ "label": "F6", "x": 6.5, "y": 0 },
|
||||
{ "label": "F8", "x": 8.5, "y": 0 },
|
||||
{ "label": "F10", "x": 10.75, "y": 0 },
|
||||
{ "label": "F12", "x": 12.75, "y": 0 },
|
||||
{ "label": "F1", "x": 1.25, "y": 0 },
|
||||
{ "label": "F3", "x": 3.25, "y": 0 },
|
||||
{ "label": "F5", "x": 5.5, "y": 0 },
|
||||
{ "label": "F7", "x": 7.5, "y": 0 },
|
||||
{ "label": "F9", "x": 9.75, "y": 0 },
|
||||
{ "label": "F11", "x": 11.75, "y": 0 },
|
||||
{ "label": "F13", "x": 14, "y": 0 }
|
||||
{ "label": "1", "x": 1, "y": 1.25 },
|
||||
{ "label": "3", "x": 3, "y": 1.25 },
|
||||
{ "label": "5", "x": 5, "y": 1.25 },
|
||||
{ "label": "7", "x": 7, "y": 1.25 },
|
||||
{ "label": "9", "x": 9, "y": 1.25 },
|
||||
{ "label": "-", "x": 11, "y": 1.25 },
|
||||
{ "label": "BACKSPACE", "x": 13, "y": 1.25, "w": 2 }
|
||||
{ "label": "`", "x": 0, "y": 1.25 },
|
||||
{ "label": "2", "x": 2, "y": 1.25 },
|
||||
{ "label": "4", "x": 4, "y": 1.25 },
|
||||
{ "label": "6", "x": 6, "y": 1.25 },
|
||||
{ "label": "8", "x": 8, "y": 1.25 },
|
||||
{ "label": "0", "x": 10, "y": 1.25 },
|
||||
{ "label": "=", "x": 12, "y": 1.25 },
|
||||
{ "label": "TAB", "x": 0, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "W", "x": 2.5, "y": 2.25 },
|
||||
{ "label": "R", "x": 4.5, "y": 2.25 },
|
||||
{ "label": "Y", "x": 6.5, "y": 2.25 },
|
||||
{ "label": "I", "x": 8.5, "y": 2.25 },
|
||||
{ "label": "P", "x": 10.5, "y": 2.25 },
|
||||
{ "label": "]", "x": 12.5, "y": 2.25 },
|
||||
{ "label": "Q", "x": 1.5, "y": 2.25 },
|
||||
{ "label": "E", "x": 3.5, "y": 2.25 },
|
||||
{ "label": "T", "x": 5.5, "y": 2.25 },
|
||||
{ "label": "U", "x": 7.5, "y": 2.25 },
|
||||
{ "label": "O", "x": 9.5, "y": 2.25 },
|
||||
{ "label": "[", "x": 11.5, "y": 2.25 },
|
||||
{ "label": "\\", "x": 13.5, "y": 2.25, "w": 1.5 }
|
||||
{ "label": "A", "x": 1.75, "y": 3.25 },
|
||||
{ "label": "D", "x": 3.75, "y": 3.25 },
|
||||
{ "label": "G", "x": 5.75, "y": 3.25 },
|
||||
{ "label": "J", "x": 7.75, "y": 3.25 },
|
||||
{ "label": "L", "x": 9.75, "y": 3.25 },
|
||||
{ "label": "'", "x": 10.75, "y": 3.25 },
|
||||
{ "x": 12.75, "y": 3.25 },
|
||||
{ "label": "CAPS", "x": 0, "y": 3.25, "w": 1.75 },
|
||||
{ "label": "S", "x": 2.75, "y": 3.25 },
|
||||
{ "label": "F", "x": 4.75, "y": 3.25 },
|
||||
{ "label": "H", "x": 6.75, "y": 3.25 },
|
||||
{ "label": "K", "x": 8.75, "y": 3.25 },
|
||||
{ "label": ";", "x": 11.75, "y": 3.25 },
|
||||
{ "label": "ENTER", "x": 12.75, "y": 3.25, "w": 2.25 }
|
||||
{ "label": "LSHIFT", "x": 0, "y": 4.25, "w": 2.25 },
|
||||
{ "label": "Z", "x": 2.25, "y": 4.25 },
|
||||
{ "label": "C", "x": 4.25, "y": 4.25 },
|
||||
{ "label": "B", "x": 6.25, "y": 4.25 },
|
||||
{ "label": "M", "x": 8.25, "y": 4.25 },
|
||||
{ "label": ".", "x": 10.25, "y": 4.25 },
|
||||
{ "label": "RSHIFT", "x": 12.25, "y": 4.25, "w": 2.75 }
|
||||
{ "label": "NUBS", "x": 1.25, "y": 4.25 },
|
||||
{ "label": "X", "x": 3.25, "y": 4.25 },
|
||||
{ "label": "V", "x": 5.25, "y": 4.25 },
|
||||
{ "label": "N", "x": 7.25, "y": 4.25 },
|
||||
{ "label": ",", "x": 9.25, "y": 4.25 },
|
||||
{ "label": "/", "x": 11.25, "y": 4.25 },
|
||||
{ "label": "RALT", "x": 10, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "LCTRL", "x": 0, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "LWIN", "x": 1.25, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "LALT", "x": 2.5, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "SPACE", "x": 3.75, "y": 5.25, "w": 6.25 },
|
||||
{ "label": "RWIN", "x": 11.25, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "MENU", "x": 12.5, "y": 5.25, "w": 1.25 },
|
||||
{ "label": "RCTRL", "x": 13.75, "y": 5.25, "w": 1.25 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_tsangan":{
|
||||
"layout":
|
||||
[
|
||||
{ "label": "ESC", "x": 0, "y": 0 },
|
||||
{ "label": "F2", "x": 2.25, "y": 0 },
|
||||
{ "label": "F4", "x": 4.25, "y": 0 },
|
||||
{ "label": "F6", "x": 6.5, "y": 0 },
|
||||
{ "label": "F8", "x": 8.5, "y": 0 },
|
||||
{ "label": "F10", "x": 10.75, "y": 0 },
|
||||
{ "label": "F12", "x": 12.75, "y": 0 },
|
||||
{ "label": "F1", "x": 1.25, "y": 0 },
|
||||
{ "label": "F3", "x": 3.25, "y": 0 },
|
||||
{ "label": "F5", "x": 5.5, "y": 0 },
|
||||
{ "label": "F7", "x": 7.5, "y": 0 },
|
||||
{ "label": "F9", "x": 9.75, "y": 0 },
|
||||
{ "label": "F11", "x": 11.75, "y": 0 },
|
||||
{ "label": "F13", "x": 14, "y": 0 }
|
||||
{ "label": "1", "x": 1, "y": 1.25 },
|
||||
{ "label": "3", "x": 3, "y": 1.25 },
|
||||
{ "label": "5", "x": 5, "y": 1.25 },
|
||||
{ "label": "7", "x": 7, "y": 1.25 },
|
||||
{ "label": "9", "x": 9, "y": 1.25 },
|
||||
{ "label": "-", "x": 11, "y": 1.25 },
|
||||
{ "label": "BACKSPACE", "x": 13, "y": 1.25, "w": 2 }
|
||||
{ "label": "`", "x": 0, "y": 1.25 },
|
||||
{ "label": "2", "x": 2, "y": 1.25 },
|
||||
{ "label": "4", "x": 4, "y": 1.25 },
|
||||
{ "label": "6", "x": 6, "y": 1.25 },
|
||||
{ "label": "8", "x": 8, "y": 1.25 },
|
||||
{ "label": "0", "x": 10, "y": 1.25 },
|
||||
{ "label": "=", "x": 12, "y": 1.25 },
|
||||
{ "label": "TAB", "x": 0, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "W", "x": 2.5, "y": 2.25 },
|
||||
{ "label": "R", "x": 4.5, "y": 2.25 },
|
||||
{ "label": "Y", "x": 6.5, "y": 2.25 },
|
||||
{ "label": "I", "x": 8.5, "y": 2.25 },
|
||||
{ "label": "P", "x": 10.5, "y": 2.25 },
|
||||
{ "label": "]", "x": 12.5, "y": 2.25 },
|
||||
{ "label": "Q", "x": 1.5, "y": 2.25 },
|
||||
{ "label": "E", "x": 3.5, "y": 2.25 },
|
||||
{ "label": "T", "x": 5.5, "y": 2.25 },
|
||||
{ "label": "U", "x": 7.5, "y": 2.25 },
|
||||
{ "label": "O", "x": 9.5, "y": 2.25 },
|
||||
{ "label": "[", "x": 11.5, "y": 2.25 },
|
||||
{ "label": "\\", "x": 13.5, "y": 2.25, "w": 1.5 }
|
||||
{ "label": "A", "x": 1.75, "y": 3.25 },
|
||||
{ "label": "D", "x": 3.75, "y": 3.25 },
|
||||
{ "label": "G", "x": 5.75, "y": 3.25 },
|
||||
{ "label": "J", "x": 7.75, "y": 3.25 },
|
||||
{ "label": "L", "x": 9.75, "y": 3.25 },
|
||||
{ "label": "'", "x": 10.75, "y": 3.25 },
|
||||
{ "x": 12.75, "y": 3.25 },
|
||||
{ "label": "CAPS", "x": 0, "y": 3.25, "w": 1.75 },
|
||||
{ "label": "S", "x": 2.75, "y": 3.25 },
|
||||
{ "label": "F", "x": 4.75, "y": 3.25 },
|
||||
{ "label": "H", "x": 6.75, "y": 3.25 },
|
||||
{ "label": "K", "x": 8.75, "y": 3.25 },
|
||||
{ "label": ";", "x": 11.75, "y": 3.25 },
|
||||
{ "label": "ENTER", "x": 12.75, "y": 3.25, "w": 2.25 }
|
||||
{ "label": "LSHIFT", "x": 0, "y": 4.25, "w": 2.25 },
|
||||
{ "label": "Z", "x": 2.25, "y": 4.25 },
|
||||
{ "label": "C", "x": 4.25, "y": 4.25 },
|
||||
{ "label": "B", "x": 6.25, "y": 4.25 },
|
||||
{ "label": "M", "x": 8.25, "y": 4.25 },
|
||||
{ "label": ".", "x": 10.25, "y": 4.25 },
|
||||
{ "label": "RSHIFT", "x": 12.25, "y": 4.25, "w": 2.75 }
|
||||
{ "label": "NUBS", "x": 1.25, "y": 4.25 },
|
||||
{ "label": "X", "x": 3.25, "y": 4.25 },
|
||||
{ "label": "V", "x": 5.25, "y": 4.25 },
|
||||
{ "label": "N", "x": 7.25, "y": 4.25 },
|
||||
{ "label": ",", "x": 9.25, "y": 4.25 },
|
||||
{ "label": "/", "x": 11.25, "y": 4.25 },
|
||||
{ "x": 10, "y": 5.25 },
|
||||
{ "label": "LCTRL", "x": 0, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "LWIN", "x": 1.5, "y": 5.25, "w": 1 },
|
||||
{ "label": "LALT", "x": 2.5, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "SPACE", "x": 4, "y": 5.25, "w": 7 },
|
||||
{ "label": "RALT", "x": 11, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "RWIN", "x": 12.5, "y": 5.25, "w": 1 },
|
||||
{ "label": "RCTRL", "x": 13.5, "y": 5.25, "w": 1.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
/* Copyright 2022 Nyhxis (@nyhxis)
|
||||
*
|
||||
* 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_ansi(
|
||||
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, KC_F13,
|
||||
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_BSLS, 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,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT_ansi(
|
||||
MO(2), KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN, KC_DOWN, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT_ansi(
|
||||
KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
# The default keymap for NFR-70
|
|
@ -0,0 +1,44 @@
|
|||
/* Copyright 2022 Nyhxis (@nyhxis)
|
||||
*
|
||||
* 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_tsangan(
|
||||
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, KC_F13,
|
||||
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_BSLS, 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, KC_RGUI, KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT_tsangan(
|
||||
MO(2), KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT_tsangan(
|
||||
KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
|
@ -0,0 +1,52 @@
|
|||
/* Copyright 2022 Nyhxis (@nyhxis)
|
||||
*
|
||||
* 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_ansi(
|
||||
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, KC_F13,
|
||||
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_BSLS, 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,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT_ansi(
|
||||
MO(2), KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN, KC_DOWN, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[2] = LAYOUT_ansi(
|
||||
KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[3] = LAYOUT_ansi(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
VIA_ENABLE = yes
|
|
@ -0,0 +1,17 @@
|
|||
/* Copyright 2022 Nyhxis (@nyhxis)
|
||||
*
|
||||
* 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 "nfr_70.h"
|
|
@ -0,0 +1,63 @@
|
|||
/* Copyright 2022 Nyhxis (@nyhxis)
|
||||
*
|
||||
* 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 LAYOUT_ansi( \
|
||||
K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, \
|
||||
K030, K020, K031, K021, K032, K022, K033, K023, K034, K024, K035, K025, K036, K026, K066, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, \
|
||||
K070, K060, K071, K061, K072, K062, K073, K063, K074, K064, K075, K065, K076, \
|
||||
K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, \
|
||||
K100, K101, K102, K103, K096, K104, K105, K106 \
|
||||
) \
|
||||
{ \
|
||||
{ K000, K001, K002, K003, K004, K005, K006 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076 }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086 }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tsangan( \
|
||||
K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, \
|
||||
K030, K020, K031, K021, K032, K022, K033, K023, K034, K024, K035, K025, K036, K026, K066, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, \
|
||||
K070, K060, K071, K061, K072, K062, K073, K063, K074, K064, K075, K065, K076, \
|
||||
K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K096, K086, \
|
||||
K100, K101, K102, K103, K104, K105, K106 \
|
||||
) \
|
||||
{ \
|
||||
{ K000, K001, K002, K003, K004, K005, K006 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076 }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086 }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106 } \
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
# NFR-70
|
||||
|
||||
![NFR-70](https://i.imgur.com/7jeesq6h.jpg)
|
||||
|
||||
A 70% barebones keyboard using Pro-Micro and alternatives.
|
||||
|
||||
Firmware was made and tested for Elite-C. Set bootloader in `rules.mk` to match your preferred MCU.
|
||||
|
||||
* Keyboard Maintainer: [Nyhxis](https://github.com/Nyhxis)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make nyhxis/nfr_70:default
|
||||
|
||||
**Reset Key**: The board can be reset by pressing the RESET button on the Elite-C or the button to the right of it labeled SW1.
|
||||
|
||||
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).
|
|
@ -0,0 +1,19 @@
|
|||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
#BOOTLOADER = caterina # Pro-Micro
|
||||
BOOTLOADER = atmel-dfu # Elite-C
|
||||
|
||||
# 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
|
|
@ -1 +1 @@
|
|||
Subproject commit f836d24b06d7265696a33d1cea010bd6a931791d
|
||||
Subproject commit ffe54d63cb10a355add318f8e922e39f1c3d4bfd
|
|
@ -1 +1 @@
|
|||
Subproject commit d03aa9cc2f76468e431c71421015102956dd6ad7
|
||||
Subproject commit 61baa6b036138c155f7cfc5646d833d9423f3243
|
|
@ -1 +1 @@
|
|||
Subproject commit e2239ee6043f73722e7aa812a459f54a28552929
|
||||
Subproject commit ec44c6c1675c25b9827aacd08c02433cccde7780
|
2
lib/lufa
2
lib/lufa
|
@ -1 +1 @@
|
|||
Subproject commit 549b97320d515bfca2f95c145a67bd13be968faa
|
||||
Subproject commit ce10f7642b0459e409839b23cc91498945119b4d
|
|
@ -1 +1 @@
|
|||
Subproject commit c2e3b4e10d281e7f0f694d3ecbd9f320977288cc
|
||||
Subproject commit d3b984684bb8a8bdc48cc7a1abecb93ce59bbe3e
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 40b48f470addad6a4fb1177de1a69a181158739b
|
2
lib/vusb
2
lib/vusb
|
@ -1 +1 @@
|
|||
Subproject commit 819dbc1e5d5926b17e27e00ca6d3d2988adae04e
|
||||
Subproject commit bdb53e4c043d089279d9891b68bea77614cb97ee
|
|
@ -6,9 +6,9 @@ _qmk_install() {
|
|||
# TODO: Check whether devel/headers packages are really needed
|
||||
sudo dnf $SKIP_PROMPT install \
|
||||
clang diffutils git gcc glibc-headers kernel-devel kernel-headers \
|
||||
make unzip wget zip python3 avr-binutils avr-gcc avr-libc \
|
||||
arm-none-eabi-binutils-cs arm-none-eabi-gcc-cs arm-none-eabi-newlib \
|
||||
avrdude dfu-programmer dfu-util hidapi libusb-devel
|
||||
make unzip wget zip python3 avr-binutils avr-gcc avr-gcc-c++ avr-libc \
|
||||
arm-none-eabi-binutils-cs arm-none-eabi-gcc-cs arm-none-eabi-gcc-cs-c++ \
|
||||
arm-none-eabi-newlib avrdude dfu-programmer dfu-util hidapi libusb-devel
|
||||
|
||||
python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue