Compare commits

..

4 Commits

Author SHA1 Message Date
456d6f3342 Remove legacy keycodes from unit tests (#18430) 2022-09-20 08:52:43 +02:00
100cf3db3a [Keymap] Added Kyria keyboard to jimmysjolund (#18335) 2022-09-19 23:19:51 -07:00
41fdf32afb Add encoder map to Quefrency VIA keymap (#18380)
* Add encoder map to Quefrency VIA keymap

* Explicitly define which RGB animations are enabled

* Set different PID to prep for different VIA .json usage

* Add ifdefs to handle if ENCODER_ENABLE is set to NO
2022-09-19 20:26:29 +01:00
51620c1042 Fix boardsource/lulu RGB matrix (#18407)
* Fix ordering of entries for RGB matrix.

* Fix typos in RGB matrix definition.

These matrix indices overlapped.

* Improve positions in RGB matrix.

The rotary encoder and the key below that are in a new column.
The rotary encoder's height is inbetween rows.
The key below is kind of off-axis and thus hard to pin down to a
specific location.

The modifer keys in the bottom row are staggered compared to the other
columns.
2022-09-19 19:42:38 +01:00
21 changed files with 414 additions and 86 deletions

View File

@ -36,70 +36,70 @@
{ "flags": 2, "x": 17, "y": 10 },
{ "flags": 2, "x": 51, "y": 10 },
{ "flags": 2, "x": 86, "y": 10 },
{ "flags": 2, "x": 137, "y": 55 },
{ "flags": 2, "x": 172, "y": 55 },
{ "flags": 2, "x": 206, "y": 40 },
{ "flags": 2, "x": 206, "y": 10 },
{ "flags": 2, "x": 172, "y": 10 },
{ "flags": 2, "x": 137, "y": 10 },
{ "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 },
{ "flags": 4, "matrix": [0, 1], "x": 17, "y": 0 },
{ "flags": 4, "matrix": [0, 2], "x": 34, "y": 0 },
{ "flags": 4, "matrix": [0, 3], "x": 51, "y": 0 },
{ "flags": 4, "matrix": [0, 4], "x": 68, "y": 0 },
{ "flags": 4, "matrix": [0, 5], "x": 86, "y": 0 },
{ "flags": 4, "matrix": [5, 5], "x": 137, "y": 0 },
{ "flags": 4, "matrix": [5, 4], "x": 155, "y": 0 },
{ "flags": 4, "matrix": [5, 3], "x": 172, "y": 0 },
{ "flags": 4, "matrix": [5, 2], "x": 189, "y": 0 },
{ "flags": 4, "matrix": [5, 1], "x": 206, "y": 0 },
{ "flags": 1, "matrix": [5, 0], "x": 224, "y": 0 },
{ "flags": 4, "matrix": [0, 4], "x": 68, "y": 0 },
{ "flags": 4, "matrix": [0, 3], "x": 51, "y": 0 },
{ "flags": 4, "matrix": [0, 2], "x": 34, "y": 0 },
{ "flags": 4, "matrix": [0, 1], "x": 17, "y": 0 },
{ "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 },
{ "flags": 1, "matrix": [1, 0], "x": 0, "y": 16 },
{ "flags": 4, "matrix": [1, 1], "x": 17, "y": 16 },
{ "flags": 4, "matrix": [1, 2], "x": 34, "y": 16 },
{ "flags": 4, "matrix": [1, 3], "x": 51, "y": 16 },
{ "flags": 4, "matrix": [1, 4], "x": 68, "y": 16 },
{ "flags": 4, "matrix": [1, 5], "x": 86, "y": 16 },
{ "flags": 4, "matrix": [6, 5], "x": 137, "y": 16 },
{ "flags": 4, "matrix": [6, 4], "x": 155, "y": 16 },
{ "flags": 4, "matrix": [6, 3], "x": 172, "y": 16 },
{ "flags": 4, "matrix": [6, 2], "x": 189, "y": 16 },
{ "flags": 4, "matrix": [6, 1], "x": 206, "y": 16 },
{ "flags": 1, "matrix": [6, 4], "x": 224, "y": 16 },
{ "flags": 1, "matrix": [2, 0], "x": 0, "y": 32 },
{ "flags": 4, "matrix": [2, 1], "x": 17, "y": 32 },
{ "flags": 4, "matrix": [2, 2], "x": 34, "y": 32 },
{ "flags": 4, "matrix": [2, 3], "x": 51, "y": 32 },
{ "flags": 4, "matrix": [2, 4], "x": 68, "y": 32 },
{ "flags": 4, "matrix": [2, 5], "x": 86, "y": 32 },
{ "flags": 4, "matrix": [7, 5], "x": 137, "y": 32 },
{ "flags": 4, "matrix": [7, 4], "x": 155, "y": 32 },
{ "flags": 4, "matrix": [7, 3], "x": 172, "y": 32 },
{ "flags": 4, "matrix": [7, 2], "x": 189, "y": 32 },
{ "flags": 4, "matrix": [7, 1], "x": 206, "y": 32 },
{ "flags": 1, "matrix": [7, 4], "x": 224, "y": 32 },
{ "flags": 4, "matrix": [2, 4], "x": 68, "y": 32 },
{ "flags": 4, "matrix": [2, 3], "x": 51, "y": 32 },
{ "flags": 4, "matrix": [2, 2], "x": 34, "y": 32 },
{ "flags": 4, "matrix": [2, 1], "x": 17, "y": 32 },
{ "flags": 1, "matrix": [2, 0], "x": 0, "y": 32 },
{ "flags": 1, "matrix": [3, 0], "x": 0, "y": 48 },
{ "flags": 4, "matrix": [3, 1], "x": 17, "y": 48 },
{ "flags": 4, "matrix": [3, 2], "x": 34, "y": 48 },
{ "flags": 4, "matrix": [3, 3], "x": 51, "y": 48 },
{ "flags": 4, "matrix": [3, 4], "x": 68, "y": 48 },
{ "flags": 4, "matrix": [3, 5], "x": 86, "y": 48 },
{ "flags": 4, "matrix": [4, 5], "x": 103, "y": 48 },
{ "flags": 4, "matrix": [9, 5], "x": 120, "y": 48 },
{ "flags": 4, "matrix": [8, 5], "x": 137, "y": 48 },
{ "flags": 4, "matrix": [8, 4], "x": 155, "y": 48 },
{ "flags": 4, "matrix": [8, 3], "x": 172, "y": 48 },
{ "flags": 4, "matrix": [8, 2], "x": 189, "y": 48 },
{ "flags": 4, "matrix": [4, 5], "x": 103, "y": 40 },
{ "flags": 1, "matrix": [4, 4], "x": 96, "y": 64 },
{ "flags": 1, "matrix": [4, 3], "x": 77, "y": 64 },
{ "flags": 1, "matrix": [4, 2], "x": 60, "y": 64 },
{ "flags": 1, "matrix": [4, 1], "x": 43, "y": 64 },
{ "flags": 2, "x": 137, "y": 55 },
{ "flags": 2, "x": 172, "y": 55 },
{ "flags": 2, "x": 206, "y": 40 },
{ "flags": 2, "x": 206, "y": 10 },
{ "flags": 2, "x": 172, "y": 10 },
{ "flags": 2, "x": 137, "y": 10 },
{ "flags": 4, "matrix": [5, 5], "x": 137, "y": 0 },
{ "flags": 4, "matrix": [5, 4], "x": 155, "y": 0 },
{ "flags": 4, "matrix": [5, 3], "x": 172, "y": 0 },
{ "flags": 4, "matrix": [5, 2], "x": 189, "y": 0 },
{ "flags": 4, "matrix": [5, 1], "x": 206, "y": 0 },
{ "flags": 1, "matrix": [5, 0], "x": 224, "y": 0 },
{ "flags": 1, "matrix": [6, 0], "x": 224, "y": 16 },
{ "flags": 4, "matrix": [6, 1], "x": 206, "y": 16 },
{ "flags": 4, "matrix": [6, 2], "x": 189, "y": 16 },
{ "flags": 4, "matrix": [6, 3], "x": 172, "y": 16 },
{ "flags": 4, "matrix": [6, 4], "x": 155, "y": 16 },
{ "flags": 4, "matrix": [6, 5], "x": 137, "y": 16 },
{ "flags": 4, "matrix": [7, 5], "x": 137, "y": 32 },
{ "flags": 4, "matrix": [7, 4], "x": 155, "y": 32 },
{ "flags": 4, "matrix": [7, 3], "x": 172, "y": 32 },
{ "flags": 4, "matrix": [7, 2], "x": 189, "y": 32 },
{ "flags": 4, "matrix": [7, 1], "x": 206, "y": 32 },
{ "flags": 1, "matrix": [7, 0], "x": 224, "y": 32 },
{ "flags": 1, "matrix": [8, 0], "x": 224, "y": 48 },
{ "flags": 4, "matrix": [8, 1], "x": 206, "y": 48 },
{ "flags": 1, "matrix": [8, 4], "x": 224, "y": 48 },
{ "flags": 1, "matrix": [4, 1], "x": 34, "y": 64 },
{ "flags": 1, "matrix": [4, 2], "x": 51, "y": 64 },
{ "flags": 1, "matrix": [4, 3], "x": 68, "y": 64 },
{ "flags": 1, "matrix": [4, 4], "x": 86, "y": 64 },
{ "flags": 1, "matrix": [9, 4], "x": 137, "y": 64 },
{ "flags": 1, "matrix": [9, 3], "x": 155, "y": 64 },
{ "flags": 1, "matrix": [9, 2], "x": 172, "y": 64 },
{ "flags": 1, "matrix": [9, 1], "x": 189, "y": 64 }
{ "flags": 4, "matrix": [8, 2], "x": 189, "y": 48 },
{ "flags": 4, "matrix": [8, 3], "x": 172, "y": 48 },
{ "flags": 4, "matrix": [8, 4], "x": 155, "y": 48 },
{ "flags": 4, "matrix": [8, 5], "x": 137, "y": 48 },
{ "flags": 4, "matrix": [9, 5], "x": 120, "y": 40 },
{ "flags": 1, "matrix": [9, 4], "x": 127, "y": 64 },
{ "flags": 1, "matrix": [9, 3], "x": 146, "y": 64 },
{ "flags": 1, "matrix": [9, 2], "x": 163, "y": 64 },
{ "flags": 1, "matrix": [9, 1], "x": 180, "y": 64 }
]
},
"layouts": {

View File

@ -33,3 +33,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
[2] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[3] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
};
#endif

View File

@ -1,2 +1,3 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View File

@ -46,10 +46,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* ws2812 RGB LED */
#define RGB_DI_PIN E6
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 16 // Number of LEDs
#define RGBLED_SPLIT { 8, 8 }
#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
#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
// Set 65% column (option 3) and Macro (option 4) on by default
#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE

View File

@ -31,6 +31,7 @@ void eeconfig_init_kb(void) {
eeconfig_init_user();
}
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
@ -48,3 +49,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return false;
}
#endif

View File

@ -46,10 +46,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* ws2812 RGB LED */
#define RGB_DI_PIN E6
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 16 // Number of LEDs
#define RGBLED_SPLIT { 8, 8 }
#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
#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
// Set 65% column (option 3) and Macro (option 4) on by default
#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE

View File

@ -5,8 +5,8 @@
"maintainer": "nooges",
"usb": {
"vid": "0xCB10",
"pid": "0x3257",
"device_version": "3.0.0"
"pid": "0x3357",
"device_version": "3.1.0"
},
"layout_aliases": {
"LAYOUT": "LAYOUT_60"

View File

@ -47,6 +47,7 @@ void eeconfig_init_kb(void) {
eeconfig_init_user();
}
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
@ -64,3 +65,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return false;
}
#endif

View File

@ -46,8 +46,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* ws2812 RGB LED */
#define RGB_DI_PIN E6
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 16 // Number of LEDs
#define RGBLED_SPLIT { 8, 8 }
#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
#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

View File

@ -5,8 +5,8 @@
"maintainer": "nooges",
"usb": {
"vid": "0xCB10",
"pid": "0x4257",
"device_version": "4.0.0"
"pid": "0x4357",
"device_version": "4.1.0"
},
"layout_aliases": {
"LAYOUT": "LAYOUT_60"

View File

@ -16,6 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quefrency.h"
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
@ -33,3 +34,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return false;
}
#endif

View File

@ -5,8 +5,8 @@
"maintainer": "nooges",
"usb": {
"vid": "0xCB10",
"pid": "0x5257",
"device_version": "5.0.0"
"pid": "0x5357",
"device_version": "5.1.0"
},
"layout_aliases": {
"LAYOUT": "LAYOUT_60"

View File

@ -16,6 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quefrency.h"
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
@ -33,3 +34,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return false;
}
#endif

View File

@ -53,23 +53,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
/* Qwerty - jimmysjolund 2022-02-06
/* Qwerty - jimmysjolund 2022-09-17
* ,-----------------------------------------------------------------------------------.
* | ` | Q | W | E | R | T | Y | U | I | O | P | Del |
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* |Raise | A | S | D | F | G | H | J | K | L | ; | " |
* | Tab | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* |Lower | Z | X | C | V | B | N | M | , | . | / |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Esc | Tab | GUI |Shift | Bksp | Ctrl |Enter |Space |AltGr | Alt | Down | Up |
* |Raise |Ctrl+ | GUI |Shift |Bksp/ |Lower |Enter |Space |AltGr | Alt | Left |Right |
* | | Alt | | | Ctrl | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid(
KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
RAISE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
LOWER, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_ENT, KC_SPC, KC_ALGR, KC_LALT, KC_DOWN, KC_UP
RAISE, LCTL(KC_LALT), KC_LGUI, KC_LSFT, LCTL_T(KC_BSPC), LOWER, KC_ENT, KC_SPC, KC_ALGR, KC_LALT, KC_LEFT, KC_RGHT
),
/* Colemak Original
@ -85,20 +86,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
/* Colemak jimmysjolund
* ,-----------------------------------------------------------------------------------.
* | ` | Q | W | F | P | G | J | L | U | Y | ; | Del |
* | Esc | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* |Raise | A | R | S | T | D | H | N | E | I | O | " |
* | Tab | A | R | S | T | D | H | N | E | I | O | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* |Lower | Z | X | C | V | B | K | M | , | . | / |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Esc | Tab | GUI |Shift | Bksp | Ctrl |Enter |Space |AltGr | Alt | Down | Up |
* |Raise |Ctrl+ | GUI |Shift |Bksp/ |Lower |Enter |Space |AltGr | Alt | Left |Right |
* | | Alt | | | Ctrl | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_COLEMAK] = LAYOUT_planck_grid(
KC_GRV, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
RAISE, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
LOWER, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_ENT, KC_SPC, KC_ALGR, KC_LALT, KC_DOWN, KC_UP
RAISE, LCTL(KC_LALT), KC_LGUI, KC_LSFT, LCTL_T(KC_BSPC), LOWER, KC_ENT, KC_SPC, KC_ALGR, KC_LALT, KC_LEFT, KC_RGHT
),
/* Dvorak
@ -119,21 +121,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Lower
/* Lower - Jimmy Sjölund 2022-09-19
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | + |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
* | | | \ | : | ; | - | [ | ] | _ | , | . | / | ? |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_planck_grid(
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS,
KC_PIPE, KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES,
_______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
@ -188,7 +190,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_planck_grid(
_______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)

View File

@ -0,0 +1,20 @@
/* Copyright 2022 Thomas Baart <thomas@splitkb.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// Lets you roll mod-tap keys
#define IGNORE_MOD_TAP_INTERRUPT

View File

@ -0,0 +1,257 @@
/* Copyright 2019 Thomas Baart <thomas@splitkb.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers {
_QWERTY = 0,
_DVORAK,
_COLEMAK_DH,
_NAV,
_SYM,
_FUNCTION,
_ADJUST,
};
// Aliases for readability
#define QWERTY DF(_QWERTY)
#define COLEMAK DF(_COLEMAK_DH)
#define DVORAK DF(_DVORAK)
#define SYM MO(_SYM)
#define NAV MO(_NAV)
#define FKEYS MO(_FUNCTION)
#define ADJUST MO(_ADJUST)
#define CTL_ESC MT(MOD_LCTL, KC_ESC)
#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE)
#define CTL_MINS MT(MOD_RCTL, KC_MINUS)
#define ALT_ENT MT(MOD_LALT, KC_ENT)
// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter.
// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and
// produces the key `tap` when tapped (i.e. pressed and released).
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* Base Layer: QWERTY
*
* ,-------------------------------------------. ,-------------------------------------------.
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "|
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift |
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
* |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
* | | | Enter| | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
/*
* jimmysjolund 2022-09-13
*
* Base Layer: QWERTY
*
* ,-------------------------------------------. ,-------------------------------------------.
* | Esc | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* | Tab | A | S | D | F | G | | H | J | K | L | ; : | ' " |
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
* | Nav | Z | X | C | V | B | [ { | Alt | | Nav | ] } | N | M | , < | . > | / ? | Adjust |
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
* |Ctrl+ | LGUI | Shift|Bksp/ | Sym | |Enter | Space| AltGr| ← | → |
* | Alt | | | Ctrl | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
[_QWERTY] = LAYOUT(
KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC,
KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN, KC_QUOT,
NAV , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC, KC_LALT, NAV , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, ADJUST,
LCTL(KC_LALT) , KC_LGUI, KC_LSFT, LCTL_T(KC_BSPC), SYM, KC_ENT, KC_SPC ,KC_ALGR, KC_LEFT, KC_RGHT
),
/*
* Base Layer: Dvorak
*
* ,-------------------------------------------. ,-------------------------------------------.
* | Tab | ' " | , < | . > | P | Y | | F | G | C | R | L | Bksp |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _|
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
* | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift |
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
* |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
* | | | Enter| | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
[_DVORAK] = LAYOUT(
KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC,
CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS,
KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT,
ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP
),
/*
* Base Layer: Colemak DH
*
* ,-------------------------------------------. ,-------------------------------------------.
* | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' "|
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
* | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift |
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
* |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
* | | | Enter| | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
/*
* jimmysjolund 2022-09-10
* Base Layer: Colemak DH
*
* ,-------------------------------------------. ,-------------------------------------------.
* | Esc | Q | W | F | P | G | | J | L | U | Y | ; : | Bksp |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* | Tab | A | R | S | T | D | | H | N | E | I | O |Ctrl/' "|
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
* | Sym | Z | X | C | V | B | [ { | Alt | | Nav | ] } | K | M | , < | . > | / ? | RShift |
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
* |Adjust| LGUI |LShift| Bksp | Ctrl | | Enter| Space| AltGr| ← | → |
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
[_COLEMAK_DH] = LAYOUT(
KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC,
KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H, KC_N , KC_E , KC_I , KC_O , CTL_QUOT,
SYM , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC, KC_LALT, NAV , KC_RBRC, KC_K, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT,
ADJUST, KC_LGUI, KC_LSFT, KC_BSPC ,KC_LCTL, KC_ENT , KC_SPC ,KC_ALGR, KC_LEFT, KC_RGHT
),
/*
* Nav Layer: Media, navigation
*
* ,-------------------------------------------. ,-------------------------------------------.
* | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert |
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
* | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc |
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
* | | | | | | | | | | | |
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
[_NAV] = LAYOUT(
_______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL,
_______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS,
_______, _______, _______, _______, _______, _______, _______, KC_SLCK, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/*
* Sym Layer: Numbers and symbols
*
* ,-------------------------------------------. ,-------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + |
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
* | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? |
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
* | | | | | | | | | | | |
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
[_SYM] = LAYOUT(
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL ,
KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS,
KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/*
* Function Layer: Function keys
*
* ,-------------------------------------------. ,-------------------------------------------.
* | | F9 | F10 | F11 | F12 | | | | | | | | |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | |
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
* | | F1 | F2 | F3 | F4 | | | | | | | | | | | | |
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
* | | | | | | | | | | | |
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
[_FUNCTION] = LAYOUT(
_______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______,
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/*
* Adjust Layer: Default layer settings, RGB
*
* ,-------------------------------------------. ,-------------------------------------------.
* | | | |QWERTY| | | | | | | | | |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | |
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
* | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | |
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
* | | | | | | | | | | | |
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
[_ADJUST] = LAYOUT(
_______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, DVORAK , _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______,
_______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______,
_______, _______, _______,_______, _______, _______, _______, _______, _______, _______
),
// /*
// * Layer template
// *
// * ,-------------------------------------------. ,-------------------------------------------.
// * | | | | | | | | | | | | | |
// * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
// * | | | | | | | | | | | | | |
// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
// * | | | | | | | | | | | | | | | | | |
// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
// * | | | | | | | | | | | |
// * | | | | | | | | | | | |
// * `----------------------------------' `----------------------------------'
// */
// [_LAYERINDEX] = LAYOUT(
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
// ),
};

View File

@ -0,0 +1,4 @@
OLED_ENABLE = yes
OLED_DRIVER = SSD1306 # Enables the use of OLED displays
ENCODER_ENABLE = yes # Enables the use of one or more encoders
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow

View File

@ -213,7 +213,7 @@ TEST_F(DefaultTapHold, tap_and_hold_mod_tap_hold_key) {
set_keymap({mod_tap_hold_key});
/* Press mod-tap-hold key. */
EXPECT_REPORT(driver, (KC_LSHIFT));
EXPECT_REPORT(driver, (KC_LEFT_SHIFT));
mod_tap_hold_key.press();
idle_for(TAPPING_TERM + 1);
testing::Mock::VerifyAndClearExpectations(&driver);

View File

@ -46,9 +46,9 @@ TEST_F(PermissiveHold, tap_regular_key_while_mod_tap_key_is_held) {
testing::Mock::VerifyAndClearExpectations(&driver);
/* Release regular key */
EXPECT_REPORT(driver, (KC_LSHIFT));
EXPECT_REPORT(driver, (KC_LSHIFT, regular_key.report_code));
EXPECT_REPORT(driver, (KC_LSHIFT));
EXPECT_REPORT(driver, (KC_LEFT_SHIFT));
EXPECT_REPORT(driver, (KC_LEFT_SHIFT, regular_key.report_code));
EXPECT_REPORT(driver, (KC_LEFT_SHIFT));
regular_key.release();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
@ -81,9 +81,9 @@ TEST_F(PermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held) {
testing::Mock::VerifyAndClearExpectations(&driver);
/* Release second mod-tap-hold key */
EXPECT_REPORT(driver, (KC_LSHIFT));
EXPECT_REPORT(driver, (KC_LSHIFT, second_mod_tap_hold_key.report_code));
EXPECT_REPORT(driver, (KC_LSHIFT));
EXPECT_REPORT(driver, (KC_LEFT_SHIFT));
EXPECT_REPORT(driver, (KC_LEFT_SHIFT, second_mod_tap_hold_key.report_code));
EXPECT_REPORT(driver, (KC_LEFT_SHIFT));
second_mod_tap_hold_key.release();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);

View File

@ -42,7 +42,7 @@ TEST_F(RetroTapping, tap_and_hold_mod_tap_hold_key) {
/* Release mod-tap-hold key. */
/* TODO: Why is LSHIFT send at all? */
EXPECT_REPORT(driver, (KC_LSHIFT));
EXPECT_REPORT(driver, (KC_LEFT_SHIFT));
EXPECT_EMPTY_REPORT(driver);
EXPECT_REPORT(driver, (KC_P));
EXPECT_EMPTY_REPORT(driver);

View File

@ -205,7 +205,7 @@ TEST_F(TappingForceHold, tap_mod_tap_hold_key_twice_and_hold_on_second_time) {
testing::Mock::VerifyAndClearExpectations(&driver);
/* Release mod-tap-hold key. */
EXPECT_REPORT(driver, (KC_LSHIFT));
EXPECT_REPORT(driver, (KC_LEFT_SHIFT));
EXPECT_EMPTY_REPORT(driver);
mod_tap_hold_key.release();
run_one_scan_loop();