Création couche symboles

This commit is contained in:
Kawamashi 2025-03-17 14:01:31 +01:00
commit ff8115ed28
8 changed files with 65 additions and 50 deletions

View file

@ -7,7 +7,7 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) {
uint16_t prev_keycode = recent[RECENT_SIZE - 1];
const uint8_t mods = get_mods();
const bool isCaps = is_caps_lock_on() || is_caps_word_on();
//const bool isCaps = is_caps_lock_on() || is_caps_word_on();
if (isLetter(next_keycode) || next_keycode == E_CIRC) {
switch (prev_keycode) {
@ -195,7 +195,8 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) {
break;
case FR_A:
if (prev_keycode == FR_O && !isCaps) {
//if (prev_keycode == FR_O && !isCaps) {
if (prev_keycode == FR_O) {
// "oa" -> "oi"
clear_recent_keys(); // To prevent infinite loop
return replace_next_key(FR_I, record);
@ -203,7 +204,8 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) {
break;
case FR_I:
if (prev_keycode == FR_O && !isCaps && recent[RECENT_SIZE - 3] != FR_Q) {
//if (prev_keycode == FR_O && !isCaps && recent[RECENT_SIZE - 3] != FR_Q) {
if (prev_keycode == FR_O && recent[RECENT_SIZE - 3] != FR_Q) {
// "oi" -> "oa", for "keyboard"
clear_recent_keys(); // To prevent infinite loop
return replace_next_key(FR_A, record);
@ -243,6 +245,15 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) {
case I_TREM:
return process_accent(FR_TREM, FR_I, record);
case CIRC:
return process_accent(FR_ACIR, KC_SPC, record);
case TILDE:
return process_accent(FR_TILD, KC_SPC, record);
case GRAVE:
return process_accent(FR_GRV, KC_SPC, record);
}
return false; // Process next keycode normally

View file

@ -35,7 +35,7 @@ bool process_macros(uint16_t keycode, keyrecord_t *record) {
case _BASE:
tap_code(KC_F13);
return false;
case _SYMNUM:
case _SYMBOLS:
tap_code(KC_F14);
return false;
case _SHORTNAV:

View file

@ -28,13 +28,13 @@ bool is_num_word_enabled(void) {
void enable_num_word(void) {
//if (is_num_word_on) return;
is_num_word_on = true;
layer_on(_SYMNUM);
layer_on(_NUMBERS);
}
void disable_num_word(void) {
//if (!is_num_word_on) return;
is_num_word_on = false;
layer_off(_SYMNUM);
layer_off(_NUMBERS);
exit_num_word = false;
}
@ -53,20 +53,22 @@ bool should_terminate_num_word(uint16_t keycode, const keyrecord_t *record) {
// Keycodes which should not disable num word mode.
// Numpad keycodes
/* case KC_P1 ... KC_P0:
case KC_PDOT:
case FR_SLSH: */
case KC_P1 ... KC_P0:
case KC_PDOT:
case FR_VIRG:
case FR_MOIN:
case FR_ASTX:
case FR_PLUS:
case FR_SLSH:
case FR_ACIR:
case FR_CARN:
// Misc
case KC_BSPC:
case NUMWORD: // For the combo NUMWORD to work
/* case FR_MOIN:
/*
case FR_EGAL:
case FR_ACIR:
case FR_VIRG:
case FR_ASTX:
case FR_PLUS:
case FR_BSLS:
// Misc
@ -79,7 +81,7 @@ bool should_terminate_num_word(uint16_t keycode, const keyrecord_t *record) {
return false; */
}
if (!on_left_hand(record->event.key)) { return false; }
//if (!on_left_hand(record->event.key)) { return false; }
return true;
}

View file

@ -70,7 +70,7 @@ const custom_altgr_key_t custom_altgr_keys[] = {
//{FR_I, FR_LDAQ},
//{FR_T, FR_RDAQ},
{FR_J, FR_CURR},
{FR_H, FR_HASH},
//{FR_H, FR_HASH},
{FR_Q, FR_SECT},
{KC_KP_8, FR_INFN},
{FR_F, FR_DEG}
@ -95,6 +95,7 @@ bool os4a_layer_changer(uint16_t keycode) {
case OS_FA:
case NUMWORD:
case TT_FA:
case OS_SN:
return true;
default:
return false;
@ -143,6 +144,7 @@ bool is_oneshot_ignored_key(uint16_t keycode) {
case OS_LALT:
case OS_WIN:
case OS_FA:
case OS_SN:
case NUMWORD:
case TT_FA:
return true;

View file

@ -237,7 +237,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, FR_AGRV, FR_B, FR_EACU, FR_POIN, FR_MOIN, FR_ACIR, FR_V, FR_L, FR_M, FR_X, FR_W,
KC_ENT, ALT_T(FR_O), SFT_T(FR_U), ALGR_T(FR_A), LCTL_T(FR_I), FR_J, FR_G, RCTL_T(FR_T), ALGR_T(FR_S), RSFT_T(FR_N), ALT_T(FR_R), FR_F,
LT_TAB, FR_Q, FR_Y, FR_EGRV, LWIN_T(FR_P), FR_DQUO, KC_BSPC, KC_END, KC_HOME, KC_DEL, FR_K, RWIN_T(FR_D), FR_Z, FR_H, FR_C, LT_CCED,
TG(_SYMNUM), KC_SPC, OSM(MOD_LSFT), LT(_SYMNUM,FR_E), LT_VIRG, LT_APOS, LT(_SYMNUM,KC_SPC), OSM(MOD_RSFT), KC_RGUI, KC_MUTE
TG(_SYMBOLS), KC_SPC, OSM(MOD_LSFT), LT(_SYMBOLS,FR_E), LT_VIRG, LT_APOS, LT(_SYMBOLS,KC_SPC), OSM(MOD_RSFT), KC_RGUI, KC_MUTE
),
@ -255,7 +255,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | , | | | | |
* `----------------------------------' `----------------------------------'
*/
[_SYMNUM] = LAYOUT(
[_SYMBOLS] = LAYOUT(
KC_ESC, FR_EXLM, FR_QUES, FR_ESPR, FR_PVIR, FR_PIPE, FR_MOIN, KC_P7, KC_P8, KC_P9, FR_ASTX, KC_NUM,
_______, FR_LACL, SFT_T(FR_RACL), ALGR_T(FR_LPRN), FR_RPRN, LAYER_LCK, FR_EGAL, RCTL_T(KC_P4), ALGR_T(KC_P5), KC_P6, FR_SLSH, FR_BSLS,
_______, FR_LBKT, FR_RBKT, FR_INF, FR_SUP, FR_CARN, _______, _______, _______, _______, FR_ACIR, KC_P1, KC_P2, KC_P3, FR_PLUS, FR_PERC,

View file

@ -25,6 +25,7 @@ uint16_t global_quick_tap_timer = 0;
bool forbidden_chord(uint16_t tap_hold_keycode, keyrecord_t* tap_hold_record, uint16_t other_keycode, keyrecord_t* other_record) {
switch (tap_hold_keycode) {
case LT_REPT:
case LT_MGC:
return false;
}
@ -156,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------' `----------------------------------'
*/
[_L_MODS] = LAYOUT(
KC_NO, KC_NO, KC_NO, OS_WIN, KC_RGUI, KC_NO, _______, _______, _______, _______, _______, _______,
KC_NO, KC_NO, OS_SN, OS_WIN, KC_RGUI, KC_NO, _______, _______, _______, _______, _______, _______,
KC_NO, OS_RALT, OS_FA, OS_CTRL, OS_SHFT, KC_NO, _______, _______, _______, _______, _______, _______,
KC_NO, OS_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______,
KC_NO, KC_NO, _______, _______, _______, CAPSWORD, _______, KC_CAPS, _______, _______
@ -197,11 +198,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | , | | | | |
* `----------------------------------' `----------------------------------'
*/
[_SYMNUM] = LAYOUT(
KC_NO, FR_PIPE, FR_ESPR, FR_UNDS, FR_PVIR, FR_ACIR, FR_MOIN, KC_P7, KC_P8, KC_P9, FR_ASTX, _______,
_______, ALGR_T(FR_LACL), FR_RACL, FR_LPRN, SFT_T(FR_RPRN), FR_CARN, FR_EGAL, KC_P4, KC_P5, KC_P6, ALGR_T(FR_SLSH), _______,
_______, FR_LBKT, FR_RBKT, FR_INF, FR_SUP, KC_NO, _______, _______, _______, _______, KC_NO, KC_P1, KC_P2, KC_P3, FR_PLUS, _______,
_______, _______, _______, KC_SPC, LT_VIRG, NUMWORD, KC_P0, KC_PDOT, _______, _______
[_SYMBOLS] = LAYOUT(
_______, CIRC, FR_EXLM, FR_EGAL, FR_DLR, FR_AROB, FR_HASH, FR_INF, FR_SUP, FR_QUES, FR_2PTS, _______,
_______, FR_ASTX, FR_PLUS, FR_MOIN, FR_SLSH, FR_BSLS, GRAVE, FR_LPRN, FR_RPRN, FR_PVIR, FR_DQUO, _______,
_______, FR_PERC, TILDE, FR_PIPE, FR_ESPR, KC_NO, _______, _______, _______, _______, KC_NO, FR_LACL, FR_RACL, FR_LBKT, FR_RBKT, _______,
_______, _______, _______, FR_UNDS, _______, _______, FR_UNDS, KC_PDOT, _______, _______
),
/*
@ -218,12 +219,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | , | | | | |
* `----------------------------------' `----------------------------------'
*/
/* [_NUMPAD] = LAYOUT(
_______, _______, _______, _______, _______, FR_ACIR, FR_MOIN, KC_P7, KC_P8, KC_P9, FR_ASTX, _______,
OSM(MOD_LGUI), OSM(MOD_LALT), OSM(MOD_RSFT), OSM(MOD_RALT), OSM(MOD_LCTL), FR_CARN, FR_EGAL, KC_P4, KC_P5, KC_P6, FR_SLSH, FR_BSLS,
_______, KC_SPC, _______, _______, _______, KC_NO, _______, _______, _______, _______, KC_NO , KC_P1, KC_P2, KC_P3, FR_PLUS, _______,
_______, _______, _______, KC_SPC , FR_VIRG, NUMWORD, KC_P0, KC_PDOT, _______, _______
), */
[_NUMBERS] = LAYOUT(
_______, _______, _______, FR_ASTX, _______, FR_ACIR, _______, _______, FR_PLUS, FR_MOIN, _______, _______,
_______, KC_P8, KC_P6, KC_P4, KC_P2, FR_CARN, _______, KC_KP_1, KC_P3, KC_P5, KC_P7, _______,
_______, _______, _______, _______, FR_SLSH, _______, _______, _______, _______, _______, _______, KC_P9, _______, _______, _______, _______,
_______, _______, FR_VIRG, KC_P0 , NUMWORD, LT_REPT, KC_SPC, KC_PDOT, _______, _______
),
/*
* Layer 2 : Symbols
@ -261,18 +262,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------' `----------------------------------'
*/
[_ACCENTS] = LAYOUT(
_______, O_CIRC, A_CIRC, I_CIRC, U_CIRC, FR_LDAQ , FR_RDAQ, FR_TREM, FR_GRV, FR_ACIR, FR_CEDL, _______,
_______, OU_GRV, FR_AGRV, FR_DQUO, FR_MOIN, ALGR(FR_G), _______, FR_J, _______, FR_AROB, _______, _______,
_______, O_CIRC, A_CIRC, I_CIRC, U_CIRC, FR_LDAQ , FR_RDAQ, FR_3PTS, FR_MOIN, FR_APOS, FR_POIN, _______,
_______, OU_GRV, FR_AGRV, FR_MOIN, FR_DQUO, ALGR(FR_G), FR_SS, FR_J, TILDE, FR_AROB, _______, _______,
_______, FR_OE, FR_AE, I_TREM, CA_CED, _______ , _______, _______, _______, _______, _______, FR_CCED, FR_TREM, FR_K, TG_ACC, _______,
_______, _______, _______ , FR_EGRV, E_CIRC, _______, AGRV_SPC, _______, _______, _______
),
/* [_ACCENTS] = LAYOUT(
_______, _______, _______, _______, _______, FR_LDAQ , FR_RDAQ, U_CIRC, I_CIRC, A_CIRC, O_CIRC, _______,
_______, _______, FR_DQUO, _______, FR_J, ALGR(FR_G), _______, FR_AROB, FR_MOIN, FR_K, OU_GRV, _______,
_______, _______, FR_AGRV, I_TREM, CA_CED, _______ , _______, _______, _______, _______, _______, FR_CCED, FR_UNDS, FR_AE, FR_OE, _______,
_______, _______, _______ , FR_EGRV, E_CIRC, _______, AGRV_SPC, _______, _______, _______
), */
/*
* Layer 3 : Symbols + function keys
@ -289,10 +284,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------' `----------------------------------'
*/
[_SHORTNAV] = LAYOUT(
_______, KC_BSPC, LWIN(KC_TAB), LWIN(FR_V), RCS(FR_V), _______, KC_PGUP, C(KC_LEFT), KC_UP, C(KC_RGHT), _______, _______,
_______, C(FR_A), C(FR_X), C(FR_V), SFT_T(COPY), _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F2 , _______,
_______, KC_SPC, KC_SPC, KC_SPC, C(FR_Z), C(FR_Y), _______, S(KC_END), S(KC_HOME), _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
_______, KC_BSPC, LWIN(KC_TAB), LWIN(FR_V), RCS(FR_V), _______, KC_PGUP, C(KC_LEFT), KC_UP, C(KC_RGHT), _______, _______,
_______, C(FR_A), C(FR_X), C(FR_V), SFT_T(COPY), _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F2 , _______,
_______, KC_SPC, KC_SPC, KC_SPC, C(FR_Z), C(FR_Y), _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/*

View file

@ -34,7 +34,8 @@ enum layers {
// OS4A layers should be as closed as base layer as possible
_L_MODS,
_R_MODS,
_SYMNUM,
_SYMBOLS,
_NUMBERS,
_ACCENTS,
_SHORTNAV,
_FUNCAPPS,
@ -60,6 +61,9 @@ enum custom_keycodes {
U_CIRC,
I_TREM,
CA_CED,
CIRC,
TILDE,
GRAVE,
MAGIC,
OS_SHFT,
OS_CTRL,
@ -69,15 +73,16 @@ enum custom_keycodes {
};
// Layer taps
#define LT_SPC LT(_SYMNUM,KC_SPC)
#define LT_E LT(_SYMNUM,FR_E)
#define LT_REPT LT(_SHORTNAV, KC_0)
#define LT_MGC LT(_SHORTNAV, KC_1)
#define LT_D LT(_FUNCAPPS, FR_D)
#define LT_C LT(_FUNCAPPS, FR_C)
#define LT_SPC LT(_SYMBOLS,KC_SPC)
#define LT_E LT(_SYMBOLS,FR_E)
#define LT_REPT LT(_NUMBERS, KC_0)
#define LT_MGC LT(_SHORTNAV, KC_0)
#define LT_D FR_D
#define LT_C FR_C
#define LT_VIRG LT(_SHORTNAV, FR_VIRG)
#define OS_ACC OSL(_ACCENTS)
#define OS_FA OSL(_FUNCAPPS)
#define OS_SN OSL(_SHORTNAV)
#define TT_FA TT(_FUNCAPPS)
#define TG_ACC TG(_ACCENTS)

View file

@ -53,7 +53,7 @@ bool oled_task_user(void) {
case _R_MODS:
oled_write_P(PSTR("Mods D\n"), false);
break;
case _SYMNUM:
case _SYMBOLS:
oled_write_P(PSTR("SymNum\n"), false);
break;
case _SHORTNAV: