Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
767f2c0284 | ||
|
|
0471429c01 | ||
|
|
014aa0661e | ||
|
|
c9262cf7f8 | ||
|
|
b15bd128a5 | ||
|
|
06c89e8abf | ||
|
|
90909fbaf7 | ||
|
|
5f6d9913f8 | ||
|
|
8574bf20d3 | ||
|
|
a01057d19d | ||
|
|
956cf8d7bf | ||
|
|
d36a7c512d | ||
|
|
ebfa7e14f3 | ||
|
|
0290dd3547 | ||
|
|
98a2e9dc0e | ||
|
|
e056ae58a0 | ||
|
|
37aef4ebe1 | ||
|
|
c1e5c920a9 | ||
|
|
b55154fb0a | ||
|
|
c0eab2a504 | ||
|
|
cb53c4fd41 | ||
|
|
872414f454 | ||
|
|
b6ca21c65c | ||
|
|
cded3b7582 | ||
|
|
bb356a1584 | ||
|
|
7575bc23a6 | ||
|
|
583f07ac58 | ||
|
|
c573926e05 | ||
|
|
8d97c54770 | ||
|
|
c5ec423438 | ||
|
|
fac5ec4656 | ||
|
|
b7693c971c | ||
|
|
92106ee038 | ||
|
|
b6d7b13a7a | ||
|
|
6f5428687c | ||
|
|
bdd0a6c097 | ||
|
|
f2c9e82e5b | ||
|
|
1e7117317f | ||
|
|
5ed8edae49 | ||
|
|
2dc07391bd | ||
|
|
27aebba1b1 | ||
|
|
c9283f4c1f | ||
|
|
b63114ea29 |
No files matched your search
+1
-1
@@ -5,7 +5,7 @@ This page covers questions people often have about keymaps. If you haven't you s
|
|||||||
## What Keycodes Can I Use?
|
## What Keycodes Can I Use?
|
||||||
See [Keycodes](keycodes.md) for an index of keycodes available to you. These link to more extensive documentation when available.
|
See [Keycodes](keycodes.md) for an index of keycodes available to you. These link to more extensive documentation when available.
|
||||||
|
|
||||||
Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h).
|
Keycodes are actually defined in [quantum/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/keycode.h).
|
||||||
|
|
||||||
## What Are the Default Keycodes?
|
## What Are the Default Keycodes?
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ const key_override_t **key_overrides = (const key_override_t *[]){
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Flexible macOS-friendly Grave Escape
|
### Flexible macOS-friendly Grave Escape
|
||||||
The [Grave Escape feature](https://docs.qmk.fm/using-qmk/advanced-keycodes/feature_grave_esc) is limited in its configurability and has [bugs when used on macOS](https://docs.qmk.fm/using-qmk/advanced-keycodes/feature_grave_esc#caveats). Key overrides can be used to achieve a similar functionality as Grave Escape, but with more customization and without bugs on macOS.
|
The [Grave Escape feature](feature_grave_esc.md) is limited in its configurability and has [bugs when used on macOS](feature_grave_esc.md#caveats). Key overrides can be used to achieve a similar functionality as Grave Escape, but with more customization and without bugs on macOS.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
// Shift + esc = ~
|
// Shift + esc = ~
|
||||||
|
|||||||
@@ -356,6 +356,10 @@ bool oled_scroll_left(void);
|
|||||||
// Returns true if the screen was not scrolling or stops scrolling
|
// Returns true if the screen was not scrolling or stops scrolling
|
||||||
bool oled_scroll_off(void);
|
bool oled_scroll_off(void);
|
||||||
|
|
||||||
|
// Returns true if the oled is currently scrolling, false if it is
|
||||||
|
// not
|
||||||
|
bool is_oled_scrolling(void);
|
||||||
|
|
||||||
// Inverts the display
|
// Inverts the display
|
||||||
// Returns true if the screen was or is inverted
|
// Returns true if the screen was or is inverted
|
||||||
bool oled_invert(bool invert);
|
bool oled_invert(bool invert);
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ A 1 byte number that is sent as part of a HID report over USB that represents a
|
|||||||
## Space Cadet Shift
|
## Space Cadet Shift
|
||||||
A special set of shift keys which allow you to type various types of braces by tapping the left or right shift one or more times.
|
A special set of shift keys which allow you to type various types of braces by tapping the left or right shift one or more times.
|
||||||
|
|
||||||
* [Space Cadet Shift Documentation](feature_space_cadet_shift.md)
|
* [Space Cadet Shift Documentation](feature_space_cadet.md)
|
||||||
|
|
||||||
## Tap
|
## Tap
|
||||||
Pressing and releasing a key. In some situations you will need to distinguish between a key down and a key up event, and Tap always refers to both at once.
|
Pressing and releasing a key. In some situations you will need to distinguish between a key down and a key up event, and Tap always refers to both at once.
|
||||||
|
|||||||
@@ -313,6 +313,10 @@ bool oled_scroll_left(void);
|
|||||||
// Returns true if the screen was not scrolling or stops scrolling
|
// Returns true if the screen was not scrolling or stops scrolling
|
||||||
bool oled_scroll_off(void);
|
bool oled_scroll_off(void);
|
||||||
|
|
||||||
|
// Returns true if the oled is currently scrolling, false if it is
|
||||||
|
// not
|
||||||
|
bool is_oled_scrolling(void);
|
||||||
|
|
||||||
// Inverts the display
|
// Inverts the display
|
||||||
// Returns true if the screen was or is inverted
|
// Returns true if the screen was or is inverted
|
||||||
bool oled_invert(bool invert);
|
bool oled_invert(bool invert);
|
||||||
|
|||||||
@@ -692,6 +692,8 @@ bool oled_scroll_off(void) {
|
|||||||
return !oled_scrolling;
|
return !oled_scrolling;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_oled_scrolling(void) { return oled_scrolling; }
|
||||||
|
|
||||||
bool oled_invert(bool invert) {
|
bool oled_invert(bool invert) {
|
||||||
if (!oled_initialized) {
|
if (!oled_initialized) {
|
||||||
return oled_inverted;
|
return oled_inverted;
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
// Copyright 2021 Christian Eiden, cykedev
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
#define BOOTMAGIC_LITE_ROW 0
|
||||||
|
#define BOOTMAGIC_LITE_COLUMN 0
|
||||||
|
|
||||||
|
#define BOOTMAGIC_LITE_ROW_RIGHT 0
|
||||||
|
#define BOOTMAGIC_LITE_COLUMN_RIGHT 5
|
||||||
|
|
||||||
|
#define TAPPING_TERM 200
|
||||||
|
|
||||||
|
// Prevent normal rollover on alphas from accidentally triggering mods.
|
||||||
|
// #define IGNORE_MOD_TAP_INTERRUPT
|
||||||
|
|
||||||
|
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
|
||||||
|
// #define TAPPING_FORCE_HOLD
|
||||||
|
|
||||||
|
// Apply the modifier on keys that are tapped during a short hold of a modtap
|
||||||
|
// #define PERMISSIVE_HOLD
|
||||||
|
|
||||||
|
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
|
||||||
|
|
||||||
|
#define FORCE_NKRO
|
||||||
@@ -0,0 +1,198 @@
|
|||||||
|
// Copyright 2021 Christian Eiden, cykedev
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
#define CM_SPAL LGUI_T(KC_SPC)
|
||||||
|
#define CM_SPAR RGUI_T(KC_SPC)
|
||||||
|
|
||||||
|
#define SH_ENL LSFT_T(KC_ENT)
|
||||||
|
#define SH_ENR RSFT_T(KC_ENT)
|
||||||
|
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
|
||||||
|
#define QWERT DF(_QWERTY)
|
||||||
|
#define COLEM DF(_COLEMAK_DH)
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_COLEMAK_DH,
|
||||||
|
_QWERTY,
|
||||||
|
_RAISE,
|
||||||
|
_LOWER,
|
||||||
|
_ADJUST
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_COLEMAK_DH] = LAYOUT_split_4x6_5(
|
||||||
|
/* COLEMAK_DH
|
||||||
|
* .-----------------------------------------. .-----------------------------------------.
|
||||||
|
* | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bsp |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | Tab | Q | W | F | P | B | | J | L | U | Y | ; | \ |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | Del | A | R | S | T | G | | M | N | E | I | O | ' |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | Shft | Z | X | C | D | V | | K | H | , | . | / | Shft |
|
||||||
|
* '-----------------------------------------/ \-----------------------------------------'
|
||||||
|
* / RAISE /---------------. .---------------\ LOWER \
|
||||||
|
* / / Cmd / Shift / \ Shift \ Cmd \ \
|
||||||
|
* '-------/ Space / Enter / \ Enter \ Space \-------'
|
||||||
|
* /---------------/ \---------------\
|
||||||
|
* / Alt / Ctrl / \ Ctrl \ Alt \
|
||||||
|
* / / / \ \ \
|
||||||
|
* '---------------' '---------------'
|
||||||
|
*/
|
||||||
|
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC,
|
||||||
|
KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSLS,
|
||||||
|
KC_DEL , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M , KC_N , KC_E , KC_I , KC_O , KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z , KC_X , KC_C , KC_D , KC_V , KC_K , KC_H , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
|
||||||
|
RAISE , CM_SPAL, SH_ENL , SH_ENR , CM_SPAR, LOWER ,
|
||||||
|
KC_LALT, KC_LCTL, KC_RCTL, KC_RALT
|
||||||
|
),
|
||||||
|
[_QWERTY] = LAYOUT_split_4x6_5(
|
||||||
|
/* QWERTY
|
||||||
|
* .-----------------------------------------. .-----------------------------------------.
|
||||||
|
* | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bsp |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | Del | A | S | D | F | G | | H | J | K | L | ; | ' |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | Shft | Z | X | C | V | B | | N | M | , | . | / | Shft |
|
||||||
|
* '-----------------------------------------/ \-----------------------------------------'
|
||||||
|
* / RAISE /---------------. .---------------\ LOWER \
|
||||||
|
* / / Cmd / Shift / \ Shift \ Cmd \ \
|
||||||
|
* '-------/ Space / Enter / \ Enter \ Space \-------'
|
||||||
|
* /---------------/ \---------------\
|
||||||
|
* / Alt / Ctrl / \ Ctrl \ Alt \
|
||||||
|
* / / / \ \ \
|
||||||
|
* '---------------' '---------------'
|
||||||
|
*/
|
||||||
|
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , 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_BSLS,
|
||||||
|
KC_DEL , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_LSFT,
|
||||||
|
RAISE , CM_SPAL, SH_ENL , SH_ENR , CM_SPAR, LOWER ,
|
||||||
|
KC_LALT, KC_LCTL, KC_RCTL, KC_RALT
|
||||||
|
),
|
||||||
|
[_RAISE] = LAYOUT_split_4x6_5(
|
||||||
|
/* RAISE
|
||||||
|
* .-----------------------------------------. .-----------------------------------------.
|
||||||
|
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | | | | [ | ] | | | $ | / | * | # | ~ | F12 |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | Ins | ! | @ | ( | ) | | | % | - | + | = | ? | |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | | | | { | } | | | ^ | & | | | | | |
|
||||||
|
* '-----------------------------------------/ \-----------------------------------------'
|
||||||
|
* / /---------------. .---------------\ \
|
||||||
|
* / / / / \ \ \ \
|
||||||
|
* '-------/ / / \ \ \-------'
|
||||||
|
* /---------------/ \---------------\
|
||||||
|
* / / / \ \ \
|
||||||
|
* / / / \ \ \
|
||||||
|
* '---------------' '---------------'
|
||||||
|
*/
|
||||||
|
XXXXXXX, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, XXXXXXX, KC_DLR , KC_SLSH, KC_ASTR, KC_HASH, KC_TILD, KC_F12 ,
|
||||||
|
KC_INS , KC_EXLM, KC_AT , KC_LPRN, KC_RPRN, XXXXXXX, KC_PERC, KC_MINS, KC_PPLS, KC_PEQL, KC_QUES, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, XXXXXXX, KC_CIRC, KC_AMPR, KC_PIPE, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_LOWER] = LAYOUT_split_4x6_5(
|
||||||
|
/* LOWER
|
||||||
|
* .-----------------------------------------. .-----------------------------------------.
|
||||||
|
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | | | | [ | ] | + | | | | up | | | F12 |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | Ins | ! | @ | ( | ) | - | | | left | down | rght | ? | |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | | | | { | } | = | | | | | | | |
|
||||||
|
* '-----------------------------------------/ \-----------------------------------------'
|
||||||
|
* / /---------------. .---------------\ \
|
||||||
|
* / / / / \ \ \ \
|
||||||
|
* '-------/ / / \ \ \-------'
|
||||||
|
* /---------------/ \---------------\
|
||||||
|
* / / / \ \ \
|
||||||
|
* / / / \ \ \
|
||||||
|
* '---------------' '---------------'
|
||||||
|
*/
|
||||||
|
XXXXXXX, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_PPLS, XXXXXXX, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, KC_F12 ,
|
||||||
|
KC_INS , KC_EXLM, KC_AT , KC_LPRN, KC_RPRN, KC_MINS, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_QUES, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_PEQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_ADJUST] = LAYOUT_split_4x6_5(
|
||||||
|
/* ADJUST
|
||||||
|
* .-----------------------------------------. .-----------------------------------------.
|
||||||
|
* | | | | | | QWERT| |COLEM | | | | | |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | | | | | | V+ | | B + | | | | | |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | | | | | | V- | | B - | << | play | >> | | |
|
||||||
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
|
* | | | | | | Mute | | | | | | | |
|
||||||
|
* '-----------------------------------------/ \-----------------------------------------'
|
||||||
|
* / /---------------. .---------------\ \
|
||||||
|
* / / / / \ \ \ \
|
||||||
|
* '-------/ / / \ \ \-------'
|
||||||
|
* /---------------/ \---------------\
|
||||||
|
* / / / \ \ \
|
||||||
|
* / / / \ \ \
|
||||||
|
* '---------------' '---------------'
|
||||||
|
*/
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERT , COLEM , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_BRIU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_BRID, KC_MRWD, KC_MPLY, KC_MFFD, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case CM_SPAR:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flexible macOS-friendly Grave Escape
|
||||||
|
// https://docs.qmk.fm/#/feature_key_overrides?id=flexible-macos-friendly-grave-escape
|
||||||
|
|
||||||
|
const key_override_t tilde_esc_override = ko_make_basic(MOD_MASK_SHIFT, KC_ESC, S(KC_GRAVE));
|
||||||
|
const key_override_t grave_esc_override = ko_make_basic(MOD_MASK_GUI, KC_ESC, KC_GRAVE);
|
||||||
|
const key_override_t delete_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPACE, KC_DELETE);
|
||||||
|
|
||||||
|
|
||||||
|
const key_override_t **key_overrides = (const key_override_t *[]){
|
||||||
|
&tilde_esc_override,
|
||||||
|
&grave_esc_override,
|
||||||
|
&delete_key_override,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix
|
||||||
|
KEY_OVERRIDE_ENABLE = yes # Enable Key Overrides, see https://docs.qmk.fm/#/feature_key_overrides
|
||||||
@@ -8,8 +8,8 @@ BOOTLOADER = atmel-dfu
|
|||||||
# change yes to no to disable
|
# change yes to no to disable
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
|
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
EXTRAKEY_ENABLE = no # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ BOOTLOADER = atmel-dfu
|
|||||||
# change yes to no to disable
|
# change yes to no to disable
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
|
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
EXTRAKEY_ENABLE = no # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
|||||||
@@ -28,12 +28,12 @@ void matrix_init_kb(void)
|
|||||||
audio_init();
|
audio_init();
|
||||||
PLAY_SONG(test_sound);
|
PLAY_SONG(test_sound);
|
||||||
// Fix port B5
|
// Fix port B5
|
||||||
cbi(DDRB, 5);
|
setPinInput(B5);
|
||||||
sbi(PORTB, 5);
|
writePinHigh(B5);
|
||||||
#else
|
#else
|
||||||
// If we're not using the audio pin, drive it low
|
// If we're not using the audio pin, drive it low
|
||||||
sbi(DDRC, 6);
|
setPinOutput(C6);
|
||||||
cbi(PORTC, 6);
|
writePinLow(C6);
|
||||||
#endif
|
#endif
|
||||||
#ifdef ISSI_ENABLE
|
#ifdef ISSI_ENABLE
|
||||||
issi_init();
|
issi_init();
|
||||||
|
|||||||
@@ -1,26 +1,10 @@
|
|||||||
#ifndef CU75_H
|
#ifndef CU75_H
|
||||||
#define CU75_H
|
#define CU75_H
|
||||||
|
|
||||||
/* if the kb.h file exists (because we're running from qmkbuilder) include it */
|
|
||||||
#ifdef __has_include
|
|
||||||
#if __has_include("kb.h")
|
|
||||||
#include "kb.h"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "matrix.h"
|
#include "matrix.h"
|
||||||
#include <avr/sfr_defs.h>
|
#include <avr/sfr_defs.h>
|
||||||
|
|
||||||
#ifndef cbi
|
|
||||||
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef sbi
|
|
||||||
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct RGB_Color {
|
typedef struct RGB_Color {
|
||||||
uint16_t red;
|
uint16_t red;
|
||||||
uint16_t green;
|
uint16_t green;
|
||||||
|
|||||||
+24
-20
@@ -7,26 +7,30 @@
|
|||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_ortho_5x4": {
|
"LAYOUT_ortho_5x4": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"K11 (F7,C7)", "x":1, "y":1},
|
{"label":"K11 (F7,C7)", "x":0, "y":0},
|
||||||
{"label":"K21 (F1,C7)", "x":2, "y":1},
|
{"label":"K21 (F1,C7)", "x":1, "y":0},
|
||||||
{"label":"K31 (B2,C7)", "x":3, "y":1},
|
{"label":"K31 (B2,C7)", "x":2, "y":0},
|
||||||
{"label":"K41 (B2,F0)", "x":4, "y":1},
|
{"label":"K41 (B2,F0)", "x":3, "y":0},
|
||||||
{"label":"K12 (F1,F0)", "x":1, "y":2},
|
|
||||||
{"label":"K22 (B2,B6)", "x":2, "y":2},
|
{"label":"K12 (F1,F0)", "x":0, "y":1},
|
||||||
{"label":"K32 (F1,B6)", "x":3, "y":2},
|
{"label":"K22 (B2,B6)", "x":1, "y":1},
|
||||||
{"label":"K42 (B2,B3)", "x":4, "y":2},
|
{"label":"K32 (F1,B6)", "x":2, "y":1},
|
||||||
{"label":"K13 (F1,B3)", "x":1, "y":3},
|
{"label":"K42 (B2,B3)", "x":3, "y":1},
|
||||||
{"label":"K23 (B2,C6)", "x":2, "y":3},
|
|
||||||
{"label":"K33 (F1,C6)", "x":3, "y":3},
|
{"label":"K13 (F1,B3)", "x":0, "y":2},
|
||||||
{"label":"K43 (B2,E6)", "x":4, "y":3},
|
{"label":"K23 (B2,C6)", "x":1, "y":2},
|
||||||
{"label":"K14 (F1,E6)", "x":1, "y":4},
|
{"label":"K33 (F1,C6)", "x":2, "y":2},
|
||||||
{"label":"K24 (B2,D5)", "x":2, "y":4},
|
{"label":"K43 (B2,E6)", "x":3, "y":2},
|
||||||
{"label":"K34 (F1,D5)", "x":3, "y":4},
|
|
||||||
{"label":"K44 (D0,B1)", "x":4, "y":4},
|
{"label":"K14 (F1,E6)", "x":0, "y":3},
|
||||||
{"label":"K15 (D0,F4)", "x":1, "y":5},
|
{"label":"K24 (B2,D5)", "x":1, "y":3},
|
||||||
{"label":"K25 (F7,D1)", "x":2, "y":5},
|
{"label":"K34 (F1,D5)", "x":2, "y":3},
|
||||||
{"label":"K35 (F7,B3)", "x":3, "y":5},
|
{"label":"K44 (D0,B1)", "x":3, "y":3},
|
||||||
{"label":"K45 (B5,C7)", "x":4, "y":5},
|
|
||||||
|
{"label":"K15 (D0,F4)", "x":0, "y":4},
|
||||||
|
{"label":"K25 (F7,D1)", "x":1, "y":4},
|
||||||
|
{"label":"K35 (F7,B3)", "x":2, "y":4},
|
||||||
|
{"label":"K45 (B5,C7)", "x":3, "y":4}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
extern i2c_status_t mcp23018_status;
|
extern i2c_status_t mcp23018_status;
|
||||||
#define ERGODOX_EZ_I2C_TIMEOUT 1000
|
#define ERGODOX_EZ_I2C_TIMEOUT 1000
|
||||||
#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n))
|
|
||||||
#define CPU_16MHz 0x00
|
|
||||||
|
|
||||||
// I2C aliases and register addresses (see "mcp23018.md")
|
// I2C aliases and register addresses (see "mcp23018.md")
|
||||||
//#define I2C_ADDR 0b0100000
|
//#define I2C_ADDR 0b0100000
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 <[email protected]>
|
||||||
|
|
||||||
|
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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x7074 // FJLaboratories
|
||||||
|
#define PRODUCT_ID 0x0006 // KF87
|
||||||
|
#define DEVICE_VER 0x0001 // Version 1
|
||||||
|
#define MANUFACTURER FJLaboratories
|
||||||
|
#define PRODUCT KF87
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 17
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*å
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Checked with Eagle Schematic
|
||||||
|
#define MATRIX_ROW_PINS { B4, B5, B6, C0, E1, E0 }
|
||||||
|
#define MATRIX_COL_PINS { F2, F3, F4, F5, F6, F7, A0, A1, A2, A3, A4, A5, A6, A7, D5, D6, D7 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* Define Indicator LED's */
|
||||||
|
#define LED_CAPS_LOCK_PIN C4
|
||||||
|
#define LED_SCROLL_LOCK_PIN C6
|
||||||
|
|
||||||
|
/* Define RGB */
|
||||||
|
#define RGB_DI_PIN C2
|
||||||
|
#define RGBLED_NUM 87
|
||||||
|
#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 86
|
||||||
|
#define RGB_VAL_STEP 12
|
||||||
|
|
||||||
|
/* Define less important options */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force NKRO
|
||||||
|
*
|
||||||
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
|
* makefile for this to work.)
|
||||||
|
*
|
||||||
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
|
* until the next keyboard reset.
|
||||||
|
*
|
||||||
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
|
* fully operational during normal computer usage.
|
||||||
|
*
|
||||||
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
|
* power-up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "KF87 Replacement PCB's",
|
||||||
|
"url": "http://www.fjlaboratories.com/",
|
||||||
|
"maintainer": "FJLabs",
|
||||||
|
"width": 18.25,
|
||||||
|
"height": 6.25,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_tkl_all": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"F1", "x":2, "y":0},
|
||||||
|
{"label":"F2", "x":3, "y":0},
|
||||||
|
{"label":"F3", "x":4, "y":0},
|
||||||
|
{"label":"F4", "x":5, "y":0},
|
||||||
|
{"label":"F5", "x":6.5, "y":0},
|
||||||
|
{"label":"F6", "x":7.5, "y":0},
|
||||||
|
{"label":"F7", "x":8.5, "y":0},
|
||||||
|
{"label":"F8", "x":9.5, "y":0},
|
||||||
|
{"label":"F9", "x":11, "y":0},
|
||||||
|
{"label":"F10", "x":12, "y":0},
|
||||||
|
{"label":"F11", "x":13, "y":0},
|
||||||
|
{"label":"F12", "x":14, "y":0},
|
||||||
|
{"label":"PrtSc", "x":15.25, "y":0},
|
||||||
|
{"label":"Scroll Lock", "x":16.25, "y":0},
|
||||||
|
{"label":"Pause", "x":17.25, "y":0},
|
||||||
|
|
||||||
|
{"label":"~", "x":0, "y":1.25},
|
||||||
|
{"label":"!", "x":1, "y":1.25},
|
||||||
|
{"label":"@", "x":2, "y":1.25},
|
||||||
|
{"label":"#", "x":3, "y":1.25},
|
||||||
|
{"label":"$", "x":4, "y":1.25},
|
||||||
|
{"label":"%", "x":5, "y":1.25},
|
||||||
|
{"label":"^", "x":6, "y":1.25},
|
||||||
|
{"label":"&", "x":7, "y":1.25},
|
||||||
|
{"label":"*", "x":8, "y":1.25},
|
||||||
|
{"label":"(", "x":9, "y":1.25},
|
||||||
|
{"label":")", "x":10, "y":1.25},
|
||||||
|
{"label":"_", "x":11, "y":1.25},
|
||||||
|
{"label":"+", "x":12, "y":1.25},
|
||||||
|
{"label":"Back Space", "x":13, "y":1.25, "w": 2},
|
||||||
|
{"label":"Insert", "x":15.25, "y":1.25},
|
||||||
|
{"label":"Home", "x":16.25, "y":1.25},
|
||||||
|
{"label":"PgUp", "x":17.25, "y":1.25},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":2.25, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":2.25},
|
||||||
|
{"label":"W", "x":2.5, "y":2.25},
|
||||||
|
{"label":"E", "x":3.5, "y":2.25},
|
||||||
|
{"label":"R", "x":4.5, "y":2.25},
|
||||||
|
{"label":"T", "x":5.5, "y":2.25},
|
||||||
|
{"label":"Y", "x":6.5, "y":2.25},
|
||||||
|
{"label":"U", "x":7.5, "y":2.25},
|
||||||
|
{"label":"I", "x":8.5, "y":2.25},
|
||||||
|
{"label":"O", "x":9.5, "y":2.25},
|
||||||
|
{"label":"P", "x":10.5, "y":2.25},
|
||||||
|
{"label":"{", "x":11.5, "y":2.25},
|
||||||
|
{"label":"}", "x":12.5, "y":2.25},
|
||||||
|
{"label":"|", "x":13.5, "y":2.25, "w":1.5},
|
||||||
|
{"label":"Delete", "x":15.25, "y":2.25},
|
||||||
|
{"label":"End", "x":16.25, "y":2.25},
|
||||||
|
{"label":"PgDn", "x":17.25, "y":2.25},
|
||||||
|
|
||||||
|
{"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":3.25},
|
||||||
|
{"label":"S", "x":2.75, "y":3.25},
|
||||||
|
{"label":"D", "x":3.75, "y":3.25},
|
||||||
|
{"label":"F", "x":4.75, "y":3.25},
|
||||||
|
{"label":"G", "x":5.75, "y":3.25},
|
||||||
|
{"label":"H", "x":6.75, "y":3.25},
|
||||||
|
{"label":"J", "x":7.75, "y":3.25},
|
||||||
|
{"label":"K", "x":8.75, "y":3.25},
|
||||||
|
{"label":"L", "x":9.75, "y":3.25},
|
||||||
|
{"label":":", "x":10.75, "y":3.25},
|
||||||
|
{"label":"SQ", "x":11.75, "y":3.25},
|
||||||
|
{"label":"Enter", "x":12.75, "y":3.25, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":4.25, "w":2.25},
|
||||||
|
{"label":"Z", "x":2.25, "y":4.25},
|
||||||
|
{"label":"X", "x":3.25, "y":4.25},
|
||||||
|
{"label":"C", "x":4.25, "y":4.25},
|
||||||
|
{"label":"V", "x":5.25, "y":4.25},
|
||||||
|
{"label":"B", "x":6.25, "y":4.25},
|
||||||
|
{"label":"N", "x":7.25, "y":4.25},
|
||||||
|
{"label":"M", "x":8.25, "y":4.25},
|
||||||
|
{"label":"<", "x":9.25, "y":4.25},
|
||||||
|
{"label":">", "x":10.25, "y":4.25},
|
||||||
|
{"label":"?", "x":11.25, "y":4.25},
|
||||||
|
{"label":"Shift", "x":12.25, "y":4.25, "w":2.75},
|
||||||
|
{"label":"\u2191", "x":16.25, "y":4.25},
|
||||||
|
|
||||||
|
{"label":"Ctrl", "x":0, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Win", "x":1.25, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Alt", "x":2.5, "y":5.25, "w":1.25},
|
||||||
|
{"x":3.75, "y":5.25, "w":6.25},
|
||||||
|
{"label":"Alt", "x":10, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Win", "x":11.25, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Menu", "x":12.5, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25},
|
||||||
|
{"label":"\u2190", "x":15.25, "y":5.25},
|
||||||
|
{"label":"\u2193", "x":16.25, "y":5.25},
|
||||||
|
{"label":"\u2192", "x":17.25, "y":5.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 <[email protected]>
|
||||||
|
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_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_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_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_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LAYER1] = LAYOUT_tkl_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
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 <[email protected]>
|
||||||
|
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,
|
||||||
|
_LAYER2,
|
||||||
|
_LAYER3,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_LAYER0] = LAYOUT_tkl_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_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_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_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LAYER1] = LAYOUT_tkl_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
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LAYER2] = LAYOUT_tkl_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
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LAYER3] = LAYOUT_tkl_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
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 <[email protected]>
|
||||||
|
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 "kf87.h"
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 <[email protected]>
|
||||||
|
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"
|
||||||
|
|
||||||
|
/* === All used matrix spots populated === */
|
||||||
|
#define LAYOUT_tkl_all( \
|
||||||
|
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||||
|
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \
|
||||||
|
K50, K51, K52, K55, K59, K5A, K5B, K5D, K5E, K5F, K5G \
|
||||||
|
) { \
|
||||||
|
{ K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, K4C, KC_NO, KC_NO, K4F, KC_NO }, \
|
||||||
|
{ K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, K59, K5A, K5B, KC_NO, K5D, K5E, K5F, K5G } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# KF87 Monstargears Replacement PCB by FJLaboratories for KawaiiVoldemort
|
||||||
|
|
||||||
|
The following is the QMK Firmware for the KF87 by [FJLaboratories](https://www.fjlaboratories.com/).
|
||||||
|
* Keyboard Maintainer: FJLaboratories
|
||||||
|
* Hardware Supported: KF87
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make fjlabs/kf87: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).
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
You can enter the bootloader by shorting the RST pads on the back of the PCB while the PCB is plugged into the computer.
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = at90usb646
|
||||||
|
|
||||||
|
# Processor frequency
|
||||||
|
F_CPU = 8000000
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
KEYBOARD_LOCK_ENABLE = yes
|
||||||
@@ -2,10 +2,11 @@
|
|||||||
"keyboard_name": "Ready100",
|
"keyboard_name": "Ready100",
|
||||||
"url": "https://www.ready100.com",
|
"url": "https://www.ready100.com",
|
||||||
"maintainer": "FJLabs",
|
"maintainer": "FJLabs",
|
||||||
"width": 15,
|
"layout_aliases": {
|
||||||
"height": 5,
|
"LAYOUT_64key": "LAYOUT_64_ansi"
|
||||||
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_65_ansi": {
|
"LAYOUT_64_ansi": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"x": 0, "y": 0},
|
{"x": 0, "y": 0},
|
||||||
{"x": 1, "y": 0},
|
{"x": 1, "y": 0},
|
||||||
@@ -65,7 +66,6 @@
|
|||||||
{"x": 12, "y": 3},
|
{"x": 12, "y": 3},
|
||||||
{"x": 13, "y": 3},
|
{"x": 13, "y": 3},
|
||||||
{"x": 14, "y": 3},
|
{"x": 14, "y": 3},
|
||||||
{"x": 15, "y": 3},
|
|
||||||
|
|
||||||
{"x": 0, "y": 4, "w": 1.25},
|
{"x": 0, "y": 4, "w": 1.25},
|
||||||
{"x": 1.25, "y": 4, "w": 1.25},
|
{"x": 1.25, "y": 4, "w": 1.25},
|
||||||
|
|||||||
@@ -21,20 +21,20 @@ enum layers {
|
|||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[_LAYER0] = LAYOUT_64key(
|
[_LAYER0] = LAYOUT_64_ansi(
|
||||||
KC_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_BSPC,
|
KC_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_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_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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LAYER1] = LAYOUT_64key(
|
[_LAYER1] = LAYOUT_64_ansi(
|
||||||
KC_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_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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, RESET,
|
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET,
|
||||||
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
)
|
)
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -23,36 +23,36 @@ enum layers {
|
|||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[_LAYER0] = LAYOUT_64key(
|
[_LAYER0] = LAYOUT_64_ansi(
|
||||||
KC_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_BSPC,
|
KC_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_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_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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LAYER1] = LAYOUT_64key(
|
[_LAYER1] = LAYOUT_64_ansi(
|
||||||
KC_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_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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, RESET,
|
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET,
|
||||||
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LAYER2] = LAYOUT_64key(
|
[_LAYER2] = LAYOUT_64_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LAYER3] = LAYOUT_64key(
|
[_LAYER3] = LAYOUT_64_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
),
|
),
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
/* Ready100 Keymap Definitions */
|
/* Ready100 Keymap Definitions */
|
||||||
#define LAYOUT_64key( \
|
#define LAYOUT_64_ansi( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, 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, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||||
|
|||||||
@@ -24,3 +24,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
|||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
AUDIO_ENABLE = no # Audio output
|
AUDIO_ENABLE = no # Audio output
|
||||||
KEYBOARD_LOCK_ENABLE = yes
|
KEYBOARD_LOCK_ENABLE = yes
|
||||||
|
|
||||||
|
LAYOUTS = 64_ansi
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
/* Copyright 2018 Carlos Filoteo
|
||||||
|
*
|
||||||
|
* 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 TAPPING_TERM 200
|
||||||
|
#define TAPPING_TERM_PER_KEY
|
||||||
|
#define IGNORE_MOD_TAP_INTERRUPT
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/* Copyright 2020 foostan
|
||||||
|
*
|
||||||
|
* 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 "hvp.c"
|
||||||
|
|
||||||
|
#define LT3_ESC LT(3, KC_ESC)
|
||||||
|
#define LT4_TAB LT(5, KC_TAB)
|
||||||
|
#define LT2 LT(2, KC_LEFT_CURLY_BRACE)
|
||||||
|
#define LT1 LT(1, KC_RIGHT_CURLY_BRACE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
LT3_ESC, MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LSFT, KC_D), MT(MOD_LCTL, KC_F), LT(4,KC_G), MT(MOD_RCTL, KC_H), MT(MOD_RSFT, KC_J), MT(MOD_RALT,KC_K), MT(MOD_RGUI,KC_L), TD(TD1), TD(TD2),
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT,
|
||||||
|
KC_LCPO, KC_LCTL, KC_LGUI, KC_LALT, LT2, KC_SPC, KC_ENT, LT1, KC_RALT, KC_RGUI, KC_RCTL, KC_RSPC
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT( /* Right */
|
||||||
|
KC_TILDE, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||||
|
KC_DEL, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
|
||||||
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT( /* Left */
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
KC_DEL, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX,
|
||||||
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT( /* 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_DELETE, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX,
|
||||||
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
|
||||||
|
),
|
||||||
|
|
||||||
|
[4] = LAYOUT(
|
||||||
|
_______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), KC_7, KC_8, KC_9, KC_BSPC,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_4, KC_5, KC_6, KC_0,
|
||||||
|
_______, _______, _______, _______, _______, _______, XXXXXXX, KC_0, KC_1, KC_2, KC_3, _______,
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[5] = LAYOUT(
|
||||||
|
_______, G(S(KC_1)), G(S(KC_2)), G(S(KC_3)), G(S(KC_4)), G(S(KC_5)), G(S(KC_6)), G(S(KC_7)), G(S(KC_8)), G(S(KC_9)), G(S(KC_0)), _______,
|
||||||
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS,
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NLCK
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for cornelius
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
TAP_DANCE_ENABLE = yes
|
||||||
@@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
extern i2c_status_t mcp23018_status;
|
extern i2c_status_t mcp23018_status;
|
||||||
#define ERGODOX_EZ_I2C_TIMEOUT 1000
|
#define ERGODOX_EZ_I2C_TIMEOUT 1000
|
||||||
#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n))
|
|
||||||
#define CPU_16MHz 0x00
|
|
||||||
|
|
||||||
// I2C aliases and register addresses (see "mcp23018.md")
|
// I2C aliases and register addresses (see "mcp23018.md")
|
||||||
//#define I2C_ADDR 0b0100000
|
//#define I2C_ADDR 0b0100000
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
extern i2c_status_t mcp23018_status;
|
extern i2c_status_t mcp23018_status;
|
||||||
#define I2C_TIMEOUT 1000
|
#define I2C_TIMEOUT 1000
|
||||||
#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n))
|
|
||||||
#define CPU_16MHz 0x00
|
|
||||||
|
|
||||||
// I2C aliases and register addresses (see "mcp23018.md")
|
// I2C aliases and register addresses (see "mcp23018.md")
|
||||||
//#define I2C_ADDR 0b0100000
|
//#define I2C_ADDR 0b0100000
|
||||||
|
|||||||
File renamed without changes.
@@ -31,3 +31,9 @@
|
|||||||
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
|
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
|
||||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// add fifth layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable
|
||||||
|
#if defined COLEMAK_LAYER_ENABLE
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
|
||||||
|
#define _COLEMAK 4
|
||||||
|
#endif // COLEMAK_LAYER_ENABLE
|
||||||
@@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
|
||||||
_______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, RESET, KC_HOME,
|
_______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, RESET, KC_HOME,
|
||||||
KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
|
KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
|
||||||
_______, _______, RGB_HUI, _______, _______, _______, KC_NLCK, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______,
|
_______, RGB_NITE,RGB_HUI, _______, _______, _______, KC_NLCK, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______,
|
||||||
_______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
|
_______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -66,12 +66,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
|
#ifdef COLEMAK_LAYER_ENABLE
|
||||||
|
[_COLEMAK] = 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, KC_INS, KC_MUTE,
|
||||||
|
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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||||
|
TT(_LOWER), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFTCAPSWIN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
#endif // COLEMAK_LAYER_ENABLE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
// Capslock, Scroll lock and Numlock indicator on Left side lights.
|
// Capslock, Scroll lock and Numlock indicator on Left side lights.
|
||||||
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
|
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
|
||||||
|
if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF);
|
||||||
if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) {
|
if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) {
|
||||||
rgb_matrix_set_color(LED_L1, RGB_GREEN);
|
rgb_matrix_set_color(LED_L1, RGB_GREEN);
|
||||||
rgb_matrix_set_color(LED_L2, RGB_GREEN);
|
rgb_matrix_set_color(LED_L2, RGB_GREEN);
|
||||||
@@ -120,6 +131,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
rgb_matrix_set_color(LED_R7, RGB_GREEN);
|
rgb_matrix_set_color(LED_R7, RGB_GREEN);
|
||||||
rgb_matrix_set_color(LED_R8, RGB_GREEN);
|
rgb_matrix_set_color(LED_R8, RGB_GREEN);
|
||||||
break;
|
break;
|
||||||
|
#ifdef COLEMAK_LAYER_ENABLE
|
||||||
|
case _COLEMAK:
|
||||||
|
for (uint8_t i=0; i<ARRAYSIZE(LED_SIDE_RIGHT); i++) {
|
||||||
|
rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_BLUE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -138,6 +156,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
void keyboard_post_init_keymap(void) {
|
void keyboard_post_init_keymap(void) {
|
||||||
// keyboard_post_init_user() moved to userspace
|
// keyboard_post_init_user() moved to userspace
|
||||||
#ifdef RGB_MATRIX_ENABLE
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR);
|
||||||
rgb_matrix_set_color_all(RGB_NAUTILUS); // Default startup colour
|
rgb_matrix_set_color_all(RGB_NAUTILUS); // Default startup colour
|
||||||
|
activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -20,14 +20,15 @@
|
|||||||
- Can be changed in FN layer with < and > or encoder
|
- Can be changed in FN layer with < and > or encoder
|
||||||
- setting to zero disables timeout
|
- setting to zero disables timeout
|
||||||
- indicators in FN layer using RGB in FN and number rows to show the timeout in minutes
|
- indicators in FN layer using RGB in FN and number rows to show the timeout in minutes
|
||||||
- LED address location map as enum definition
|
- LED address location map as enum definition in rgb_matrix_map.h
|
||||||
- LED group lists for arrows, numpad, F row, num row, left and right side LEDs
|
- LED group lists for arrows, numpad, F row, num row, left and right side LEDs
|
||||||
- default startuo in single mode with default colour
|
- default startup in single mode with default colour
|
||||||
- Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED
|
- Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED
|
||||||
- Layer indicator on right side LED
|
- Layer indicator on right side LED
|
||||||
- Fn key light up red when Fn layer activate
|
- Fn key light up red when Fn layer activate
|
||||||
- Win Key light up red when Win Lock mode enabled
|
- Win Key light up red when Win Lock mode enabled
|
||||||
- Layer 2 activation lights up Numpad area
|
- Layer 2 activation lights up Numpad area
|
||||||
|
- Fn + Z to turn off all RGB lights except rgb indicators; press again to toggle
|
||||||
|
|
||||||
rules.mk OPTIONS - Active features from userspace
|
rules.mk OPTIONS - Active features from userspace
|
||||||
STARTUP_NUMLOCK_ON = yes
|
STARTUP_NUMLOCK_ON = yes
|
||||||
@@ -42,12 +43,19 @@ TD_LSFT_CAPSLOCK_ENABLE = yes
|
|||||||
IDLE_TIMEOUT_ENABLE = yes
|
IDLE_TIMEOUT_ENABLE = yes
|
||||||
- Enables Timer functionality; for RGB idle timeouts that can be changed dynamically
|
- Enables Timer functionality; for RGB idle timeouts that can be changed dynamically
|
||||||
|
|
||||||
|
COLEMAK_LAYER_ENABLE = yes
|
||||||
|
- Enabled optional 5th layer for COLEMAK layout
|
||||||
|
- Use Shift and encoder to enter 5th layer, right led indicator lights up BLUE
|
||||||
|
|
||||||
## All layers diagram
|
## All layers diagram
|
||||||
Default layer
|
Default layer
|
||||||

|

|
||||||
|
|
||||||
Fn Layer
|
Fn Layer
|
||||||

|

|
||||||
|
|
||||||
Layer 2 (Caps Lock Mod)
|
Layer 2 (Caps Lock Mod)
|
||||||

|

|
||||||
|
|
||||||
|
Optional COLEMAK layer
|
||||||
|

|
||||||
@@ -7,3 +7,5 @@ TD_LSFT_CAPSLOCK_ENABLE = yes
|
|||||||
IDLE_TIMEOUT_ENABLE = yes
|
IDLE_TIMEOUT_ENABLE = yes
|
||||||
STARTUP_NUMLOCK_ON = yes
|
STARTUP_NUMLOCK_ON = yes
|
||||||
ENCODER_DEFAULTACTIONS_ENABLE = yes
|
ENCODER_DEFAULTACTIONS_ENABLE = yes
|
||||||
|
|
||||||
|
COLEMAK_LAYER_ENABLE = yes #Enable Colemak layer / set to no to disable
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1
-1
@@ -20,7 +20,7 @@
|
|||||||
#else
|
#else
|
||||||
// `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware
|
// `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware
|
||||||
// And I'm not familiar enough to know which is better or why...
|
// And I'm not familiar enough to know which is better or why...
|
||||||
static const char *const secret[] = {"test1", "test2", "test3", "test4", "test5"};
|
static const char *const secrets[] = {"test1", "test2", "test3", "test4", "test5"};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// userspace_config_t userspace_config;
|
// userspace_config_t userspace_config;
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -7,9 +7,6 @@
|
|||||||
#include "i2cmaster.h"
|
#include "i2cmaster.h"
|
||||||
#include <util/delay.h>
|
#include <util/delay.h>
|
||||||
|
|
||||||
#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n))
|
|
||||||
#define CPU_16MHz 0x00
|
|
||||||
|
|
||||||
#define I2C_ADDR 0b0100000
|
#define I2C_ADDR 0b0100000
|
||||||
#define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE )
|
#define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE )
|
||||||
#define I2C_ADDR_READ ( (I2C_ADDR<<1) | I2C_READ )
|
#define I2C_ADDR_READ ( (I2C_ADDR<<1) | I2C_READ )
|
||||||
|
|||||||
@@ -16,46 +16,45 @@
|
|||||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
|
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
|
||||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
||||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
|
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
|
||||||
KTA, KTB, KTC, KTD \
|
KTA, KTB, KTC, KTD, KTE, KTF \
|
||||||
) \
|
) \
|
||||||
LAYOUT_wrapper( \
|
LAYOUT_wrapper( \
|
||||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
|
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
|
||||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
||||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
|
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
|
||||||
TAB, GUI, MIN, SLS, \
|
TAB, KTA, KTF, SLS, \
|
||||||
KTA, KTB, KTC, KTD, \
|
KTB, KTC, KTD, KTE, \
|
||||||
CTL, DEL, QUE, CTL, \
|
CTL, DEL, QUE, CTL, \
|
||||||
___, ___, ___, ___ \
|
___, ___, ___, ___ \
|
||||||
)
|
)
|
||||||
|
|
||||||
#define LAYOUT_dm_base_wrapper(...) LAYOUT_dm_base(__VA_ARGS__)
|
#define LAYOUT_dm_base_wrapper(...) LAYOUT_dm_base(__VA_ARGS__)
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT_dm_base_wrapper(
|
[_BASE] = LAYOUT_dm_base_wrapper(
|
||||||
________________DVORAK_L1_______________, ________________DVORAK_R1_______________,
|
LUP, LUR, LUM, LUI, LUII, RUII, RUI, RUM, RUR, RUP,
|
||||||
________________DVORAK_L2_______________, ________________DVORAK_R2_______________,
|
SHLP, CTLR, ALLM, LMI, GULII, GURII, RMI, ALRM, CTRR, SHRP,
|
||||||
________________DVORAK_L3_______________, ________________DVORAK_R3_______________,
|
LLP, LLR, LLM, LLI, LLII, RLII, RLI, RLM, RLR, RLP,
|
||||||
LW_BSPC,SFT_ESC, ALT_ENT,RS_SPC
|
CT_ESC, LW_E, SF_BSPC, AL_ENT, RS_SPC, TRAISE
|
||||||
),
|
),
|
||||||
|
|
||||||
[_RAISE] = LAYOUT_dm_base_wrapper(
|
[_RAISE] = LAYOUT_dm_base_wrapper(
|
||||||
________________RAISE_L1________________, ________________RAISE_R1________________,
|
KC_EXLM,KC_AT, KC_UP, KC_LCBR,KC_RCBR, KC_BSLS,KC_7, KC_8, KC_9, KC_ASTR ,
|
||||||
________________RAISE_L2________________, ________________RAISE_R2________________,
|
KC_HASH,CT_LEFT,AL_DOWN,KC_RGHT,KC_DLR, GU_EQL, KC_4, AL_FIVE,CT_SIX, SH_ZERO ,
|
||||||
________________RAISE_L3________________, ________________RAISE_R3________________,
|
KC_LBRC,KC_RBRC,KC_LPRN,KC_RPRN,KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS ,
|
||||||
ADDDD, _______, _______,_______
|
_______,ADDDD ,_______, _______,RS_SPC, _______
|
||||||
),
|
),
|
||||||
[_LOWER] = LAYOUT_dm_base_wrapper(
|
[_LOWER] = LAYOUT_dm_base_wrapper(
|
||||||
________________LOWER_L1________________, ________________LOWER_R1________________,
|
KC_ESC, KC_QUES,KC_UNDS,KC_F1, KC_F2, KC_F3, KC_F4, KC_MINS,KC_SLSH,KC_BSPC ,
|
||||||
________________LOWER_L2________________, ________________LOWER_R2________________,
|
KC_LSFT,KC_PSCR,KC_PGUP,KC_F5, KC_F6, KC_F7, KC_F8, KC_HOME,KC_LALT,KC_ENT ,
|
||||||
________________LOWER_L3________________, ________________LOWER_R3________________,
|
KC_CLCK,KC_SLCK,KC_PGDN,KC_F9, KC_F10, KC_F11, KC_F12, KC_END, KC_INS, KC_SLSH ,
|
||||||
_______,_______, _______,ADDDD
|
_______,_______,_______, _______,ADDDD, _______
|
||||||
),
|
),
|
||||||
[_ADJUST] = LAYOUT_dm_base_wrapper(
|
[_ADJUST] = LAYOUT_dm_base_wrapper(
|
||||||
________________ADJUST_L1_______________, ________________ADJUST_R1_______________,
|
_______,EXPLR, KC_UP, PRVTAB, PRVWIN, NXTWIN, NXTTAB, _______,_______,LCKGUI,
|
||||||
________________ADJUST_L2_______________, ________________ADJUST_R2_______________,
|
TSKMGR, KC_LEFT,KC_DOWN,KC_RGHT,UPTAB, DNTAB, KC_ENT, KC_LGUI,_______,CALDL,
|
||||||
________________ADJUST_L3_______________, ________________ADJUST_R3_______________,
|
_______,CLSGUI, _______,CONPST, RESET, _______,_______,_______,_______,_______,
|
||||||
_______,_______, _______,_______
|
_______,_______,_______, _______,_______,_______
|
||||||
),
|
),};
|
||||||
};
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
@@ -6,9 +6,6 @@
|
|||||||
#include "i2c_master.h"
|
#include "i2c_master.h"
|
||||||
#include <util/delay.h>
|
#include <util/delay.h>
|
||||||
|
|
||||||
#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n))
|
|
||||||
#define CPU_16MHz 0x00
|
|
||||||
|
|
||||||
// I2C aliases and register addresses (see "mcp23018.md" on tmk repository)
|
// I2C aliases and register addresses (see "mcp23018.md" on tmk repository)
|
||||||
#define I2C_ADDR 0b0100000
|
#define I2C_ADDR 0b0100000
|
||||||
#define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE )
|
#define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE )
|
||||||
|
|||||||
@@ -87,10 +87,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define SPI_MISO_PAL_MODE 5
|
#define SPI_MISO_PAL_MODE 5
|
||||||
|
|
||||||
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
|
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
|
||||||
// #define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
|
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8
|
||||||
// #define EXTERNAL_EEPROM_BYTE_COUNT 8196
|
// #define EXTERNAL_EEPROM_BYTE_COUNT 8196
|
||||||
// #define EXTERNAL_EEPROM_PAGE_SIZE 32
|
// #define EXTERNAL_EEPROM_PAGE_SIZE 32
|
||||||
// #define EXTERNAL_EEPROM_ADDRESS_SIZE 2
|
// #define EXTERNAL_EEPROM_ADDRESS_SIZE 2
|
||||||
// #define DEBUG_EEPROM_OUTPUT
|
// #define DEBUG_EEPROM_OUTPUT
|
||||||
|
|
||||||
#define PMW3360_CS_PIN B0
|
#define PMW3360_CS_PIN B0
|
||||||
|
#define PMW3360_SPI_MODE 3
|
||||||
|
#define PMW3360_SPI_DIVISOR 4
|
||||||
@@ -22,5 +22,4 @@ void matrix_scan_sub_kb(void) {
|
|||||||
if (!readPin(A0)) {
|
if (!readPin(A0)) {
|
||||||
reset_keyboard();
|
reset_keyboard();
|
||||||
}
|
}
|
||||||
matrix_scan_user();
|
|
||||||
}
|
}
|
||||||
@@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
|
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
|
||||||
_______, _______, _______, _______,
|
_______, _______, _______, _______,
|
||||||
_______, _______, KC_BTN3,
|
_______, _______, KC_BTN3,
|
||||||
KC_ACCEL, _______, _______,
|
_______, KC_ACCEL, _______,
|
||||||
_______, _______, _______, _______
|
_______, _______, _______, _______
|
||||||
),
|
),
|
||||||
[_GAMEPAD] = LAYOUT_5x6_right(
|
[_GAMEPAD] = LAYOUT_5x6_right(
|
||||||
@@ -259,7 +259,7 @@ layer_state_t layer_state_set_keymap(layer_state_t state) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef OLED_DRIVER_ENABLE
|
#ifdef OLED_ENABLE
|
||||||
// WPM-responsive animation stuff here
|
// WPM-responsive animation stuff here
|
||||||
# define SLEEP_FRAMES 2
|
# define SLEEP_FRAMES 2
|
||||||
# define SLEEP_SPEED 10 // below this wpm value your animation will idle
|
# define SLEEP_SPEED 10 // below this wpm value your animation will idle
|
||||||
|
|||||||
@@ -46,15 +46,15 @@ __attribute__((weak)) kb_pointer_data_t process_mouse(void) {
|
|||||||
kb_pointer_data_t temp_data = {.mouse_x = 0, .mouse_y = 0};
|
kb_pointer_data_t temp_data = {.mouse_x = 0, .mouse_y = 0};
|
||||||
|
|
||||||
report_pmw_t data = pmw_read_burst();
|
report_pmw_t data = pmw_read_burst();
|
||||||
if (data.isOnSurface && data.isMotion) {
|
|
||||||
// Reset timer if stopped moving
|
// Reset timer if stopped moving
|
||||||
if (!data.isMotion) {
|
if (!data.isMotion) {
|
||||||
if (MotionStart != 0) MotionStart = 0;
|
if (MotionStart != 0) MotionStart = 0;
|
||||||
return temp_data;
|
return temp_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.isOnSurface) {
|
||||||
// Set timer if new motion
|
// Set timer if new motion
|
||||||
if ((MotionStart == 0) && data.isMotion) {
|
if (MotionStart == 0) {
|
||||||
if (debug_mouse) dprintf("Starting motion.\n");
|
if (debug_mouse) dprintf("Starting motion.\n");
|
||||||
MotionStart = timer_read();
|
MotionStart = timer_read();
|
||||||
}
|
}
|
||||||
@@ -197,3 +197,7 @@ void matrix_scan_kb(void) {
|
|||||||
matrix_scan_sub_kb();
|
matrix_scan_sub_kb();
|
||||||
matrix_scan_user();
|
matrix_scan_user();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef POINTING_DEVICE_ENABLE
|
||||||
|
void matrix_power_up(void) { pointing_device_task(); }
|
||||||
|
#endif
|
||||||
@@ -43,7 +43,7 @@ typedef struct {
|
|||||||
uint16_t device_cpi;
|
uint16_t device_cpi;
|
||||||
} kb_config_data_t;
|
} kb_config_data_t;
|
||||||
|
|
||||||
typedef struct {
|
__attribute__((aligned(16))) typedef struct {
|
||||||
int8_t mouse_x;
|
int8_t mouse_x;
|
||||||
int8_t mouse_y;
|
int8_t mouse_y;
|
||||||
} kb_pointer_data_t;
|
} kb_pointer_data_t;
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/* Copyright 2021 Pierre-Emmanuel Ott
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
/* This is a very basic TKL keymap. Note that I use Split Backspace AND Split right shift, to use fewer stabilizers and due to muscle-memory from 60% boards.
|
||||||
|
* That's about it really... there's really nothing fancy here besides media key on base layer through Mod Tap.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all(KC_NO, 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_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_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_BSPC, KC_DEL, KC_END, KC_PGDN, 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_ENT, KC_LSPO, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, LT(2,KC_HOME), KC_UP, LCTL_T(KC_MPRV), LGUI_T(KC_MPLY), LALT_T(KC_MNXT), LT(1,KC_SPC), KC_RALT, KC_RGUI, KC_APP, RCTL_T(KC_END), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
[1] = LAYOUT_all(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PCMM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_TRNS, KC_ENT, KC_BSPC, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_VOLU, KC_TRNS, KC_P0, KC_PDOT, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
[2] = LAYOUT_all(KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAI, RGB_VAI, RGB_SPI, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO)
|
||||||
|
};
|
||||||
@@ -4,9 +4,6 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n))
|
|
||||||
#define CPU_16MHz 0x00
|
|
||||||
|
|
||||||
void init_ergodox(void);
|
void init_ergodox(void);
|
||||||
|
|
||||||
inline void ergodox_board_led_on(void) { DDRB |= (1<<PB7); PORTB |= (1<<PB7); }
|
inline void ergodox_board_led_on(void) { DDRB |= (1<<PB7); PORTB |= (1<<PB7); }
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef KEYBOARD_keebio_iris_rev1
|
#if defined(KEYBOARD_keebio_iris_rev1)
|
||||||
#include "rev1.h"
|
#include "rev1.h"
|
||||||
#elif KEYBOARD_keebio_iris_rev1_led
|
#elif defined(KEYBOARD_keebio_iris_rev1_led)
|
||||||
#include "rev1_led.h"
|
#include "rev1_led.h"
|
||||||
#elif KEYBOARD_keebio_iris_rev2
|
#elif defined(KEYBOARD_keebio_iris_rev2)
|
||||||
#include "rev2.h"
|
#include "rev2.h"
|
||||||
#elif KEYBOARD_keebio_iris_rev3
|
#elif defined(KEYBOARD_keebio_iris_rev3)
|
||||||
#include "rev3.h"
|
#include "rev3.h"
|
||||||
#elif KEYBOARD_keebio_iris_rev4
|
#elif defined(KEYBOARD_keebio_iris_rev4)
|
||||||
#include "rev4.h"
|
#include "rev4.h"
|
||||||
|
#elif defined(KEYBOARD_keebio_iris_rev5)
|
||||||
|
#include "rev5.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|||||||
@@ -19,4 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
// #define USE_I2C
|
// #define USE_I2C
|
||||||
#define EE_HANDS
|
#define EE_HANDS
|
||||||
#define TAPPING_TOGGLE 2
|
#define IGNORE_MOD_TAP_INTERRUPT
|
||||||
|
#define TAPPING_TERM 175
|
||||||
|
|
||||||
@@ -9,37 +9,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 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_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,
|
LCTL_T(KC_TAB), LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, RSFT_T(KC_J), RCTL_T(KC_K), LALT_T(KC_L), RGUI_T(KC_SCLN), KC_QUOT,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,LSFT_T(KC_EQL),RCTL_T(KC_MINS),KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, TG(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
KC_LGUI, TT(1), KC_ENT, KC_SPC, TT(2), KC_RALT
|
KC_LGUI, LT(2,KC_ESC),KC_ENT, KC_SPC, LT(3, KC_BSPC), KC_RALT
|
||||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
[1] = LAYOUT(
|
[1] = LAYOUT(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PSCR,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, KC_HOME, _______, _______, KC_PGDN, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
|
_______, KC_A, KC_S, KC_D, KC_F, _______, _______, KC_J, KC_K, KC_L, KC_SCLN, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, _______, _______, _______, _______, KC_PGUP, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
_______, _______, _______, _______, _______, _______
|
KC_LALT, _______, _______, _______, _______, KC_LGUI
|
||||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
[2] = LAYOUT(
|
[2] = LAYOUT(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, RESET,
|
KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
KC_MUTE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, RGB_TOG,
|
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
KC_VOLU, KC_BRIU, KC_MNXT, KC_MPLY, _______, _______, _______, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD,
|
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
KC_VOLD, KC_BRID, KC_MPRV, KC_MSTP, _______, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD,
|
_______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
|
||||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
_______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______
|
||||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
@@ -47,13 +48,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[3] = LAYOUT(
|
[3] = LAYOUT(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, KC_MINUS,KC_UNDS, KC_LBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, KC_EQUAL,KC_PLUS, KC_RBRC, KC_LBRC, KC_RBRC, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
|
||||||
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______
|
||||||
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[4] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_TOG,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
KC_VOLU, KC_BRIU, KC_MNXT, KC_MPLY, _______, _______, _______, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
KC_VOLD, KC_BRID, KC_MPRV, KC_MSTP, _______, _______, _______, _______, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD,
|
||||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
_______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______
|
||||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
@@ -61,5 +76,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, 1, 2, 3);
|
return update_tri_layer_state(state, 2, 3, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
rgblight_disable_noeeprom();
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,14 +1,17 @@
|
|||||||
# Iris layout by fluffactually
|
# Iris layout by fluffactually
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
[KLE link](http://www.keyboard-layout-editor.com/#/gists/a6e67ca7177e7f5e4e44fbc1f09cdfae)
|
[KLE link](http://www.keyboard-layout-editor.com/#/gists/a6e67ca7177e7f5e4e44fbc1f09cdfae)
|
||||||
|
|
||||||
A gentle departure from the default layout. Changes include:
|
Basically:
|
||||||
|
|
||||||
|
* Home row mods: ASDF is Super, Alt, Ctrl, Shift, JKL; is Shift, Ctrl, ALt,
|
||||||
|
Super
|
||||||
|
* Turn off home row mods with a layer toggle (e.g. for gaming)
|
||||||
|
* Grave escape
|
||||||
|
* Tap Lower for escape
|
||||||
|
* Tap Raise for backspace
|
||||||
|
* Movement keys on both Raise and Lower layers
|
||||||
|
* Access Adjust layer by holding Raise and Lower
|
||||||
|
|
||||||
* Vim movement keys
|
|
||||||
* Mod-Tap upper thumb keys
|
|
||||||
* Layer Tap-Toggle layer keys (TAPPING_TOGGLE 2)
|
|
||||||
* Grave Escape
|
|
||||||
* Lower backspace
|
|
||||||
* Reshuffled Raise layer to make it harder to accidentally reset
|
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2019 Danny Nguyen <[email protected]>
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xCB10
|
||||||
|
#define PRODUCT_ID 0x5256
|
||||||
|
#define DEVICE_VER 0x0500
|
||||||
|
#define MANUFACTURER Keebio
|
||||||
|
#define PRODUCT Iris Rev. 5
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
// Rows are doubled-up
|
||||||
|
#define MATRIX_ROWS 10
|
||||||
|
#define MATRIX_COLS 6
|
||||||
|
|
||||||
|
// wiring of each half
|
||||||
|
#define MATRIX_ROW_PINS { B1, F0, F5, F6, F7 }
|
||||||
|
#define MATRIX_COL_PINS { F1, F4, D3, D2, B7, D4 }
|
||||||
|
#define MATRIX_ROW_PINS_RIGHT { B1, B2, D2, F1, F4 }
|
||||||
|
#define MATRIX_COL_PINS_RIGHT { D4, D7, D3, B7, F0, B3 }
|
||||||
|
#define SPLIT_HAND_PIN D5
|
||||||
|
#define QMK_ESC_OUTPUT F1
|
||||||
|
#define QMK_ESC_INPUT B1
|
||||||
|
#define QMK_LED B0
|
||||||
|
#define QMK_SPEAKER C6
|
||||||
|
|
||||||
|
#define ENCODERS_PAD_A { B2 }
|
||||||
|
#define ENCODERS_PAD_B { B3 }
|
||||||
|
#define ENCODERS_PAD_A_RIGHT { F7 }
|
||||||
|
#define ENCODERS_PAD_B_RIGHT { F6 }
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* define if matrix has ghost */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* number of backlight levels */
|
||||||
|
// #define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* serial.c configuration for split keyboard */
|
||||||
|
#define SOFT_SERIAL_PIN D0
|
||||||
|
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B5
|
||||||
|
#define BACKLIGHT_LEVELS 5
|
||||||
|
#define BACKLIGHT_DEFAULT_LEVEL 3
|
||||||
|
|
||||||
|
/* ws2812 RGB LED */
|
||||||
|
#define RGB_DI_PIN D6
|
||||||
|
#define RGBLED_NUM 12 // Number of LEDs
|
||||||
|
#define RGBLED_SPLIT { 6, 6 }
|
||||||
|
#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_DEFAULT_VAL 128
|
||||||
|
#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Danny Nguyen <[email protected]>
|
||||||
|
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 "rev5.h"
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Danny Nguyen <[email protected]>
|
||||||
|
|
||||||
|
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 "iris.h"
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \
|
||||||
|
LB1, LB2, LB3, LB4, LB5, LB6, RB6, RB5, RB4, RB3, RB2, RB1, \
|
||||||
|
LC1, LC2, LC3, LC4, LC5, LC6, RC6, RC5, RC4, RC3, RC2, RC1, \
|
||||||
|
LD1, LD2, LD3, LD4, LD5, LD6, LE6, RE6, RD6, RD5, RD4, RD3, RD2, RD1, \
|
||||||
|
LE3, LE4, LE5, RE5, RE4, RE3 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ LA1, LA2, LA3, LA4, LA5, LA6 }, \
|
||||||
|
{ LB1, LB2, LB3, LB4, LB5, LB6 }, \
|
||||||
|
{ LC1, LC2, LC3, LC4, LC5, LC6 }, \
|
||||||
|
{ LD1, LD2, LD3, LD4, LD5, LD6 }, \
|
||||||
|
{ KC_NO, KC_NO, LE3, LE4, LE5, LE6 }, \
|
||||||
|
{ RA1, RA2, RA3, RA4, RA5, RA6 }, \
|
||||||
|
{ RB1, RB2, RB3, RB4, RB5, RB6 }, \
|
||||||
|
{ RC1, RC2, RC3, RC4, RC5, RC6 }, \
|
||||||
|
{ RD1, RD2, RD3, RD4, RD5, RD6 }, \
|
||||||
|
{ KC_NO, KC_NO, RE3, RE4, RE5, RE6 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = qmk-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
SPLIT_KEYBOARD = yes
|
||||||
|
ENCODER_ENABLE = yes
|
||||||
@@ -61,22 +61,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* .-----------------------------------------. .-----------------------------------------.
|
* .-----------------------------------------. .-----------------------------------------.
|
||||||
* | + | | | | | Rst | | NumLk| / | * | - | | \ |
|
* | + | | | | | Rst | | NumLk| / | * | - | | \ |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
* | | Home | [ | Up | ] | PgUp | | 7 | 8 | 9 | + | | ] |
|
* | | | [ | Up | ] | | | 7 | 8 | 9 | + | | ] |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
* | | End | Left | Down | Right| PgDn | | 4 | 5 | 6 | , | | |
|
* | | | Left | Down | Right| | | 4 | 5 | 6 | , | |Enter |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
* | | Calc | MyPC |PrtScr| Enter|BckSpc| | 1 | 2 | 3 | = | | Enter|
|
* | | Calc | MyPC |PrtScr| Enter|BckSpc| | 1 | 2 | 3 | = | PgUp | Home |
|
||||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||||
* | | Mute | | | | | | 0 | . | Enter| Home | End |
|
* | | Mute | | | | | | 0 | . | Enter| PgDn | End |
|
||||||
* '-----------------------------------------' '-----------------------------------------'
|
* '-----------------------------------------' '-----------------------------------------'
|
||||||
*/
|
*/
|
||||||
|
|
||||||
[_LEFTHAND] = LAYOUT(
|
[_LEFTHAND] = LAYOUT(
|
||||||
KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_BSLS,
|
KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, KC_BSLS,
|
||||||
KC_TRNS, KC_TRNS, KC_LBRC, KC_UP, KC_RBRC, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, KC_RBRC,
|
KC_TRNS, KC_TRNS, KC_LBRC, KC_UP, KC_RBRC, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, KC_RBRC,
|
||||||
KC_LCTL, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PCMM, KC_TRNS, KC_TRNS,
|
KC_LCTL, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PCMM, KC_TRNS, KC_ENT,
|
||||||
KC_LSFT, KC_CALC, KC_MYCM, KC_PSCR, KC_ENT, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_TRNS, KC_ENT,
|
KC_LSFT, KC_CALC, KC_MYCM, KC_PSCR, KC_ENT, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_PGUP, KC_HOME,
|
||||||
KC_LCTL, KC_MUTE, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_HOME, KC_END
|
KC_LCTL, KC_MUTE, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PGDN, KC_END
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Func/Numpad layer
|
/* Func/Numpad layer
|
||||||
|
|||||||
@@ -5,9 +5,6 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n))
|
|
||||||
#define CPU_16MHz 0x00
|
|
||||||
|
|
||||||
void init_ergodox(void);
|
void init_ergodox(void);
|
||||||
|
|
||||||
inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<PB5); PORTB &= ~(1<<PB5); }
|
inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<PB5); PORTB &= ~(1<<PB5); }
|
||||||
|
|||||||
@@ -1,26 +1,11 @@
|
|||||||
#ifndef LFK65_HS_H
|
#ifndef LFK65_HS_H
|
||||||
#define LFK65_HS_H
|
#define LFK65_HS_H
|
||||||
|
|
||||||
/* if the kb.h file exists (because we're running from qmkbuilder) include it */
|
|
||||||
#ifdef __has_include
|
|
||||||
#if __has_include("kb.h")
|
|
||||||
#include "kb.h"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "matrix.h"
|
#include "matrix.h"
|
||||||
#include <avr/sfr_defs.h>
|
#include <avr/sfr_defs.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#ifndef cbi
|
|
||||||
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef sbi
|
|
||||||
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void reset_keyboard_kb(void);
|
void reset_keyboard_kb(void);
|
||||||
|
|
||||||
// readability
|
// readability
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ void matrix_init_kb(void)
|
|||||||
set_rgb(32, 0xFF, 0x00, 0x00); // Layer indicator, start red
|
set_rgb(32, 0xFF, 0x00, 0x00); // Layer indicator, start red
|
||||||
#ifndef AUDIO_ENABLE
|
#ifndef AUDIO_ENABLE
|
||||||
// If we're not using the audio pin, drive it low
|
// If we're not using the audio pin, drive it low
|
||||||
sbi(DDRC, 6);
|
setPinOutput(C6);
|
||||||
cbi(PORTC, 6);
|
writePinLow(C6);
|
||||||
#endif
|
#endif
|
||||||
#ifdef ISSI_ENABLE
|
#ifdef ISSI_ENABLE
|
||||||
issi_init();
|
issi_init();
|
||||||
|
|||||||
@@ -1,24 +1,10 @@
|
|||||||
#ifndef LFK87_H
|
#ifndef LFK87_H
|
||||||
#define LFK87_H
|
#define LFK87_H
|
||||||
|
|
||||||
/* if the kb.h file exists (because we're running from qmkbuilder) include it */
|
|
||||||
#if __has_include("kb.h")
|
|
||||||
#include "kb.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "matrix.h"
|
#include "matrix.h"
|
||||||
#include <avr/sfr_defs.h>
|
#include <avr/sfr_defs.h>
|
||||||
|
|
||||||
#ifndef cbi
|
|
||||||
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef sbi
|
|
||||||
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct RGB_Color {
|
typedef struct RGB_Color {
|
||||||
uint16_t red;
|
uint16_t red;
|
||||||
uint16_t green;
|
uint16_t green;
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ void matrix_init_kb(void)
|
|||||||
set_rgb(32, 0xFF, 0x00, 0x00); // Layer indicator, start red
|
set_rgb(32, 0xFF, 0x00, 0x00); // Layer indicator, start red
|
||||||
#ifndef AUDIO_ENABLE
|
#ifndef AUDIO_ENABLE
|
||||||
// If we're not using the audio pin, drive it low
|
// If we're not using the audio pin, drive it low
|
||||||
sbi(DDRC, 6);
|
setPinOutput(C6);
|
||||||
cbi(PORTC, 6);
|
writePinLow(C6);
|
||||||
#endif
|
#endif
|
||||||
_delay_ms(500);
|
_delay_ms(500);
|
||||||
#ifdef ISSI_ENABLE
|
#ifdef ISSI_ENABLE
|
||||||
|
|||||||
@@ -1,24 +1,10 @@
|
|||||||
#ifndef LFK87_H
|
#ifndef LFK87_H
|
||||||
#define LFK87_H
|
#define LFK87_H
|
||||||
|
|
||||||
/* if the kb.h file exists (because we're running from qmkbuilder) include it */
|
|
||||||
#if __has_include("kb.h")
|
|
||||||
#include "kb.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "matrix.h"
|
#include "matrix.h"
|
||||||
#include <avr/sfr_defs.h>
|
#include <avr/sfr_defs.h>
|
||||||
|
|
||||||
#ifndef cbi
|
|
||||||
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef sbi
|
|
||||||
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct RGB_Color {
|
typedef struct RGB_Color {
|
||||||
uint16_t red;
|
uint16_t red;
|
||||||
uint16_t green;
|
uint16_t green;
|
||||||
|
|||||||
@@ -34,12 +34,12 @@ void matrix_init_kb(void)
|
|||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
// audio_init() sets PB5 to output and drives it low, which breaks our matrix
|
// audio_init() sets PB5 to output and drives it low, which breaks our matrix
|
||||||
// so reset PB5 to input
|
// so reset PB5 to input
|
||||||
cbi(DDRB, 5);
|
setPinInput(B5);
|
||||||
sbi(PORTB, 5);
|
writePinHigh(B5);
|
||||||
#else
|
#else
|
||||||
// If we're not using the audio pin, drive it low
|
// If we're not using the audio pin, drive it low
|
||||||
sbi(DDRC, 6);
|
setPinOutput(C6);
|
||||||
cbi(PORTC, 6);
|
writePinLow(C6);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ISSI_ENABLE
|
#ifdef ISSI_ENABLE
|
||||||
|
|||||||
@@ -14,26 +14,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
/* if the kb.h file exists (because we're running from qmkbuilder) include it */
|
|
||||||
#ifdef __has_include
|
|
||||||
#if __has_include("kb.h")
|
|
||||||
#include "kb.h"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "matrix.h"
|
#include "matrix.h"
|
||||||
#include <avr/sfr_defs.h>
|
#include <avr/sfr_defs.h>
|
||||||
|
|
||||||
#ifndef cbi
|
|
||||||
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef sbi
|
|
||||||
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct RGB_Color {
|
typedef struct RGB_Color {
|
||||||
uint16_t red;
|
uint16_t red;
|
||||||
uint16_t green;
|
uint16_t green;
|
||||||
|
|||||||
@@ -11,29 +11,29 @@
|
|||||||
{"label":"=", "x":1, "y":0},
|
{"label":"=", "x":1, "y":0},
|
||||||
{"label":"(", "x":2, "y":0},
|
{"label":"(", "x":2, "y":0},
|
||||||
{"label":")", "x":3, "y":0},
|
{"label":")", "x":3, "y":0},
|
||||||
|
|
||||||
{"label":"-", "x":0, "y":1},
|
{"label":"-", "x":0, "y":1},
|
||||||
{"label":"*", "x":1, "y":1},
|
{"label":"*", "x":1, "y":1},
|
||||||
{"label":"/", "x":2, "y":1},
|
{"label":"/", "x":2, "y":1},
|
||||||
{"label":"Num Lock", "x":3, "y":1},
|
{"label":"Num Lock", "x":3, "y":1},
|
||||||
|
|
||||||
{"label":"+", "x":0, "y":2, "h":2},
|
|
||||||
{"label":"9", "x":1, "y":2},
|
{"label":"9", "x":1, "y":2},
|
||||||
{"label":"8", "x":2, "y":2},
|
{"label":"8", "x":2, "y":2},
|
||||||
{"label":"7", "x":3, "y":2},
|
{"label":"7", "x":3, "y":2},
|
||||||
|
|
||||||
|
{"label":"+", "x":0, "y":2, "h":2},
|
||||||
{"label":"6", "x":1, "y":3},
|
{"label":"6", "x":1, "y":3},
|
||||||
{"label":"5", "x":2, "y":3},
|
{"label":"5", "x":2, "y":3},
|
||||||
{"label":"4", "x":3, "y":3},
|
{"label":"4", "x":3, "y":3},
|
||||||
|
|
||||||
{"label":"Enter", "x":0, "y":4, "h":2},
|
|
||||||
{"label":"3", "x":1, "y":4},
|
{"label":"3", "x":1, "y":4},
|
||||||
{"label":"2", "x":2, "y":4},
|
{"label":"2", "x":2, "y":4},
|
||||||
{"label":"1", "x":3, "y":4},
|
{"label":"1", "x":3, "y":4},
|
||||||
|
|
||||||
|
{"label":"Enter", "x":0, "y":4, "h":2},
|
||||||
{"label":".", "x":1, "y":5},
|
{"label":".", "x":1, "y":5},
|
||||||
{"label":"0", "x":2, "y":5, "w":2}
|
{"label":"0", "x":2, "y":5, "w":2}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,12 +16,12 @@
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[0] = LAYOUT_numpad_6x4_southpaw( /* Base */
|
[0] = LAYOUT_numpad_6x4_southpaw( /* Base */
|
||||||
KC_BSPC, KC_EQL, KC_LPRN, KC_RPRN,
|
KC_BSPC, KC_EQL, KC_LPRN, KC_RPRN,
|
||||||
KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK,
|
KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK,
|
||||||
KC_P9, KC_P8, KC_P7,
|
KC_P9, KC_P8, KC_P7,
|
||||||
KC_PPLS, KC_P6, KC_P5, KC_P4,
|
KC_PPLS, KC_P6, KC_P5, KC_P4,
|
||||||
KC_P3, KC_P2, KC_P1,
|
KC_P3, KC_P2, KC_P1,
|
||||||
KC_PENT, KC_PDOT, KC_P0
|
KC_PENT, KC_PDOT, KC_P0
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
@@ -26,19 +26,19 @@
|
|||||||
* represents the switch matrix.
|
* represents the switch matrix.
|
||||||
*/
|
*/
|
||||||
#define LAYOUT_numpad_6x4_southpaw( \
|
#define LAYOUT_numpad_6x4_southpaw( \
|
||||||
k00, k01, k02, k03, \
|
k00, k01, k02, k03, \
|
||||||
k10, k11, k12, k13, \
|
k10, k11, k12, k13, \
|
||||||
k21, k22, k23, \
|
k21, k22, k23, \
|
||||||
k20, k31, k32, k33, \
|
k20, k31, k32, k33, \
|
||||||
k41, k42, k43, \
|
k41, k42, k43, \
|
||||||
k40, k51, k53 \
|
k40, k51, k53 \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ k00, k01, k02, k03 }, \
|
{ k00, k01, k02, k03 }, \
|
||||||
{ k10, k11, k12, k13 }, \
|
{ k10, k11, k12, k13 }, \
|
||||||
{ k20, k21, k22, k23 }, \
|
{ k20, k21, k22, k23 }, \
|
||||||
{ KC_NO, k31, k32, k33 }, \
|
{ KC_NO, k31, k32, k33 }, \
|
||||||
{ k40, k41, k42, k43 }, \
|
{ k40, k41, k42, k43 }, \
|
||||||
{ KC_NO, k51, KC_NO, k53 } \
|
{ KC_NO, k51, KC_NO, k53 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,12 +1,145 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Matrix Lab Falcon",
|
"keyboard_name": "Matrix Lab Falcon",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "Astro",
|
"maintainer": "yulei (Astro)",
|
||||||
"width": 15,
|
|
||||||
"height": 5,
|
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_60_hhkb": {
|
"LAYOUT_60_hhkb": {
|
||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Delete", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}]
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"!", "x":1, "y":0},
|
||||||
|
{"label":"@", "x":2, "y":0},
|
||||||
|
{"label":"#", "x":3, "y":0},
|
||||||
|
{"label":"$", "x":4, "y":0},
|
||||||
|
{"label":"%", "x":5, "y":0},
|
||||||
|
{"label":"^", "x":6, "y":0},
|
||||||
|
{"label":"&", "x":7, "y":0},
|
||||||
|
{"label":"*", "x":8, "y":0},
|
||||||
|
{"label":"(", "x":9, "y":0},
|
||||||
|
{"label":")", "x":10, "y":0},
|
||||||
|
{"label":"_", "x":11, "y":0},
|
||||||
|
{"label":"+", "x":12, "y":0},
|
||||||
|
{"label":"|", "x":13, "y":0},
|
||||||
|
{"label":"~", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":1},
|
||||||
|
{"label":"W", "x":2.5, "y":1},
|
||||||
|
{"label":"E", "x":3.5, "y":1},
|
||||||
|
{"label":"R", "x":4.5, "y":1},
|
||||||
|
{"label":"T", "x":5.5, "y":1},
|
||||||
|
{"label":"Y", "x":6.5, "y":1},
|
||||||
|
{"label":"U", "x":7.5, "y":1},
|
||||||
|
{"label":"I", "x":8.5, "y":1},
|
||||||
|
{"label":"O", "x":9.5, "y":1},
|
||||||
|
{"label":"P", "x":10.5, "y":1},
|
||||||
|
{"label":"{", "x":11.5, "y":1},
|
||||||
|
{"label":"}", "x":12.5, "y":1},
|
||||||
|
{"label":"Delete", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"Control", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":2},
|
||||||
|
{"label":"S", "x":2.75, "y":2},
|
||||||
|
{"label":"D", "x":3.75, "y":2},
|
||||||
|
{"label":"F", "x":4.75, "y":2},
|
||||||
|
{"label":"G", "x":5.75, "y":2},
|
||||||
|
{"label":"H", "x":6.75, "y":2},
|
||||||
|
{"label":"J", "x":7.75, "y":2},
|
||||||
|
{"label":"K", "x":8.75, "y":2},
|
||||||
|
{"label":"L", "x":9.75, "y":2},
|
||||||
|
{"label":":", "x":10.75, "y":2},
|
||||||
|
{"label":"\"", "x":11.75, "y":2},
|
||||||
|
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"Z", "x":2.25, "y":3},
|
||||||
|
{"label":"X", "x":3.25, "y":3},
|
||||||
|
{"label":"C", "x":4.25, "y":3},
|
||||||
|
{"label":"V", "x":5.25, "y":3},
|
||||||
|
{"label":"B", "x":6.25, "y":3},
|
||||||
|
{"label":"N", "x":7.25, "y":3},
|
||||||
|
{"label":"M", "x":8.25, "y":3},
|
||||||
|
{"label":"<", "x":9.25, "y":3},
|
||||||
|
{"label":">", "x":10.25, "y":3},
|
||||||
|
{"label":"?", "x":11.25, "y":3},
|
||||||
|
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"Fn", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"OS", "x":1.5, "y":4},
|
||||||
|
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"label":"Space", "x":4, "y":4, "w":7},
|
||||||
|
{"label":"Alt", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"OS", "x":12.5, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"!", "x":1, "y":0},
|
||||||
|
{"label":"@", "x":2, "y":0},
|
||||||
|
{"label":"#", "x":3, "y":0},
|
||||||
|
{"label":"$", "x":4, "y":0},
|
||||||
|
{"label":"%", "x":5, "y":0},
|
||||||
|
{"label":"^", "x":6, "y":0},
|
||||||
|
{"label":"&", "x":7, "y":0},
|
||||||
|
{"label":"*", "x":8, "y":0},
|
||||||
|
{"label":"(", "x":9, "y":0},
|
||||||
|
{"label":")", "x":10, "y":0},
|
||||||
|
{"label":"_", "x":11, "y":0},
|
||||||
|
{"label":"+", "x":12, "y":0},
|
||||||
|
{"label":"|", "x":13, "y":0},
|
||||||
|
{"label":"~", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":1},
|
||||||
|
{"label":"W", "x":2.5, "y":1},
|
||||||
|
{"label":"E", "x":3.5, "y":1},
|
||||||
|
{"label":"R", "x":4.5, "y":1},
|
||||||
|
{"label":"T", "x":5.5, "y":1},
|
||||||
|
{"label":"Y", "x":6.5, "y":1},
|
||||||
|
{"label":"U", "x":7.5, "y":1},
|
||||||
|
{"label":"I", "x":8.5, "y":1},
|
||||||
|
{"label":"O", "x":9.5, "y":1},
|
||||||
|
{"label":"P", "x":10.5, "y":1},
|
||||||
|
{"label":"{", "x":11.5, "y":1},
|
||||||
|
{"label":"}", "x":12.5, "y":1},
|
||||||
|
{"label":"Delete", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"Control", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":2},
|
||||||
|
{"label":"S", "x":2.75, "y":2},
|
||||||
|
{"label":"D", "x":3.75, "y":2},
|
||||||
|
{"label":"F", "x":4.75, "y":2},
|
||||||
|
{"label":"G", "x":5.75, "y":2},
|
||||||
|
{"label":"H", "x":6.75, "y":2},
|
||||||
|
{"label":"J", "x":7.75, "y":2},
|
||||||
|
{"label":"K", "x":8.75, "y":2},
|
||||||
|
{"label":"L", "x":9.75, "y":2},
|
||||||
|
{"label":":", "x":10.75, "y":2},
|
||||||
|
{"label":"\"", "x":11.75, "y":2},
|
||||||
|
{"label":"#~", "x":12.75, "y":2},
|
||||||
|
{"label":"Enter", "x":13.75, "y":2, "w":1.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"\\|", "x":1.25, "y":3},
|
||||||
|
{"label":"Z", "x":2.25, "y":3},
|
||||||
|
{"label":"X", "x":3.25, "y":3},
|
||||||
|
{"label":"C", "x":4.25, "y":3},
|
||||||
|
{"label":"V", "x":5.25, "y":3},
|
||||||
|
{"label":"B", "x":6.25, "y":3},
|
||||||
|
{"label":"N", "x":7.25, "y":3},
|
||||||
|
{"label":"M", "x":8.25, "y":3},
|
||||||
|
{"label":"<", "x":9.25, "y":3},
|
||||||
|
{"label":">", "x":10.25, "y":3},
|
||||||
|
{"label":"?", "x":11.25, "y":3},
|
||||||
|
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"Fn", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"OS", "x":1.5, "y":4},
|
||||||
|
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"label":"Space", "x":4, "y":4, "w":7},
|
||||||
|
{"label":"Alt", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"OS", "x":12.5, "y":4}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/* Copyright 2021 Jonavin Eng
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
// Standard encoder position. Set to 1 for top right optional position
|
||||||
|
#define ENCODER_DEFAULTACTIONS_INDEX 0
|
||||||
|
|
||||||
|
// Increase layers to 6 for VIA
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
|
||||||
@@ -0,0 +1,343 @@
|
|||||||
|
/* Copyright 2021 Kyle McCreery
|
||||||
|
* Copyright 2021 Jonavin Eng
|
||||||
|
*
|
||||||
|
* 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 "jonavin.h"
|
||||||
|
#include "layout_landscape.h"
|
||||||
|
|
||||||
|
#define LANDSCAPE_MODE
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_FN2 = 2,
|
||||||
|
_FN3,
|
||||||
|
_FN4,
|
||||||
|
_RGB
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_landscape(
|
||||||
|
TT(_FN1), TT(_FN2), KC_MUTE,
|
||||||
|
|
||||||
|
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_BSPC,
|
||||||
|
KC_TAB, KC_P7, KC_P8, KC_P9, KC_PDOT, KC_RGUI,
|
||||||
|
KC_RSFT, KC_P4, KC_P5, KC_P6, KC_COMMA, KC_RCTL,
|
||||||
|
KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT, KC_RALT,
|
||||||
|
|
||||||
|
TT(_FN3), TT(_FN4), TT(_RGB)
|
||||||
|
),
|
||||||
|
[_FN1] = LAYOUT_landscape(
|
||||||
|
_______, _______, ENCFUNC,
|
||||||
|
|
||||||
|
_______, KC_F10, KC_F11, KC_F12, KC_PSCR, _______,
|
||||||
|
_______, KC_F7, KC_F8, KC_F9, KC_SLCK, _______,
|
||||||
|
_______, KC_F4, KC_F5, KC_F6, KC_PAUS, _______,
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, _______, _______,
|
||||||
|
|
||||||
|
_______, _______, _______
|
||||||
|
),
|
||||||
|
[_FN2] = LAYOUT_landscape(
|
||||||
|
_______, _______, RESET,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
_______, _______, _______
|
||||||
|
),
|
||||||
|
[_FN3] = LAYOUT_landscape(
|
||||||
|
_______, _______, _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
_______, _______, _______
|
||||||
|
),
|
||||||
|
[_FN4] = LAYOUT_landscape(
|
||||||
|
_______, _______, _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
_______, _______, _______
|
||||||
|
),
|
||||||
|
[_RGB] = LAYOUT_landscape(
|
||||||
|
_______, _______, _______,
|
||||||
|
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_HUD, RGB_SPI, RGB_HUI, RGB_SAI, _______,
|
||||||
|
_______, RGB_RMOD, RGB_TOG, RGB_MOD, RGB_SAD, _______,
|
||||||
|
_______, RGB_VAD, RGB_SPD, RGB_VAI, KC_NO, _______,
|
||||||
|
|
||||||
|
_______, _______, _______
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char keydesc[6]; // this will be displayed on OLED
|
||||||
|
uint16_t keycode; // this is the keycode that will be sent when activted
|
||||||
|
} keycodedescType;
|
||||||
|
|
||||||
|
static const keycodedescType PROGMEM keyselection[] = {
|
||||||
|
// list of key codes that will be scrolled through by encoder and description
|
||||||
|
{"TASK", KC_TASK},
|
||||||
|
{"INS", KC_INS},
|
||||||
|
{"DEL", KC_DEL},
|
||||||
|
{"PrtSc", KC_PSCR},
|
||||||
|
{"ScrLk", KC_SCLN},
|
||||||
|
{"Break", KC_PAUS},
|
||||||
|
{"C-A-D", KC_CAD}, // Ctrl-Alt-Del
|
||||||
|
{"AltF4", KC_AF4},
|
||||||
|
{"PLAY", KC_MEDIA_PLAY_PAUSE},
|
||||||
|
{"RESET", RESET}, // firmware flash mode
|
||||||
|
};
|
||||||
|
|
||||||
|
#define MAX_KEYSELECTION sizeof(keyselection)/sizeof(keyselection[0])
|
||||||
|
|
||||||
|
static uint8_t selectedkey_idx = 0;
|
||||||
|
static keycodedescType selectedkey_rec;
|
||||||
|
|
||||||
|
static void set_selectedkey(uint8_t idx) {
|
||||||
|
// make a copy from PROGMEM
|
||||||
|
memcpy_P (&selectedkey_rec, &keyselection[idx], sizeof selectedkey_rec);
|
||||||
|
|
||||||
|
//selectedkey_rec = keyselection[idx];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void keyboard_post_init_keymap(void) {
|
||||||
|
// Call the keyboard post init code.
|
||||||
|
set_selectedkey(selectedkey_idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case ENCFUNC:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
selectedkey_rec.keycode == RESET ? reset_keyboard() : tap_code16(selectedkey_rec.keycode); // handle RESET code
|
||||||
|
} else {
|
||||||
|
// when keycode is released
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef ENCODER_ENABLE // Encoder Functionality
|
||||||
|
uint8_t selected_layer = 0;
|
||||||
|
|
||||||
|
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
#ifdef OLED_ENABLE
|
||||||
|
oled_clear();
|
||||||
|
oled_render();
|
||||||
|
#endif
|
||||||
|
switch (index) {
|
||||||
|
case 0: // This is the only encoder right now, keeping for consistency
|
||||||
|
switch(get_highest_layer(layer_state)){ // special handling per layer
|
||||||
|
case _FN1: // on Fn layer select what the encoder does when pressed
|
||||||
|
if (!keyboard_report->mods) {
|
||||||
|
if ( clockwise ) {
|
||||||
|
if ( selectedkey_idx < MAX_KEYSELECTION-1) {
|
||||||
|
selectedkey_idx ++;
|
||||||
|
} else {
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
} else if ( !clockwise ) {
|
||||||
|
if ( selectedkey_idx > 0){
|
||||||
|
selectedkey_idx --;
|
||||||
|
} else {
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set_selectedkey(selectedkey_idx);
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
// continue to default
|
||||||
|
}
|
||||||
|
default: // all other layers
|
||||||
|
if ( clockwise ) {
|
||||||
|
if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { // If you are holding Right Shift, encoder changes layers
|
||||||
|
if(selected_layer < (DYNAMIC_KEYMAP_LAYER_COUNT-1)) {
|
||||||
|
selected_layer ++;
|
||||||
|
layer_move(selected_layer);
|
||||||
|
}
|
||||||
|
} else if (keyboard_report->mods & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, navigate next word
|
||||||
|
tap_code16(LCTL(KC_RGHT));
|
||||||
|
} else if (keyboard_report->mods & MOD_BIT(KC_RALT)) { // if holding Right Alt, change media next track
|
||||||
|
tap_code(KC_MEDIA_NEXT_TRACK);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLU); // Otherwise it just changes volume
|
||||||
|
}
|
||||||
|
} else if ( !clockwise ) {
|
||||||
|
if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) {
|
||||||
|
if (selected_layer > 0) {
|
||||||
|
selected_layer --;
|
||||||
|
layer_move(selected_layer);
|
||||||
|
}
|
||||||
|
} else if (keyboard_report->mods & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, navigate previous word
|
||||||
|
tap_code16(LCTL(KC_LEFT));
|
||||||
|
} else if (keyboard_report->mods & MOD_BIT(KC_RALT)) { // if holding Right Alt, change media previous track
|
||||||
|
tap_code(KC_MEDIA_PREV_TRACK);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef OLED_ENABLE
|
||||||
|
static void render_logo(void) { // Render MechWild "MW" Logo
|
||||||
|
static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00};
|
||||||
|
static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00};
|
||||||
|
static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00};
|
||||||
|
static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00};
|
||||||
|
oled_set_cursor(0,0);
|
||||||
|
oled_write_P(logo_1, false);
|
||||||
|
oled_set_cursor(0,1);
|
||||||
|
oled_write_P(logo_2, false);
|
||||||
|
oled_set_cursor(0,2);
|
||||||
|
oled_write_P(logo_3, false);
|
||||||
|
oled_set_cursor(0,3);
|
||||||
|
oled_write_P(logo_4, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef LANDSCAPE_MODE
|
||||||
|
void oled_task_user(void) {
|
||||||
|
|
||||||
|
render_logo();
|
||||||
|
oled_set_cursor(8,2);
|
||||||
|
switch(selected_layer){
|
||||||
|
case _BASE:
|
||||||
|
oled_write_P(PSTR("BASE"), false);
|
||||||
|
break;
|
||||||
|
case _FN1:
|
||||||
|
oled_write_P(PSTR("FN "), false);
|
||||||
|
oled_write(selectedkey_rec.keydesc, false);
|
||||||
|
break;
|
||||||
|
case _FN2:
|
||||||
|
oled_write_P(PSTR("FN2 "), false);
|
||||||
|
break;
|
||||||
|
case _FN3:
|
||||||
|
oled_write_P(PSTR("FN3 "), false);
|
||||||
|
break;
|
||||||
|
case _FN4:
|
||||||
|
oled_write_P(PSTR("FN4 "), false);
|
||||||
|
break;
|
||||||
|
case _RGB:
|
||||||
|
oled_write_P(PSTR("RGB "), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_P(PSTR(" ?? "), false); // Should never display, here as a catchall
|
||||||
|
}
|
||||||
|
oled_write_P(keymap_config.no_gui ? PSTR(" WL") : PSTR(" "), false);
|
||||||
|
oled_set_cursor(8,3);
|
||||||
|
if (get_highest_layer(layer_state) == selected_layer) {
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
} else {
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _BASE:
|
||||||
|
oled_write_P(PSTR("Temp BASE"), false);
|
||||||
|
break;
|
||||||
|
case _FN1:
|
||||||
|
oled_write_P(PSTR("Temp FN "), false);
|
||||||
|
oled_write(selectedkey_rec.keydesc, false);
|
||||||
|
break;
|
||||||
|
case _FN2:
|
||||||
|
oled_write_P(PSTR("Temp FN2 "), false);
|
||||||
|
break;
|
||||||
|
case _FN3:
|
||||||
|
oled_write_P(PSTR("Temp FN3 "), false);
|
||||||
|
break;
|
||||||
|
case _FN4:
|
||||||
|
oled_write_P(PSTR("Temp FN4 "), false);
|
||||||
|
break;
|
||||||
|
case _RGB:
|
||||||
|
oled_write_P(PSTR("Temp RGB "), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_P(PSTR("Temp ????"), false); // Should never display, here as a catchall
|
||||||
|
}
|
||||||
|
}
|
||||||
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
oled_set_cursor(8,0);
|
||||||
|
oled_write_P(PSTR(" JONAVIN "), false);
|
||||||
|
oled_set_cursor(8,1);
|
||||||
|
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
|
||||||
|
oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
|
||||||
|
oled_write_P(led_state.scroll_lock ? PSTR("SCR") : PSTR(" "), false);
|
||||||
|
}
|
||||||
|
#endif // LANDSCAPE_MODE
|
||||||
|
|
||||||
|
// regular mode
|
||||||
|
#ifndef LANDSCAPE_MODE
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
return OLED_ROTATION_270; // flips the display 270 degrees
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
render_logo();
|
||||||
|
oled_set_cursor(0,6);
|
||||||
|
|
||||||
|
oled_write_ln_P(PSTR("Layer"), false);
|
||||||
|
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _BASE:
|
||||||
|
oled_write_ln_P(PSTR("Base"), false);
|
||||||
|
break;
|
||||||
|
case _FN1:
|
||||||
|
oled_write_ln_P(PSTR("FN 1"), false);
|
||||||
|
break;
|
||||||
|
case _FN2:
|
||||||
|
oled_write_ln_P(PSTR("FN 2"), false);
|
||||||
|
break;
|
||||||
|
case _FN3:
|
||||||
|
oled_write_ln_P(PSTR("FN 3"), false);
|
||||||
|
break;
|
||||||
|
case _FN4:
|
||||||
|
oled_write_ln_P(PSTR("FN 4"), false);
|
||||||
|
break;
|
||||||
|
case _RGB:
|
||||||
|
oled_write_ln_P(PSTR("RGB "), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Undef"), false);
|
||||||
|
}
|
||||||
|
oled_write_ln_P(PSTR(""), false);
|
||||||
|
// Host Keyboard LED Status
|
||||||
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
|
||||||
|
oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
||||||
|
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
||||||
|
}
|
||||||
|
#endif // !LANDSCAPE_MODE
|
||||||
|
|
||||||
|
void suspend_power_down_user(void) { // shutdown oled when powered down to prevent OLED from showing Mercutio all the time
|
||||||
|
oled_off();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* Copyright 2021 Jonavin Eng
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
|
||||||
|
/* First section contains the physical layout of the board and position of keys.
|
||||||
|
*
|
||||||
|
* Second is a two-dimensional array which represents the switch matrix.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LAYOUT_landscape( \
|
||||||
|
k50, k40, k30, \
|
||||||
|
k51, k41, k31, k20, k10, k00, \
|
||||||
|
k52, k42, k32, k21, k11, k01, \
|
||||||
|
k53, k43, k33, k22, k12, k02, \
|
||||||
|
k54, k44, k34, k23, k13, k03, \
|
||||||
|
\
|
||||||
|
BACK00, BACK01, BACK02 \
|
||||||
|
\
|
||||||
|
) { \
|
||||||
|
{ BACK00, k00, k01, k02, k03 }, \
|
||||||
|
{ BACK01, k10, k11, k12, k13 }, \
|
||||||
|
{ BACK02, k20, k21, k22, k23 }, \
|
||||||
|
{ k30, k31, k32, k33, k34 }, \
|
||||||
|
{ k40, k41, k42, k43, k44 }, \
|
||||||
|
{ k50, k51, k52, k53, k54 } \
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
Jonavin's Custom MurphPad Landscape Layout
|
||||||
|
|
||||||
|
This allows you to use Murphpad in a horizontal/landscape orientation with extra layers
|
||||||
|
|
||||||
|
- OLED has been rotated for landscape mode
|
||||||
|
- Keymap positions have been updated so it's easier to visualize the keymap in landscape
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_landscape(
|
||||||
|
TT(_FN1), TT(_FN2), KC_MUTE,
|
||||||
|
|
||||||
|
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_BSPC,
|
||||||
|
KC_TAB, KC_P7, KC_P8, KC_P9, KC_PDOT, KC_RGUI,
|
||||||
|
KC_RSFT, KC_P4, KC_P5, KC_P6, KC_COMMA, KC_RCTL,
|
||||||
|
KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT, KC_RALT,
|
||||||
|
|
||||||
|
_______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
NOTE: VIA is enabled, but it will show it in the normal orientation until I build a landscape layout version
|
||||||
|
|
||||||
|
Special Features
|
||||||
|
- FN1 layer has encoder selectable key codes and displayed on OLED
|
||||||
|
|
||||||
|
Change these in keymap.c to assign your desired key selection
|
||||||
|
|
||||||
|
static const keycodedescType PROGMEM keyselection[] = {
|
||||||
|
// list of key codes that will be scrollled through by encoder and description
|
||||||
|
{"TASK", KC_TASK},
|
||||||
|
{"INS", KC_INS},
|
||||||
|
{"DEL", KC_DEL},
|
||||||
|
{"PrtSc", KC_PSCR},
|
||||||
|
{"ScrLk", KC_SCLN},
|
||||||
|
{"Break", KC_PAUS},
|
||||||
|
{"C-A-D", KC_CAD}, // Ctrl-Alt-Del
|
||||||
|
{"AltF4", KC_AF4},
|
||||||
|
{"PLAY", KC_MEDIA_PLAY_PAUSE},
|
||||||
|
{"RESET", RESET}, // firmware flash mode
|
||||||
|
};
|
||||||
|
|
||||||
|
- Additional encoder functionality
|
||||||
|
- While holding R Shift, changes layers
|
||||||
|
- While holding R Ctrl, navigates next or previous word
|
||||||
|
- While holding R Alt, media next track or previous track
|
||||||
|
- Otherwise change volume up/dn
|
||||||
|
|
||||||
|
|
||||||
|
rules.mk OPTIONS - Active features from userspace
|
||||||
|
|
||||||
|
- STARTUP_NUMLOCK_ON = yes
|
||||||
|
- turns on NUMLOCK by default
|
||||||
|
|
||||||
|
DEFAULT MAPPING
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
FN1 Layer 1
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
RGB Layer 5 - Use Shift+Encoder to get to RGB layer 5
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
|
||||||
|
STARTUP_NUMLOCK_ON = yes
|
||||||
|
ENCODER_DEFAULTACTIONS_ENABLE = no
|
||||||
+161
-1
@@ -6,7 +6,167 @@
|
|||||||
"height": 4,
|
"height": 4,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_all": {
|
"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":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1}, {"x":12.25, "y":1, "w":1.75}, {"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, "w":1.25}, {"x":13, "y":2}, {"x":1.25, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3}, {"x":4.5, "y":3, "w":2.25}, {"x":6.75, "y":3, "w":2.75}, {"x":9.5, "y":3}, {"x":10.5, "y":3, "w":1.25}, {"x":11.75, "y":3}]
|
"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":0, "y":1, "w":1.25},
|
||||||
|
{"x":1.25, "y":1},
|
||||||
|
{"x":2.25, "y":1},
|
||||||
|
{"x":3.25, "y":1},
|
||||||
|
{"x":4.25, "y":1},
|
||||||
|
{"x":5.25, "y":1},
|
||||||
|
{"x":6.25, "y":1},
|
||||||
|
{"x":7.25, "y":1},
|
||||||
|
{"x":8.25, "y":1},
|
||||||
|
{"x":9.25, "y":1},
|
||||||
|
{"x":10.25, "y":1},
|
||||||
|
{"x":11.25, "y":1},
|
||||||
|
{"x":12.25, "y":1, "w":1.75},
|
||||||
|
|
||||||
|
{"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, "w":1.25},
|
||||||
|
{"x":13, "y":2},
|
||||||
|
|
||||||
|
{"x":1.25, "y":3},
|
||||||
|
{"x":2.25, "y":3, "w":1.25},
|
||||||
|
{"x":3.5, "y":3},
|
||||||
|
{"x":4.5, "y":3, "w":2},
|
||||||
|
{"x":6.5, "y":3},
|
||||||
|
{"x":7.5, "y":3, "w":2},
|
||||||
|
{"x":9.5, "y":3},
|
||||||
|
{"x":10.5, "y":3, "w":1.25},
|
||||||
|
{"x":11.75, "y":3}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_split_space": {
|
||||||
|
"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":0, "y":1, "w":1.25},
|
||||||
|
{"x":1.25, "y":1},
|
||||||
|
{"x":2.25, "y":1},
|
||||||
|
{"x":3.25, "y":1},
|
||||||
|
{"x":4.25, "y":1},
|
||||||
|
{"x":5.25, "y":1},
|
||||||
|
{"x":6.25, "y":1},
|
||||||
|
{"x":7.25, "y":1},
|
||||||
|
{"x":8.25, "y":1},
|
||||||
|
{"x":9.25, "y":1},
|
||||||
|
{"x":10.25, "y":1},
|
||||||
|
{"x":11.25, "y":1},
|
||||||
|
{"x":12.25, "y":1, "w":1.75},
|
||||||
|
|
||||||
|
{"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, "w":1.25},
|
||||||
|
{"x":13, "y":2},
|
||||||
|
|
||||||
|
{"x":1.25, "y":3},
|
||||||
|
{"x":2.25, "y":3, "w":1.25},
|
||||||
|
{"x":3.5, "y":3},
|
||||||
|
{"x":4.5, "y":3, "w":2.25},
|
||||||
|
{"x":6.75, "y":3, "w":2.75},
|
||||||
|
{"x":9.5, "y":3},
|
||||||
|
{"x":10.5, "y":3, "w":1.25},
|
||||||
|
{"x":11.75, "y":3}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_7u_space": {
|
||||||
|
"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":0, "y":1, "w":1.25},
|
||||||
|
{"x":1.25, "y":1},
|
||||||
|
{"x":2.25, "y":1},
|
||||||
|
{"x":3.25, "y":1},
|
||||||
|
{"x":4.25, "y":1},
|
||||||
|
{"x":5.25, "y":1},
|
||||||
|
{"x":6.25, "y":1},
|
||||||
|
{"x":7.25, "y":1},
|
||||||
|
{"x":8.25, "y":1},
|
||||||
|
{"x":9.25, "y":1},
|
||||||
|
{"x":10.25, "y":1},
|
||||||
|
{"x":11.25, "y":1},
|
||||||
|
{"x":12.25, "y":1, "w":1.75},
|
||||||
|
|
||||||
|
{"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, "w":1.25},
|
||||||
|
{"x":13, "y":2},
|
||||||
|
|
||||||
|
{"x":1.25, "y":3},
|
||||||
|
{"x":2.25, "y":3, "w":1.25},
|
||||||
|
{"x":3.5, "y":3, "w":7},
|
||||||
|
{"x":10.5, "y":3, "w":1.25},
|
||||||
|
{"x":11.75, "y":3}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -19,6 +19,21 @@
|
|||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
* │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │
|
||||||
|
* ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
|
||||||
|
* │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1D │
|
||||||
|
* ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤ ┌────────┐
|
||||||
|
* │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2B │ 2.25u RShift
|
||||||
|
* └────┬─┴─┬─┴──┬┴──┬┴───┴───┼───┴───┴──┬┴──┬┴───┼───┬┴───┘ └────────┘
|
||||||
|
* │31 │32 │33 │ 35 │ 37 │39 │3A │3B │
|
||||||
|
* └───┴────┴───┴────────┴──────────┴───┴────┴───┘
|
||||||
|
* ┌───────────────────────────┐
|
||||||
|
* │ 36 │ 7u Spacebar
|
||||||
|
* └───────────────────────────┘
|
||||||
|
*/
|
||||||
|
|
||||||
#define LAYOUT_all( \
|
#define LAYOUT_all( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, \
|
||||||
@@ -30,3 +45,27 @@
|
|||||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
|
||||||
{ XXX, K31, K32, K33, XXX, K35, K36, K37, XXX, K39, K3A, K3B, XXX, XXX } \
|
{ XXX, K31, K32, K33, XXX, K35, K36, K37, XXX, K39, K3A, K3B, XXX, XXX } \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_split_space( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||||
|
K31, K32, K33, K35, K37, K39, K3A, K3B \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, XXX, K1D }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
|
||||||
|
{ XXX, K31, K32, K33, XXX, K35, XXX, K37, XXX, K39, K3A, K3B, XXX, XXX } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_7u_space( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||||
|
K31, K32, K36, K3A, K3B \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, XXX, K1D }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
|
||||||
|
{ XXX, K31, K32, XXX, XXX, XXX, K36, XXX, XXX, XXX, K3A, K3B, XXX, XXX } \
|
||||||
|
}
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
/* Copyright 2021 Weirdo
|
/* Copyright 2021 Weirdo
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,11 @@
|
|||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
"layout_aliases": {
|
||||||
|
"LAYOUT": "LAYOUT_64_ansi"
|
||||||
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_64_ansi": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"K00", "x":0, "y":0},
|
{"label":"K00", "x":0, "y":0},
|
||||||
{"label":"K01", "x":1, "y":0},
|
{"label":"K01", "x":1, "y":0},
|
||||||
@@ -21,6 +24,7 @@
|
|||||||
{"label":"K0B", "x":11, "y":0},
|
{"label":"K0B", "x":11, "y":0},
|
||||||
{"label":"K0C", "x":12, "y":0},
|
{"label":"K0C", "x":12, "y":0},
|
||||||
{"label":"K0E", "x":13, "y":0, "w":2},
|
{"label":"K0E", "x":13, "y":0, "w":2},
|
||||||
|
|
||||||
{"label":"K10", "x":0, "y":1, "w":1.5},
|
{"label":"K10", "x":0, "y":1, "w":1.5},
|
||||||
{"label":"K12", "x":1.5, "y":1},
|
{"label":"K12", "x":1.5, "y":1},
|
||||||
{"label":"K13", "x":2.5, "y":1},
|
{"label":"K13", "x":2.5, "y":1},
|
||||||
@@ -35,6 +39,7 @@
|
|||||||
{"label":"K1C", "x":11.5, "y":1},
|
{"label":"K1C", "x":11.5, "y":1},
|
||||||
{"label":"K1D", "x":12.5, "y":1},
|
{"label":"K1D", "x":12.5, "y":1},
|
||||||
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
|
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
{"label":"K20", "x":0, "y":2, "w":1.75},
|
{"label":"K20", "x":0, "y":2, "w":1.75},
|
||||||
{"label":"K22", "x":1.75, "y":2},
|
{"label":"K22", "x":1.75, "y":2},
|
||||||
{"label":"K23", "x":2.75, "y":2},
|
{"label":"K23", "x":2.75, "y":2},
|
||||||
@@ -48,6 +53,7 @@
|
|||||||
{"label":"K2B", "x":10.75, "y":2},
|
{"label":"K2B", "x":10.75, "y":2},
|
||||||
{"label":"K2C", "x":11.75, "y":2},
|
{"label":"K2C", "x":11.75, "y":2},
|
||||||
{"label":"K2E", "x":12.75, "y":2, "w":2.25},
|
{"label":"K2E", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
{"label":"K30", "x":0, "y":3, "w":2},
|
{"label":"K30", "x":0, "y":3, "w":2},
|
||||||
{"label":"K32", "x":2, "y":3},
|
{"label":"K32", "x":2, "y":3},
|
||||||
{"label":"K33", "x":3, "y":3},
|
{"label":"K33", "x":3, "y":3},
|
||||||
@@ -62,6 +68,7 @@
|
|||||||
{"label":"K3C", "x":12, "y":3},
|
{"label":"K3C", "x":12, "y":3},
|
||||||
{"label":"K3D", "x":13, "y":3},
|
{"label":"K3D", "x":13, "y":3},
|
||||||
{"label":"K3E", "x":14, "y":3},
|
{"label":"K3E", "x":14, "y":3},
|
||||||
|
|
||||||
{"label":"K40", "x":0, "y":4, "w":1.25},
|
{"label":"K40", "x":0, "y":4, "w":1.25},
|
||||||
{"label":"K41", "x":1.25, "y":4, "w":1.25},
|
{"label":"K41", "x":1.25, "y":4, "w":1.25},
|
||||||
{"label":"K42", "x":2.5, "y":4, "w":1.25},
|
{"label":"K42", "x":2.5, "y":4, "w":1.25},
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
/* Copyright 2021 Weirdo
|
/* Copyright 2021 Weirdo
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
|
||||||
@@ -23,16 +23,19 @@ enum layer_names {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT(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,
|
[_BASE] = LAYOUT_64_ansi(
|
||||||
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_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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, 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_ENT,
|
||||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||||
|
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT_64_ansi(
|
||||||
[_FN] = LAYOUT(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_DEL,
|
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_DEL,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), //
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
};
|
};
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
/* Copyright 2021 Weirdo
|
/* Copyright 2021 Weirdo
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
|
||||||
@@ -20,28 +20,35 @@
|
|||||||
enum layer_names { _BASE, _FN ,_FN1 ,_FN2 };
|
enum layer_names { _BASE, _FN ,_FN1 ,_FN2 };
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT(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,
|
[_BASE] = LAYOUT_64_ansi(
|
||||||
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_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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, 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_ENT,
|
||||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||||
|
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT_64_ansi(
|
||||||
|
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_DEL,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
[_FN] = LAYOUT(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_DEL,
|
[_FN1] = LAYOUT_64_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), //
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
[_FN1] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
[_FN2] = LAYOUT_64_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
[_FN2] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
),
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
|
||||||
};
|
};
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
/* Copyright 2021 Weirdo
|
/* Copyright 2021 Weirdo
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#include "np64.h"
|
#include "np64.h"
|
||||||
@@ -16,7 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT_64_ansi( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
|
||||||
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
|
||||||
|
|||||||
Loaded 100 of 215 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user