mirror of
https://github.com/qmk/qmk_userspace.git
synced 2025-11-08 04:29:58 -05:00
ça marche
This commit is contained in:
parent
4fe2f51a99
commit
152251c6c0
4 changed files with 55 additions and 14 deletions
|
|
@ -23,7 +23,7 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) {
|
||||||
|
|
||||||
uint16_t prev_keycode = recent[RECENT_SIZE - 1];
|
uint16_t prev_keycode = recent[RECENT_SIZE - 1];
|
||||||
|
|
||||||
if (isLetter(next_keycode) || isSendStringMacro(next_keycode)) {
|
/* if (isLetter(next_keycode) || isSendStringMacro(next_keycode)) {
|
||||||
switch (prev_keycode) {
|
switch (prev_keycode) {
|
||||||
case FG_EXLM:
|
case FG_EXLM:
|
||||||
case FG_QUES:
|
case FG_QUES:
|
||||||
|
|
@ -49,12 +49,6 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) {
|
||||||
|
|
||||||
switch (prev_keycode) {
|
switch (prev_keycode) {
|
||||||
|
|
||||||
/* case FG_C:
|
|
||||||
if (next_keycode == FG_A) {
|
|
||||||
invoke_key(FG_U,record);
|
|
||||||
break;
|
|
||||||
} */
|
|
||||||
|
|
||||||
case FG_Q:
|
case FG_Q:
|
||||||
switch (next_keycode) {
|
switch (next_keycode) {
|
||||||
|
|
||||||
|
|
@ -252,6 +246,14 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) {
|
||||||
case AGRV_SPC:
|
case AGRV_SPC:
|
||||||
layer_off(_ODK);
|
layer_off(_ODK);
|
||||||
return finish_word((uint16_t[]) {FG_AGR, KC_SPC}, 2, record);
|
return finish_word((uint16_t[]) {FG_AGR, KC_SPC}, 2, record);
|
||||||
|
} */
|
||||||
|
switch (next_keycode) {
|
||||||
|
case FG_O:
|
||||||
|
if (prev_keycode == FG_U && recent[RECENT_SIZE - 2] != FG_Q) {
|
||||||
|
// "uo" -> "un"
|
||||||
|
return replace_next_key(FG_N, record);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false; // Process next keycode normally
|
return false; // Process next keycode normally
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ unsigned short int bkspc_countdown = RECENT_SIZE + 1;
|
||||||
|
|
||||||
// Copy of the record argument for the clever key.
|
// Copy of the record argument for the clever key.
|
||||||
static keyrecord_t mod_record;
|
static keyrecord_t mod_record;
|
||||||
|
static bool processingCK = false;
|
||||||
|
|
||||||
void clear_recent_keys(void) {
|
void clear_recent_keys(void) {
|
||||||
memset(recent, 0, sizeof(recent)); // Set all zeros (KC_NO).
|
memset(recent, 0, sizeof(recent)); // Set all zeros (KC_NO).
|
||||||
|
|
@ -36,7 +37,7 @@ void recent_keys_task(void) {
|
||||||
|
|
||||||
// Handles one event. Returns false if the key was appended to `recent`.
|
// Handles one event. Returns false if the key was appended to `recent`.
|
||||||
uint16_t get_next_keycode(uint16_t keycode, keyrecord_t* record) {
|
uint16_t get_next_keycode(uint16_t keycode, keyrecord_t* record) {
|
||||||
if (!record->event.pressed) { return KC_NO; }
|
//if (!record->event.pressed) { return KC_NO; }
|
||||||
|
|
||||||
uint8_t mods = get_mods() | get_oneshot_mods();
|
uint8_t mods = get_mods() | get_oneshot_mods();
|
||||||
|
|
||||||
|
|
@ -150,11 +151,17 @@ void invoke_key(uint16_t keycode, keyrecord_t* record) {
|
||||||
bkspc_countdown = 1;
|
bkspc_countdown = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool replace_next_key(uint16_t keycode, keyrecord_t* record) {
|
bool replace_next_key(uint16_t new_keycode, keyrecord_t* record) {
|
||||||
invoke_key(keycode, record);
|
//store_keycode(new_keycode, record);
|
||||||
|
record->keycode = new_keycode;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* bool replace_next_key(uint16_t keycode, keyrecord_t* record) {
|
||||||
|
invoke_key(keycode, record);
|
||||||
|
return true;
|
||||||
|
} */
|
||||||
|
|
||||||
void process_word(uint16_t keycodes[], uint8_t num_keycodes, keyrecord_t* record) {
|
void process_word(uint16_t keycodes[], uint8_t num_keycodes, keyrecord_t* record) {
|
||||||
for (int i = 0; i < num_keycodes; ++i) {
|
for (int i = 0; i < num_keycodes; ++i) {
|
||||||
invoke_key(keycodes[i], record);
|
invoke_key(keycodes[i], record);
|
||||||
|
|
@ -173,8 +180,29 @@ bool finish_magic(uint16_t keycodes[], uint8_t num_keycodes, keyrecord_t* record
|
||||||
return finish_word(keycodes, num_keycodes, record);
|
return finish_word(keycodes, num_keycodes, record);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool process_clever_keys(uint16_t keycode, keyrecord_t* record) {
|
bool process_clever_keys(uint16_t keycode, keyrecord_t* record) {
|
||||||
|
|
||||||
|
//if (record->event.pressed && !processingCK) {
|
||||||
|
if (record->event.pressed) {
|
||||||
|
uint16_t next_keycode = get_next_keycode(keycode, record);
|
||||||
|
|
||||||
|
if (next_keycode != KC_NO) {
|
||||||
|
if (clever_key_finder(next_keycode, record)) {
|
||||||
|
processingCK = true;
|
||||||
|
//return false;
|
||||||
|
}
|
||||||
|
store_keycode(next_keycode, record);
|
||||||
|
}
|
||||||
|
//return true; // If no clever key was found, process keycode normally.
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* bool process_clever_keys(uint16_t keycode, keyrecord_t* record) {
|
||||||
|
|
||||||
|
if (record->event.pressed) {
|
||||||
uint16_t next_keycode = get_next_keycode(keycode, record);
|
uint16_t next_keycode = get_next_keycode(keycode, record);
|
||||||
|
|
||||||
if (next_keycode != KC_NO) {
|
if (next_keycode != KC_NO) {
|
||||||
|
|
@ -182,5 +210,14 @@ bool process_clever_keys(uint16_t keycode, keyrecord_t* record) {
|
||||||
if (clever_key_finder(next_keycode, record)) { return false; }
|
if (clever_key_finder(next_keycode, record)) { return false; }
|
||||||
store_keycode(next_keycode, record);
|
store_keycode(next_keycode, record);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return true; // If no clever key was found, process keycode normally.
|
return true; // If no clever key was found, process keycode normally.
|
||||||
|
} */
|
||||||
|
|
||||||
|
void end_CK(keyrecord_t* record) {
|
||||||
|
if (processingCK) {
|
||||||
|
processingCK = false;
|
||||||
|
record->event.pressed = false;
|
||||||
|
process_record(record);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -43,6 +43,7 @@ bool finish_word(uint16_t keycodes[], uint8_t num_keycodes, keyrecord_t* record)
|
||||||
bool finish_magic(uint16_t keycodes[], uint8_t num_keycodes, keyrecord_t* record);
|
bool finish_magic(uint16_t keycodes[], uint8_t num_keycodes, keyrecord_t* record);
|
||||||
|
|
||||||
bool process_clever_keys(uint16_t keycode, keyrecord_t* record);
|
bool process_clever_keys(uint16_t keycode, keyrecord_t* record);
|
||||||
|
void end_CK(keyrecord_t* record);
|
||||||
|
|
||||||
//bool process_accent(uint16_t accent, uint16_t letter, keyrecord_t* record);
|
//bool process_accent(uint16_t accent, uint16_t letter, keyrecord_t* record);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,7 @@ void post_process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
os4a_layer_exit_check();
|
os4a_layer_exit_check();
|
||||||
numword_exit_check();
|
numword_exit_check();
|
||||||
odk_layer_exit_check(keycode);
|
odk_layer_exit_check(keycode);
|
||||||
|
end_CK(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue