aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@dailly.me>2026-07-24 11:07:47 +0200
committerSébastien Dailly <sebastien@dailly.me>2026-07-24 11:07:47 +0200
commit340ddb0390f4b835e6723616a6a9956b206a7433 (patch)
tree966a3cc90592871fbca6dfe5f55ca123d6ef49bc
parent891b994e5909232ca4c387992a2095e54dd0bfef (diff)
QMK: Two differents layers for the left and right layer keys
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/config.h1
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c24
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/keycodes.h16
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/keymap.c39
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/layer_dance.c77
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/layer_dance.h9
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/lighting.c16
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/overrides.c5
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/overrides.h5
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.c37
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.h6
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/rules.mk1
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/shift_dance.c1
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/star_key.c8
14 files changed, 153 insertions, 92 deletions
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/config.h b/qmk/keyboards/sofle_choc/keymaps/custom/config.h
index 6b9c31c..6f4ea1c 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/config.h
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/config.h
@@ -57,6 +57,7 @@
#define TAPPING_TERM 200
#define TAPPING_TERM_PER_KEY
+#define DEBOUNCE 10
#define COMBO_MUST_PRESS_IN_ORDER
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c
index 4fba73c..a3099e4 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.c
@@ -1,12 +1,11 @@
#include QMK_KEYBOARD_H
-#include "keymap_bepo.h"
#include "keycodes.h"
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
- case KEY_E:
+ case KEY_F:
return 230;
- case KEY_W:
+ case KEY_LOK:
case TD_ENTER:
return 2 * TAPPING_TERM;
default:
@@ -36,28 +35,29 @@ bool keycodes_process_record(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_ESC:
case AL_ENT:
- if (layer_state_is(LAYER_SYMBOLS) && !record->event.pressed) {
+ if (!record->event.pressed && \
+ (layer_state_is(LAYER_KEYPAD) || layer_state_is(LAYER_ARROW) )) {
// Remove the layer the key is released.
layer_clear();
}
return true;
// If a key where released just before, consider we are typing some text
// and not starting a new sequence
- case KEY_E:
+ case KEY_F:
if (record->event.pressed && timer_elapsed32(key_timer) < TAPPING_TERM) {
if (is_caps_word_on()) {
add_oneshot_mods(MOD_MASK_SHIFT);
}
- register_code(BP_E);
+ register_code(KC_F);
return false;
}
return true;
- case KEY_T:
+ case KEY_J:
if (record->event.pressed && timer_elapsed32(key_timer) < TAPPING_TERM) {
if (is_caps_word_on()) {
add_oneshot_mods(MOD_MASK_SHIFT);
}
- register_code(BP_T);
+ register_code(KC_J);
return false;
}
return true;
@@ -65,21 +65,21 @@ bool keycodes_process_record(uint16_t keycode, keyrecord_t *record) {
// Override the key APP when hold into AltGR + Layer 1 when hold
case KEY_APP:
if (!record->tap.count && record->event.pressed) {
- layer_on(1);
+ layer_on(LAYER_ARROW);
register_code(KC_RIGHT_ALT);
return false;
} else if (!record->tap.count && !record->event.pressed) {
unregister_code(KC_RIGHT_ALT);
- layer_off(1);
+ layer_off(LAYER_ARROW);
return false;
}
case KC_LGUI:
if (record->event.pressed) {
- layer_on(1);
+ layer_on(LAYER_ARROW);
}
else {
- layer_off(1);
+ layer_off(LAYER_ARROW);
}
return true;
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.h b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.h
index 4142ed5..730e89d 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.h
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/keycodes.h
@@ -1,31 +1,33 @@
#pragma once
#include QMK_KEYBOARD_H
#include "action.h"
+#include "keymap_bepo.h"
enum {
// Transform the key W into SHIFT or CAPSLOCK
- TD_W_CAPSLOCK,
+ TD_CAPSLOCK,
// Transform the key E into È
TD_EE,
TD_PRC,
- TD_LAYER_SYMB,
+ TD_LAYER_KEYPAD,
+ TD_LAYER_ARROW,
TD_ENTER,
};
enum {
LAYER_BASE,
- LAYER_SYMBOLS,
+ LAYER_KEYPAD, // Layer used mainly on the left side of the keyboard
+ LAYER_ARROW, // Layer used on the right side of the keyboard
LAYER_DIACRITIC,
};
-#define MENU LGUI(BP_I)
#define KEY_APP LT(0, KC_APP)
-#define KEY_W TD(TD_W_CAPSLOCK)
+#define KEY_LOK TD(TD_CAPSLOCK)
#define KEY_PRC TD(TD_PRC)
#define AL_ENT MT(MOD_RALT, KC_ENT)
#define AL_SPC MT(MOD_LALT, KC_SPC)
-#define KEY_E MT(MOD_LCTL, BP_E)
-#define KEY_T MT(MOD_RCTL, BP_T)
+#define KEY_F MT(MOD_LCTL, KC_F)
+#define KEY_J MT(MOD_RCTL, KC_J)
#define KEY_INS MT(MOD_RGUI, KC_INS)
#define TD_ENTR TD(TD_ENTER)
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/keymap.c b/qmk/keyboards/sofle_choc/keymaps/custom/keymap.c
index 6b0c714..7edbf13 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/keymap.c
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/keymap.c
@@ -23,6 +23,7 @@
#include "quad_tapdance.h"
#include "enter_dance.h"
#include "shift_dance.h"
+#include "layer_dance.h"
#include "overrides.h"
#include QMK_KEYBOARD_H
@@ -30,18 +31,23 @@
// The functions for ACTION_TAP_DANCE_FN_ADVANCED or defined in "quand_dance"
tap_dance_action_t tap_dance_actions[] = {
[TD_PRC] = ACTION_TAP_DANCE_DOUBLE(BP_EQL, BP_PERC),
- [TD_W_CAPSLOCK] = ACTION_TAP_DANCE_FN_ADVANCED_WITH_RELEASE(NULL, right_shift_released, right_shift_finished, right_shift_reset),
- [TD_LAYER_SYMB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ql_finished, ql_reset),
+ [TD_CAPSLOCK] = ACTION_TAP_DANCE_FN_ADVANCED_WITH_RELEASE(NULL, right_shift_released, right_shift_finished, right_shift_reset),
+ [TD_LAYER_KEYPAD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, keypad_finished, keypad_reset),
+ [TD_LAYER_ARROW] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, arrow_finished, arrow_reset),
[TD_EE] = ACTION_TAP_DANCE_DOUBLE(BP_COMM, BP_EGRV),
[TD_ENTER] = ACTION_TAP_DANCE_FN_ADVANCED_WITH_RELEASE(NULL, enter_released, enter_finished, enter_reset),
};
-#define LY_SYMB TD(TD_LAYER_SYMB)
+#define LY_KEYPAD TD(TD_LAYER_KEYPAD)
+#define LY_ARROW TD(TD_LAYER_ARROW)
// Activate the layer just for a single key
#define LY_DIACRITIC OSL(LAYER_DIACRITIC)
+#define RGB_UP QK_RGB_MATRIX_VALUE_UP
+#define RGB_DOWN QK_RGB_MATRIX_VALUE_DOWN
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
@@ -62,22 +68,30 @@ 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, 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_SYMB, AL_SPC, TD_ENTR,LY_SYMB, KEY_APP, KEY_INS, LY_DIACRITIC
+ KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, BP_DCIR, BP_V, BP_D, KC_O, BP_J, BP_Z,
+ KC_TAB, KC_A, KC_S, KC_D, KEY_F, KC_G, BP_C, KEY_J, BP_S, BP_R, BP_N, BP_M,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY,BP_QUOT, BP_Q, BP_G, BP_H, BP_F, KEY_LOK,
+ KC_LCTL, KC_DELETE,KC_LGUI,LY_ARROW, AL_SPC, TD_ENTR,LY_KEYPAD, KEY_APP, KEY_INS, LY_DIACRITIC
),
// This layer is used to access to the numeric keypad, functions keys, and also provide some keys used with KC_LGUI
-[LAYER_SYMBOLS] = LAYOUT(
+[LAYER_KEYPAD] = 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_TRNS, KC_P7, KC_P8, KC_P9, KC_BSPC, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, S(BP_EQL),
- KC_TRNS, QK_RGB_MATRIX_VALUE_UP, KC_P4, KC_P5, KEY_6, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_PGUP,
- KC_LSFT, QK_RGB_MATRIX_VALUE_DOWN, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KEY_PGDN,
+ KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_BSPC, KC_TRNS, KC_TRNS, KC_PAST, KC_TRNS, KC_TRNS, S(BP_EQL),
+ KC_TRNS, KC_TRNS, KC_P4, KC_P5, KEY_6, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_PSLS, KC_TRNS, KC_TRNS,
+ KC_LSFT, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_P0, KC_PDOT, KC_TRNS, KC_TRNS, AL_SPC, AL_ENT, KC_TRNS, KC_TRNS, KC_RGUI, KC_TRNS
),
+[LAYER_ARROW] = 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, S(BP_EQL),
+ KC_TRNS, RGB_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_PGUP,
+ KC_LSFT, RGB_DOWN,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KEY_PGDN,
+ KC_TRNS, KC_TRNS, 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, BP_PERC,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -90,7 +104,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#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_KEYPAD] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [LAYER_ARROW] = { 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/layer_dance.c b/qmk/keyboards/sofle_choc/keymaps/custom/layer_dance.c
new file mode 100644
index 0000000..d35d31b
--- /dev/null
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/layer_dance.c
@@ -0,0 +1,77 @@
+#include QMK_KEYBOARD_H
+#include "quad_tapdance.h"
+#include "layer_dance.h"
+
+//
+// Definition for the layer key
+//
+// 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 tapped, in this mode,
+// you can go back into the normal layer by a single press on the key.
+//
+static td_tap_t keypad_tap_state = {
+ .state = TD_NONE
+};
+
+// Functions that control what our tap dance key does
+void keypad_finished(tap_dance_state_t *state, void *user_data) {
+ keypad_tap_state.state = cur_dance(state);
+ switch (keypad_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.
+ //
+ // Here, we control both the keypad or the arrow layers
+ case TD_SINGLE_TAP:
+ if (layer_state_is(LAYER_KEYPAD) || layer_state_is(LAYER_ARROW) ) {
+ layer_clear();
+ } else {
+ layer_on(LAYER_KEYPAD);
+ }
+ break;
+ case TD_SINGLE_HOLD: layer_on(LAYER_KEYPAD); break;
+ default: break;
+ }
+}
+
+void keypad_reset(tap_dance_state_t *state, void *user_data) {
+ // If the key was held down and now is released then switch off the layer
+ if (keypad_tap_state.state == TD_SINGLE_HOLD) {
+ layer_clear();
+ }
+ keypad_tap_state.state = TD_NONE;
+}
+
+// Do the same for the arrow layer.
+static td_tap_t arrow_tap_state = {
+ .state = TD_NONE
+};
+
+// Functions that control what our tap dance key does
+void arrow_finished(tap_dance_state_t *state, void *user_data) {
+ arrow_tap_state.state = cur_dance(state);
+ switch (arrow_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:
+ if (layer_state_is(LAYER_KEYPAD) || layer_state_is(LAYER_ARROW) ) {
+ layer_clear();
+ } else {
+ layer_on(LAYER_ARROW);
+ }
+ break;
+ case TD_SINGLE_HOLD: layer_on(LAYER_ARROW); break;
+ default: break;
+ }
+}
+
+void arrow_reset(tap_dance_state_t *state, void *user_data) {
+ // If the key was held down and now is released then switch off the layer
+ if (arrow_tap_state.state == TD_SINGLE_HOLD) {
+ layer_clear();
+ }
+ arrow_tap_state.state = TD_NONE;
+}
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/layer_dance.h b/qmk/keyboards/sofle_choc/keymaps/custom/layer_dance.h
new file mode 100644
index 0000000..bdca598
--- /dev/null
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/layer_dance.h
@@ -0,0 +1,9 @@
+#pragma once
+#include QMK_KEYBOARD_H
+
+void keypad_finished(tap_dance_state_t *state, void *user_data);
+void keypad_reset(tap_dance_state_t *state, void *user_data);
+
+
+void arrow_finished(tap_dance_state_t *state, void *user_data);
+void arrow_reset(tap_dance_state_t *state, void *user_data);
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c b/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c
index d8e0b6e..827e359 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c
@@ -1,8 +1,7 @@
#include QMK_KEYBOARD_H
- uint8_t flags = 0;
+uint8_t flags = 0;
#include "keycodes.h"
#include "lighting.h"
-#include "keymap_bepo.h"
// The variable is defined in star_key.h
// The LED is on when the key is pressed.
@@ -39,10 +38,10 @@ void housekeeping_task_lighting(void) {
// Colors for the mods
HSV const colors[] = {
hsv_of_color(HSV_BLACK), // 000
- hsv_of_color(55, 255, 255),// 001
- hsv_of_color(HSV_RED), // 010
+ hsv_of_color(55, 255, 255),// 001 Ctrl
+ hsv_of_color(HSV_RED), // 010 Alt
hsv_of_color(HSV_ORANGE),// 011
- hsv_of_color(HSV_CYAN), // 100
+ hsv_of_color(HSV_CYAN), // 100 Shift
hsv_of_color(HSV_GREEN), // 101
hsv_of_color(HSV_PURPLE),// 110
hsv_of_color(HSV_WHITE), // 111
@@ -80,8 +79,6 @@ void housekeeping_task_lighting(void) {
}
}
-#define KEY_6 MT(MOD_LCTL, KC_P6)
-#define KEY_DOWN MT(MOD_RCTL, KC_DOWN)
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
// Activate effects depending of mods
@@ -113,6 +110,7 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
case BP_CCED:
case BP_PERC:
case KC_PDOT:
+ case KC_KP_SLASH ... KC_KP_PLUS:
// Add a bit of red for the punction symbol
set_color(index, 20, 255, 255);
break;
@@ -126,7 +124,7 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
break;
case KC_HOME:
case KC_END:
- set_color(index, HSV_SPRINGGREEN);
+ set_color(index, HSV_GREEN);
break;
case KC_BSPC:
case AL_SPC:
@@ -135,7 +133,7 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
break;
case QK_RGB_MATRIX_VALUE_UP:
case QK_RGB_MATRIX_VALUE_DOWN:
- set_color(index, HSV_GREEN);
+ set_color(index, HSV_SPRINGGREEN);
break;
}
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/overrides.c b/qmk/keyboards/sofle_choc/keymaps/custom/overrides.c
index 0181903..4eeaad5 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/overrides.c
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/overrides.c
@@ -1,5 +1,4 @@
#include QMK_KEYBOARD_H
-#include "keymap_bepo.h"
#include "keycodes.h"
//
@@ -7,7 +6,7 @@
// The symbol is still available in the symbol layer with the key just below.
//
const key_override_t perc_key_override =
- ko_make_basic(MOD_MASK_SHIFT, KEY_PRC, LSFT(BP_PERC));
+ ko_make_basic(MOD_MASK_SHIFT, KEY_PRC, LSFT(KC_EQUAL));
const key_override_t e_key_override =
- ko_make_basic(MOD_MASK_CTRL, KEY_E, RCTL(BP_E));
+ ko_make_basic(MOD_MASK_CTRL, KEY_F, RCTL(KC_F));
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/overrides.h b/qmk/keyboards/sofle_choc/keymaps/custom/overrides.h
index 79836d4..5d983ed 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/overrides.h
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/overrides.h
@@ -1,7 +1,7 @@
#pragma once
-#include "keymap_bepo.h"
#include "keycodes.h"
+#define MENU LGUI(KC_D)
//
// Override the symbol ° and replace it by `
@@ -21,8 +21,7 @@ const key_override_t e_key_override ;
const key_override_t *key_overrides[]= (const key_override_t *[]){
&perc_key_override,
&e_key_override,
- // Override the key GUI + MENU and to map the key desktop from the
- // typematrix
+ // Override the key GUI + MENU and to map the key desktop
&(ko_make_basic(MOD_MASK_GUI, KEY_APP, MENU)),
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.c b/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.c
index 2b01fe9..3efce7c 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.c
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.c
@@ -27,9 +27,7 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_bepo.h"
#include "quad_tapdance.h"
-#include "keycodes.h"
td_state_t cur_dance(tap_dance_state_t *state) {
if (state->count == 1) {
@@ -54,38 +52,3 @@ td_state_t cur_dance(tap_dance_state_t *state) {
else return TD_DOUBLE_TAP;
} else return TD_UNKNOWN;
}
-
-//
-// Definition for the layer key
-//
-// 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 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 = {
- .state = TD_NONE
-};
-
-// Functions that control what our tap dance key does
-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_invert(LAYER_SYMBOLS); break;
- case TD_SINGLE_HOLD: layer_on(LAYER_SYMBOLS); break;
- default: break;
- }
-}
-
-void ql_reset(tap_dance_state_t *state, void *user_data) {
- // If the key was held down and now is released then switch off the layer
- if (ql_tap_state.state == TD_SINGLE_HOLD) {
- layer_clear();
- }
- 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 8f2770c..708adc8 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.h
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/quad_tapdance.h
@@ -1,8 +1,5 @@
#pragma once
-#include "keymap_bepo.h"
-#include "keycodes.h"
-
typedef enum {
TD_NONE,
TD_UNKNOWN,
@@ -18,6 +15,3 @@ typedef struct {
} td_tap_t;
td_state_t cur_dance(tap_dance_state_t *state);
-
-void ql_finished(tap_dance_state_t *state, void *user_data);
-void ql_reset(tap_dance_state_t *state, void *user_data);
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/rules.mk b/qmk/keyboards/sofle_choc/keymaps/custom/rules.mk
index 90eda0e..39886cd 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/rules.mk
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/rules.mk
@@ -15,6 +15,7 @@ SRC += star_key.c \
quad_tapdance.c \
enter_dance.c \
shift_dance.c \
+ layer_dance.c \
keycodes.c \
overrides.c \
lighting.c \
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/shift_dance.c b/qmk/keyboards/sofle_choc/keymaps/custom/shift_dance.c
index 3f779eb..618968f 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/shift_dance.c
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/shift_dance.c
@@ -1,5 +1,4 @@
#include QMK_KEYBOARD_H
-#include "keymap_bepo.h"
#include "quad_tapdance.h"
#include "shift_dance.h"
//
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/star_key.c b/qmk/keyboards/sofle_choc/keymaps/custom/star_key.c
index 4f3cd42..652e3f0 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/star_key.c
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/star_key.c
@@ -30,7 +30,10 @@ void sync_star_key(void) {
}
}
static uint8_t star_number = 0;
-#define LY_SYMB TD(TD_LAYER_SYMB)
+
+#define LY_KEYPAD TD(TD_LAYER_KEYPAD)
+#define LY_ARROW TD(TD_LAYER_ARROW)
+
void star_key_process_record(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_O:
@@ -49,7 +52,8 @@ void star_key_process_record(uint16_t keycode, keyrecord_t *record) {
is_synced = 0;
}
return;
- case LY_SYMB:
+ case LY_KEYPAD:
+ case LY_ARROW:
// Ignore the layer events
return;
default: