layouts: dvorak_emacs: Add missing keys, caps word, improve LEDs.

The following changes are made:

- Enable caps word feature
- Add the `, CAPS, SCRL, INS keys as well as L1 toggles to the base layer
- Add Mute, Bright+, Bright-, Prev, Next, Stop and Play to the AUX layer
- Wire LED 2 and 3 to caps word and scroll lock (previously unused)
- Use PERMISSIVE_HOLD strategy, to reduce errors at high typing speed
- Remove some obsolete/dead code such as KEY_TAP_FAST/KEY_TAP_SLOW
This commit is contained in:
Maxim Cournoyer 2023-09-30 21:04:45 -04:00
parent 8813bdf5dd
commit b43533aa66
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
8 changed files with 155 additions and 137 deletions

View File

@ -0,0 +1,2 @@
#define CAPS_WORD_INVERT_ON_SHIFT
#define PERMISSIVE_HOLD

View File

@ -5,30 +5,20 @@
/******************************************************************************************
* DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/)
* Layer 1: auxiliary keys
* Layer 2: full qwerty layout
*****************************************************************************************/
// LAYERS
#define BASE 0 // dvorak layout (default)
#define AUX 1 // auxiliary keys
#define BASE 0 // dvorak layout (default)
#define AUX 1 // auxiliary keys
// MACROS
/* #define OBRACE 0 // key { or shift */
/* #define CBRACE 1 // key } or shift */
/* #define OBRACK 2 // key [ or left alt */
/* #define CBRACK 3 // key ] or left alt */
/* #define CAPS 4 // caps lock */
// TIMERS
#define KEY_TAP_FAST 85
#define KEY_TAP_SLOW 95
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Base layer
* Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + |
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | ~ |" / ' |, / < |. / > | P | Y | [ | | ] | F | G | C | H | L | / / ? |
* |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
@ -36,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
* | {/LSft |; / : | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | ~L1 | | ~L1 | | | \ / || |
* | L1 | CAPS | SCRL | INS | ~L1 | | ~L1 | | | \ / || L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | HOME | END | | LEFT | RIGHT|
@ -49,20 +39,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[BASE] = LAYOUT_ergodox(
// left hand
KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_TILD, KC_QUOTE, KC_COMM,KC_DOT, KC_P, KC_Y, KC_LBRC,
KC_TAB, KC_A, KC_O, KC_E, SFT_T(KC_U), LT(AUX, KC_I),
SFT_T(KC_LBRC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI,
KC_NO, KC_NO, KC_NO, KC_NO, MO(AUX),
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_TILD, KC_QUOTE, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRC,
KC_TAB, KC_A, KC_O, KC_E, SFT_T(KC_U), LT(AUX, KC_I),
SFT_T(KC_LBRC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI,
TG(AUX), CW_TOGG, KC_SCRL, KC_INS, MO(AUX),
KC_HOME, KC_END,
KC_PGUP,
CTL_T(KC_BSPC), ALT_T(KC_DEL), KC_PGDN,
// right hand
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH,
LT(AUX, KC_D), SFT_T(KC_H), KC_T, KC_N, KC_S, KC_MINUS,
KC_LGUI, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_RBRC),
MO(AUX), KC_NO, KC_NO, KC_BSLS, KC_NO,
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH,
LT(AUX, KC_D), SFT_T(KC_H), KC_T, KC_N, KC_S, KC_MINUS,
KC_LGUI, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_RBRC),
MO(AUX), KC_NO, KC_NO, KC_BSLS, TG(AUX),
KC_LEFT, KC_RIGHT,
KC_UP,
KC_DOWN, ALT_T(KC_ENT), CTL_T(KC_SPC)
@ -70,21 +60,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 1: Aux layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | VolUp | | | | | | SLEEP | PWR | | | | | | |
* | VolUp | | | | | | SLEEP | PWR | | | | | | Brigh+ |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
* | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | Brigh- |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
* | Mute | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------|
* | TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
* | TRANS|CTRL-Z|CTRL-X|CTRL-C|CTRL-S| | TRANS| . | 0 | = | TRANS |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | TRANS| TRANS| | TRANS| TRANS|
* ,------|------|------| |------+------+------.
* | | | TRANS| | TRANS| | |
* |TRANS |TRANS |------| |------| TRANS| TRANS|
* | Prev | Next |------| |------| Stop | Play |
* | | | TRANS| | TRANS| | |
* `--------------------' `--------------------'
*/
@ -92,42 +82,44 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// left hand
KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP,
KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO,
KC_NO , KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
KC_MUTE, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
LCTL(KC_S), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), KC_TRNS,
KC_TRNS , KC_TRNS,
KC_TRNS, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_S),
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_MPRV, KC_MNXT, KC_TRNS,
// right hand
KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_NO,
KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRIU,
KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_BRID,
KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_NO,
KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_TRNS,
KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_NO,
KC_TRNS , KC_TRNS,
KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
KC_TRNS, KC_MSTP, KC_MPLY
),
};
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
// clang-format on
uint8_t layer = get_highest_layer(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case 1:
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case AUX:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// none
default: // on any other layer
ergodox_right_led_1_off();
break;
}
return state;
}
bool led_update_user(led_t led_state) {
led_state.scroll_lock ? ergodox_right_led_3_on() : ergodox_right_led_3_off();
return true;
}
void caps_word_set_user(bool active) {
active ? ergodox_right_led_2_on() : ergodox_right_led_2_off();
}

View File

@ -2,7 +2,7 @@
* Control & Alt key on the thumbs (activated if pressed with another key).
* In the same way, "U" and "R" are the shift modifier if pressed with another key.
* "I" and "D" set the layer 1 for the auxiliary keys if pressed with another key.
* Software layout set to english.
* Software layout set to English.
## Keymap Layers
- L0: dvorak with some customizations (see layout below)
@ -15,19 +15,19 @@ Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'he
<pre><code>
,--------------------------------------------------. ,--------------------------------------------------.
| | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = |
|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
| ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = |
|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
| ~ | ' | , | . | P | Y | [ | | ] | F | G | C | H | L | / |
|--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
|--------|------|------|------|------|------| { | | } |------|------|------|------|------|--------|
| Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - |
|--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
|--------|------|------|------|------|------| LGUI | | LGUI |------|------|------|------|------|--------|
| {/LSft | ; | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
| | | | | ~L1 | | ~L1 | | | \ | |
`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
| L1 | CAPS | SCRL | INS | ~L1 | | ~L1 | | | \ | L1 |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| HOME | END | | LEFT | RIGHT|
,------|------|------| |------+--------+------.
,------|------|------| |------|--------|------.
| BSPC | DEL | PGUP | | UP | SPACE |RETURN|
| / | / |------| |------| / | / |
| LCTL | LALT |PGDWN | | DOWN | LALT | LCTL |
@ -40,21 +40,21 @@ Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'he
<pre><code>
,--------------------------------------------------. ,--------------------------------------------------.
| VolUp | | | | | | SLEEP | PWR | | | | | | |
|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
| VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
|--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------|
| VolUp | | | | | | SLEEP | PWR | | | | | | Brigh+ |
|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
| VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | Brigh- |
|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| Mute | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
|--------|------|------|------|------|------| | |PSCR |------|------|------|------|------|--------|
| TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
| TRANS|CTRL-Z|CTRL-X|CTRL-C|CTRL-S| | TRANS| . | 0 | = | TRANS |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| TRANS| TRANS| | TRANS| TRANS|
,------|------|------| |------+------+------.
,------|------|------| |------|------|------.
| | | TRANS| | TRANS| | |
|TRANS |TRANS |------| |------| TRANS| TRANS|
| Prev | Next |------| |------| Stop | Play |
| | | TRANS| | TRANS| | |
`--------------------' `--------------------'

View File

@ -0,0 +1 @@
CAPS_WORD_ENABLE = yes

View File

@ -0,0 +1,2 @@
#define CAPS_WORD_INVERT_ON_SHIFT
#define PERMISSIVE_HOLD

View File

@ -6,30 +6,20 @@
/******************************************************************************************
* DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/)
* Layer 1: auxiliary keys
* Layer 2: full qwerty layout
*****************************************************************************************/
// LAYERS
#define BASE 0 // dvorak layout (default)
#define AUX 1 // auxiliary keys
#define BASE 0 // dvorak layout (default)
#define AUX 1 // auxiliary keys
// MACROS
/* #define OBRACE 0 // key { or shift */
/* #define CBRACE 1 // key } or shift */
/* #define OBRACK 2 // key [ or left alt */
/* #define CBRACK 3 // key ] or left alt */
/* #define CAPS 4 // caps lock */
// TIMERS
#define KEY_TAP_FAST 85
#define KEY_TAP_SLOW 95
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Base layer
* Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + |
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | ~ |" / ' |, / < |. / > | P | Y | [ | | ] | F | G | C | H | L | / / ? |
* |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
@ -37,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
* | {/LSft |; / : | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | ~L1 | | ~L1 | | | \ / || |
* | L1 | CAPS | SCRL | INS | ~L1 | | ~L1 | | | \ / || L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | HOME | END | | LEFT | RIGHT|
@ -50,20 +40,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[BASE] = LAYOUT_ergodox(
// left hand
KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_TILD, DV_QUOT, DV_COMM,DV_DOT, DV_P, DV_Y, DV_LBRC,
KC_TAB, DV_A, DV_O, DV_E, SFT_T(DV_U), LT(AUX, DV_I),
SFT_T(DV_LBRC), DV_SCLN, DV_Q, DV_J, DV_K, DV_X, KC_LGUI,
KC_NO, KC_NO, KC_NO, KC_NO, MO(AUX),
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_TILD, DV_QUOT, DV_COMM, DV_DOT, DV_P, DV_Y, DV_LBRC,
KC_TAB, DV_A, DV_O, DV_E, SFT_T(DV_U), LT(AUX, DV_I),
SFT_T(DV_LBRC), DV_SCLN, DV_Q, DV_J, DV_K, DV_X, KC_LGUI,
TG(AUX), CW_TOGG, KC_SCRL, KC_INS, MO(AUX),
KC_HOME, KC_END,
KC_PGUP,
CTL_T(KC_BSPC), ALT_T(KC_DEL), KC_PGDN,
// right hand
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, DV_EQL,
DV_RBRC, DV_F, DV_G, DV_C, DV_R, DV_L, DV_SLSH,
LT(AUX, DV_D), SFT_T(DV_H), DV_T, DV_N, DV_S, DV_MINS,
KC_LGUI, DV_B, DV_M, DV_W, DV_V, DV_Z, SFT_T(DV_RBRC),
MO(AUX), KC_NO, KC_NO, KC_BSLS, KC_NO,
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, DV_EQL,
DV_RBRC, DV_F, DV_G, DV_C, DV_R, DV_L, DV_SLSH,
LT(AUX, DV_D), SFT_T(DV_H), DV_T, DV_N, DV_S, DV_MINS,
KC_LGUI, DV_B, DV_M, DV_W, DV_V, DV_Z, SFT_T(DV_RBRC),
MO(AUX), KC_NO, KC_NO, KC_BSLS, TG(AUX),
KC_LEFT, KC_RIGHT,
KC_UP,
KC_DOWN, ALT_T(KC_ENT), CTL_T(KC_SPC)
@ -71,21 +61,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 1: Aux layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | VolUp | | | | | | SLEEP | PWR | | | | | | |
* | VolUp | | | | | | SLEEP | PWR | | | | | | Brigh+ |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
* | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | Brigh- |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | |PSCR |------+-----aan+------+------+------+--------|
* | Mute | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------|
* | TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
* | TRANS|CTRL-Z|CTRL-X|CTRL-C|CTRL-S| | TRANS| . | 0 | = | TRANS |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | TRANS| TRANS| | TRANS| TRANS|
* ,------|------|------| |------+------+------.
* | | | TRANS| | TRANS| | |
* |TRANS |TRANS |------| |------| TRANS| TRANS|
* | Prev | Next |------| |------| Stop | Play |
* | | | TRANS| | TRANS| | |
* `--------------------' `--------------------'
*/
@ -93,42 +83,72 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// left hand
KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP,
KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO,
KC_NO , KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
KC_MUTE, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
LCTL(DV_S), LCTL(DV_Z), LCTL(DV_X), LCTL(DV_C), KC_TRNS,
KC_TRNS , KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, LCTL(DV_Z), LCTL(DV_X), LCTL(DV_C), LCTL(DV_S),
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_MPRV, KC_MNXT, KC_TRNS,
// right hand
KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_NO,
KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRIU,
KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_BRID,
KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_NO,
KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_TRNS,
KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_NO,
KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_TRNS,
KC_TRNS , KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
KC_TRNS, KC_MSTP, KC_MPLY
),
};
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
// clang-format on
uint8_t layer = get_highest_layer(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case 1:
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case AUX:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// none
default: // on any other layer
ergodox_right_led_1_off();
break;
}
return state;
}
bool led_update_user(led_t led_state) {
led_state.scroll_lock ? ergodox_right_led_3_on() : ergodox_right_led_3_off();
return true;
}
void caps_word_set_user(bool active) {
active ? ergodox_right_led_2_on() : ergodox_right_led_2_off();
}
/* Modified to behave correctly with the DV_* keys that map to special
* characters. */
bool caps_word_press_user(uint16_t keycode) {
switch (keycode) {
// Keycodes that continue Caps Word, with shift applied.
case KC_A ... KC_Z:
case KC_MINS:
case DV_MINS: /* KC_QUOT */
case DV_S: /* KC_SCLN */
case DV_V: /* KC_DOT */
case DV_W: /* KC_COMM */
case DV_Z: /* KC_SLSH */
add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key.
return true;
// Keycodes that continue Caps Word, without shifting.
case KC_1 ... KC_0:
case KC_BSPC:
case KC_DEL:
case KC_UNDS:
case DV_UNDS: /* S(KC_QUOT) */
return true;
default:
return false; // Deactivate Caps Word.
}
}

View File

@ -6,7 +6,7 @@ instead of a firmware configuration. This layout is for those who run their comp
* Control & Alt key on the thumbs (activated if pressed with another key).
* In the same way, "U" and "R" are the shift modifier if pressed with another key.
* "I" and "D" set the layer 1 for the auxiliary keys if pressed with another key.
* Software layout set to english.
* Software layout set to English.
## Keymap Layers
- L0: dvorak with some customizations (see layout below)
@ -19,7 +19,7 @@ Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'he
<pre><code>
,--------------------------------------------------. ,--------------------------------------------------.
| | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = |
| ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = |
|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
| ~ | ' | , | . | P | Y | [ | | ] | F | G | C | H | L | / |
|--------|------|------|------|------|------| { | | } |------|------|------|------|------|--------|
@ -27,7 +27,7 @@ Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'he
|--------|------|------|------|------|------| LGUI | | LGUI |------|------|------|------|------|--------|
| {/LSft | ; | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
| | | | | ~L1 | | ~L1 | | | \ | |
| L1 | CAPS | SCRL | INS | ~L1 | | ~L1 | | | \ | L1 |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| HOME | END | | LEFT | RIGHT|
@ -44,21 +44,21 @@ Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'he
<pre><code>
,--------------------------------------------------. ,--------------------------------------------------.
| VolUp | | | | | | SLEEP | PWR | | | | | | |
| VolUp | | | | | | SLEEP | PWR | | | | | | Brigh+ |
|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
| VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
| VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | Brigh- |
|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
| | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
| Mute | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
|--------|------|------|------|------|------| | |PSCR |------|------|------|------|------|--------|
| TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
|CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
| TRANS|CTRL-Z|CTRL-X|CTRL-C|CTRL-S| | TRANS| . | 0 | = | TRANS |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| TRANS| TRANS| | TRANS| TRANS|
,------|------|------| |------|------|------.
| | | TRANS| | TRANS| | |
|TRANS |TRANS |------| |------| TRANS| TRANS|
| Prev | Next |------| |------| Stop | Play |
| | | TRANS| | TRANS| | |
`--------------------' `--------------------'

View File

@ -0,0 +1 @@
CAPS_WORD_ENABLE = yes