diff options
author | Sébastien Dailly <sebastien@dailly.me> | 2025-10-06 11:09:09 +0200 |
---|---|---|
committer | Sébastien Dailly <sebastien@dailly.me> | 2025-10-06 11:09:09 +0200 |
commit | 6f07047180a2e6b189200c18cafe5b4ccc9d2997 (patch) | |
tree | 5b2c484ae43b7f934c4c05216fd5b5c1e387a883 /qmk/keyboards/sofle_choc | |
parent | 08d739a701e0068047437b5012e42c53068fee48 (diff) |
Diffstat (limited to 'qmk/keyboards/sofle_choc')
6 files changed, 52 insertions, 50 deletions
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c index 1d9c017..802a97f 100644 --- a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c +++ b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c @@ -125,19 +125,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } return true; - // Here, the key KC_BSPC become È when used inside a sequence, but we still - // allow the repetition of KC_BSPC. - case KC_BSPC: - if (record->event.pressed \ - && timer_elapsed32(key_timer) < (TAPPING_TERM / 2) \ - && latest_key != keycode) - { - // I completely rewrite the key here, that’s why I’m using tap_code16 - // instead of register_code. - tap_code16(BP_EGRV); - return false; - } - return true; // Override the key APP when hold into AltGR + Layer 1 when hold case KEY_APP: diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.h b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.h index 9bf6290..8ae3fc1 100644 --- a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.h +++ b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.h @@ -15,7 +15,7 @@ enum { enum { LAYER_BASE, LAYER_SYMBOLS, - RIGHT_CTRL, + LAYER_DIACRITIC, }; #define MENU LGUI(BP_I) diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/keymap.c b/qmk/keyboards/sofle_choc/keymaps/custom/keymap.c index 72620c6..4c9dc13 100644 --- a/qmk/keyboards/sofle_choc/keymaps/custom/keymap.c +++ b/qmk/keyboards/sofle_choc/keymaps/custom/keymap.c @@ -25,6 +25,7 @@ #include QMK_KEYBOARD_H // Declare the tapdance table here. +// The functions for ACTION_TAP_DANCE_FN_ADVANCED or defined in "quand_dance" tap_dance_action_t tap_dance_actions[] = { [TD_C_CCED] = ACTION_TAP_DANCE_DOUBLE(BP_C, BP_CCED), [TD_PRC] = ACTION_TAP_DANCE_DOUBLE(BP_EQL, BP_PERC), @@ -35,18 +36,19 @@ tap_dance_action_t tap_dance_actions[] = { -#define LY_SYMBOL TD(TD_LAYER_SYMB) +#define LY_SYMB TD(TD_LAYER_SYMB) +#define LY_DIACRITIC MO(LAYER_DIACRITIC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * BÉPO * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | `% | + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | `% | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | B | É | P | O | È | | ! | V | D | L | J | Z | + * | $ | B | É | P | O | È | | ! | V | D | L | J | Z | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | A | U | I | E | ;È |-------. ,-------| CÇ | T | S | R | N | M | + * | Tab | A | U | I | E | ; |-------. ,-------| CÇ | T | S | R | N | M | * |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------| * |LShift| À | Y | X | : | K |-------| |-------| ? | Q | G | H | F | W | * `-----------------------------------------/ / \ \-----------------------------------------' @@ -57,10 +59,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_BASE] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KEY_PRC, - BP_DLR, BP_B, BP_EACU, BP_P, BP_O, KC_BSPC, BP_DCIR, BP_V, BP_D, KC_O, BP_J, BP_Z, - KC_TAB, BP_A, BP_U, BP_I, KEY_E, KEY_EE, KEY_C, KEY_T, BP_S, BP_R, BP_N, BP_M, + BP_DLR, BP_B, BP_EACU, BP_P, BP_O, BP_EGRV, BP_DCIR, BP_V, BP_D, KC_O, BP_J, BP_Z, + KC_TAB, BP_A, BP_U, BP_I, KEY_E, BP_COMM, BP_C, KEY_T, BP_S, BP_R, BP_N, BP_M, KC_LSFT, BP_AGRV,BP_Y, BP_X, BP_DOT, KC_B, KC_MUTE, KC_MPLY,BP_QUOT, BP_Q, BP_G, BP_H, BP_F, KEY_W, - KC_LCTL, KC_DELETE,KC_LGUI,LY_SYMBOL,AL_SPC, AL_ENT, LY_SYMBOL,KEY_APP, KEY_INS, KC_RCTL + KC_LCTL, KC_DELETE,KC_LGUI,LY_SYMB, AL_SPC, AL_ENT, LY_SYMB, KEY_APP, KEY_INS, LY_DIACRITIC ), // In the number layout, I keep the mod-tap modifiers applies to the middle letters : @@ -71,17 +73,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // This layer is used to access to the numeric keypad, functions keys, and also provide some keys used with KC_LGUI [LAYER_SYMBOLS] = LAYOUT( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_NO, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, S(BP_EQL), - KC_TRNS, KC_NO, KC_P4, KEY_5, KC_P6, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_PGUP, - KC_LSFT, KC_NO, KC_P1, KC_P2, KC_P3, KC_NO, KC_MUTE, KC_MPLY,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KEY_PGDN, - KC_P0, KC_PDOT, KC_TRNS, LY_SYMBOL,AL_SPC, AL_ENT, LY_SYMBOL,KC_TRNS, KC_RGUI, KC_TRNS + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_NO, KC_P7, KC_P8, KC_P9, KC_BSPC, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, S(BP_EQL), + KC_TRNS, KC_NO, KC_P4, KEY_5, KC_P6, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_PGUP, + KC_LSFT, KC_NO, KC_P1, KC_P2, KC_P3, KC_NO, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KEY_PGDN, + KC_P0, KC_PDOT, KC_TRNS, KC_TRNS, AL_SPC, AL_ENT, KC_TRNS, KC_TRNS, KC_RGUI, KC_TRNS +), + +[LAYER_DIACRITIC] = 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_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BP_CCED, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [LAYER_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(QK_MOUSE_WHEEL_UP, QK_MOUSE_WHEEL_DOWN) }, - [LAYER_SYMBOLS] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [LAYER_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(QK_MOUSE_WHEEL_UP, QK_MOUSE_WHEEL_DOWN) }, + [LAYER_SYMBOLS] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [LAYER_DIACRITIC] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; #endif diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c b/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c index fd491e6..525d0c4 100644 --- a/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c +++ b/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c @@ -113,6 +113,10 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { case KEY_5: rgb_matrix_set_color(index, 100, 100, 0); break; + case KC_PDOT: + // Add a bit of red for the punction symbol + rgb_matrix_set_color(index, 150, 50, 0); + break; case KC_RIGHT: case KEY_DOWN: case KC_LEFT ... KC_UP: @@ -124,6 +128,7 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { case KC_END: rgb_matrix_set_color(index, RGB_SPRINGGREEN); break; + case KC_BSPC: case AL_SPC: case AL_ENT: set_color(index, HSV_BLUE); diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.c b/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.c index 4a30d75..8c1e4e9 100644 --- a/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.c +++ b/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.c @@ -34,7 +34,7 @@ td_state_t cur_dance(tap_dance_state_t *state) { if (state->count == 1) { // The function can be called when the delay is over, or because of - // another tap. + // another tap. // I do not check here if the delay is over, as soon as another tap // occurs, I check the state of the key and switch in hold mode if the // key is still pressed. @@ -77,16 +77,19 @@ static td_tap_t w_tap_state = { void w_finished(tap_dance_state_t *state, void *user_data) { w_tap_state.state = cur_dance(state); switch (w_tap_state.state) { - case TD_SINGLE_TAP: + case TD_SINGLE_TAP: register_code(BP_W); break; case TD_DOUBLE_TAP: + caps_word_on(); + break; case TD_DOUBLE_SINGLE_TAP: - caps_word_on(); + register_code(BP_W); + register_code(BP_W); break; - case TD_SINGLE_HOLD: - case TD_DOUBLE_HOLD: - caps_word_off(); - register_code(KC_RIGHT_SHIFT); + case TD_SINGLE_HOLD: + case TD_DOUBLE_HOLD: + caps_word_off(); + register_code(KC_RIGHT_SHIFT); break; default: break; } @@ -96,7 +99,10 @@ void w_reset(tap_dance_state_t *state, void *user_data) { switch (w_tap_state.state) { case TD_SINGLE_TAP: unregister_code(BP_W); break; case TD_SINGLE_HOLD: unregister_code(KC_RIGHT_SHIFT); break; - case TD_DOUBLE_SINGLE_TAP: unregister_code(BP_W); break; + case TD_DOUBLE_SINGLE_TAP: + unregister_code(BP_W); + unregister_code(BP_W); + break; default: break; } w_tap_state.state = TD_NONE; @@ -108,9 +114,10 @@ void w_reset(tap_dance_state_t *state, void *user_data) { // The only one usage is to activate the layer over the keyboard, but there is // two way of doing it: // -// The first mode, when hold, is to activate the layer as long as the key is pressed. -// The second one is to switch in the layer mode when double tapped, in this -// mode, you can go back into the normal layer by a single press on the key. +// The first mode, when hold, is to activate the layer as long as the key is +// pressed. +// The second one is to switch in the layer mode when tapped, in this mode, +// you can go back into the normal layer by a single press on the key. // static td_tap_t ql_tap_state = { .is_press_action = true, @@ -121,11 +128,10 @@ static td_tap_t ql_tap_state = { void ql_finished(tap_dance_state_t *state, void *user_data) { ql_tap_state.state = cur_dance(state); switch (ql_tap_state.state) { - // Remove the layer with a single tap, this way I always have a key to remove the - // the layer, without knowing the previous state I had. - case TD_SINGLE_TAP: layer_off(LAYER_SYMBOLS); break; + // Remove the layer with a single tap, this way I always have a key to + // remove the the layer, without knowing the previous state I had. + case TD_SINGLE_TAP: layer_invert(LAYER_SYMBOLS); break; case TD_SINGLE_HOLD: layer_on(LAYER_SYMBOLS); break; - case TD_DOUBLE_TAP: layer_invert(LAYER_SYMBOLS); break; default: break; } } @@ -137,6 +143,3 @@ void ql_reset(tap_dance_state_t *state, void *user_data) { } ql_tap_state.state = TD_NONE; } - -// -// diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.h b/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.h index 92ce430..8d67282 100644 --- a/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.h +++ b/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.h @@ -28,7 +28,3 @@ void w_reset(tap_dance_state_t *state, void *user_data); void ql_finished(tap_dance_state_t *state, void *user_data); void ql_reset(tap_dance_state_t *state, void *user_data); - -void lshift_finished(tap_dance_state_t *state, void *user_data); -void lshift_reset(tap_dance_state_t *state, void *user_data); - |