Corrections FW Propergol

This commit is contained in:
Kawamashi 2025-05-01 22:27:54 +02:00
commit c324b051f9
13 changed files with 84 additions and 67 deletions

View file

@ -0,0 +1,5 @@
{
"files.associations": {
"ppg.C": "cpp"
}
}

View file

@ -38,7 +38,7 @@ void get_clever_keycode(uint16_t* next_keycode, keyrecord_t* record) {
case PG_EXCL:
case PG_QUES:
case PG_3PTS:
case PG_X:
case PG_POIN:
// Add OS shift at the beginning of sentences.
if (!is_caps_lock_on()) { set_oneshot_mods(MOD_BIT(KC_LSFT)); }
break;
@ -57,25 +57,25 @@ void get_clever_keycode(uint16_t* next_keycode, keyrecord_t* record) {
case PG_I:
case PG_A:
case PG_O:
case PG_U:
case PG_EACU:
case PG_APOS:
invoke_key(PG_L, record);
invoke_key(PG_U, record);
set_last_keycode(*next_keycode);
break;
// Raccourci pour "quelq"
case PG_Q:
process_word((uint16_t[]) {PG_L, PG_E, PG_C}, 3, record);
process_word((uint16_t[]) {PG_U, PG_E, PG_L}, 3, record);
break;
// Raccourci pour "quoi", ça évite un aller-retour sur la main gauche.
case PG_Z:
finish_word((uint16_t[]) {PG_L, PG_O, PG_I}, 3, next_keycode, record);
finish_word((uint16_t[]) {PG_U, PG_O, PG_I}, 3, next_keycode, record);
break;
// Raccourci pour "quand"
case PG_H:
process_word((uint16_t[]) {PG_L, PG_A, PG_S}, 3, record);
case PG_D:
process_word((uint16_t[]) {PG_U, PG_A, PG_N}, 3, record);
set_last_keycode(*next_keycode);
break;
}
@ -153,6 +153,14 @@ void get_clever_keycode(uint16_t* next_keycode, keyrecord_t* record) {
bkspc_countdown = 0;
return replace_ongoing_key(PG_VIRG, next_keycode, record);
case PG_P:
// ph SFB
bkspc_countdown = 0;
return replace_ongoing_key(PG_H, next_keycode, record);
case PG_Q:
return finish_word((uint16_t[]) {PG_U, PG_EACU}, 2, next_keycode, record);
case PG_T:
invoke_key(PG_I, record);
case PG_I:
@ -207,17 +215,17 @@ void get_clever_keycode(uint16_t* next_keycode, keyrecord_t* record) {
case PG_P:
// "p@" -> "peut-être"
layer_off(_ODK);
return finish_word((uint16_t[]) {PG_E, PG_L, PG_N, PG_MOIN, PG_ODK, PG_O, PG_N, PG_R, PG_E}, 9, next_keycode, record);
return finish_word((uint16_t[]) {PG_E, PG_U, PG_T, PG_MOIN, PG_ODK, PG_O, PG_T, PG_R, PG_E}, 9, next_keycode, record);
case PG_A:
// "a@" -> "aujourd'hui"
layer_off(_ODK);
return finish_word((uint16_t[]) {PG_L, PG_J, PG_O, PG_L, PG_R, PG_H, PG_APOS, PG_F, PG_L, PG_I}, 10, next_keycode, record);
return finish_word((uint16_t[]) {PG_U, PG_J, PG_O, PG_U, PG_R, PG_D, PG_APOS, PG_H, PG_U, PG_I}, 10, next_keycode, record);
case PG_B:
// "b@" -> "beaucoup"
layer_off(_ODK);
return finish_word((uint16_t[]) {PG_E, PG_A, PG_L, PG_D, PG_O, PG_L, PG_P}, 7, next_keycode, record);
return finish_word((uint16_t[]) {PG_E, PG_A, PG_U, PG_C, PG_O, PG_U, PG_P}, 7, next_keycode, record);
/* case PG_E:
// "e@" -> "est-ce qu"
@ -235,12 +243,20 @@ void get_clever_keycode(uint16_t* next_keycode, keyrecord_t* record) {
case PG_Q:
if (prev_keycode == PG_J) {
// "jq" -> "jusqu"
process_word((uint16_t[]) {PG_L, PG_T}, 2, record);
process_word((uint16_t[]) {PG_U, PG_S}, 2, record);
set_last_keycode(*next_keycode);
return;
}
break;
case PG_M:
if (prev_keycode == PG_C) {
// "cm" -> "ch"
bkspc_countdown = 0;
return replace_ongoing_key(PG_H, next_keycode, record);
}
break;
case PG_A:
//if (prev_keycode == PG_O && !isCaps) {
if (prev_keycode == PG_O) {
@ -263,6 +279,10 @@ void get_clever_keycode(uint16_t* next_keycode, keyrecord_t* record) {
layer_off(_ODK);
return finish_word((uint16_t[]) {PG_O, PG_ODK, PG_N}, 3, next_keycode, record);
case PG_APOS:
if (is_apos_dr) { return replace_ongoing_key(PG_APOD, next_keycode, record); }
break;
/* case CA_CED:
layer_off(_ODK);
return finish_word((uint16_t[]) {PG_CCED, PG_A}, 2, next_keycode, record); */

View file

@ -81,7 +81,7 @@ uint16_t get_ongoing_keycode(uint16_t keycode, keyrecord_t* record) {
case PG_J:
case PG_AROB:
case PG_ECIR:
case PG_CCED:
//case PG_CCED:
case PG_3PTS:
case KC_SPC: // In order to uppercase J after '?' for ex.
return keycode;

View file

@ -16,7 +16,7 @@
#include "macros.h"
bool is_odk_shifted = false;
bool is_apos_dr = false;
bool process_macros(uint16_t keycode, keyrecord_t *record) {
//const uint8_t mods = get_mods();
@ -66,6 +66,10 @@ bool process_macros(uint16_t keycode, keyrecord_t *record) {
if (is_caps_lock_on()) { tap_code(KC_CAPS); }
caps_word_toggle();
return false;
case TG_APOS:
is_apos_dr = !is_apos_dr;
return false;
}
}
return true; // Process all other keycodes normally

View file

@ -22,7 +22,8 @@
#ifdef __cplusplus
extern "C" {
#endif
extern bool is_odk_shifted;
extern bool is_apos_dr;
bool process_macros(uint16_t keycode, keyrecord_t *record);

View file

@ -60,7 +60,7 @@ bool should_exit_num_word(uint16_t keycode, const keyrecord_t *record) {
case PG_MOIN:
case PG_ASTX:
case PG_PLUS:
case PG_TLSH:
case PG_SLSH:
case PG_ACIR:
case PG_CARN:

View file

@ -23,7 +23,7 @@ bool is_num_word_enabled(void);
extern bool is_num_word_on;
void enable_num_word(void);
extern void disable_num_word(void);
void disable_num_word(void);
void toggle_num_word(void);
bool process_numword(uint16_t keycode, const keyrecord_t *record);

View file

@ -63,9 +63,9 @@ bool process_odk_layer(uint16_t keycode, keyrecord_t *record) {
case PG_AROB:
case PG_K:
case PG_J:
case PG_ECIR:
//case PG_ECIR:
case OU_GRV:
case PG_CCED:
//case PG_CCED:
//case CA_CED:
//case AGRV_SPC:
case KC_SPC: // When space is added by Clever Keys
@ -82,7 +82,7 @@ bool process_odk_layer(uint16_t keycode, keyrecord_t *record) {
} */
tap_code(PG_ODK);
}
if (!IS_LAYER_ON(_APOS_DR)) {
if (!is_apos_dr) {
switch (keycode) {
case PG_M:
case PG_C:

View file

@ -23,6 +23,7 @@ bool isLetter(uint16_t keycode) {
case KC_A ... KC_F:
case KC_H ... KC_N:
case KC_R ... KC_Z:
case PG_L:
case PG_X:
case PG_E:
//case PG_AGR:
@ -136,7 +137,7 @@ bool os4a_layer_changer(uint16_t keycode) {
case OS_FA:
case NUMWORD:
case TT_FA:
case TG_APOD:
//case TG_APOD:
return true;
default:
return false;
@ -173,9 +174,9 @@ bool is_oneshot_ignored_key(uint16_t keycode) {
// Alt-gr et shift s'appliquent à la touche typo, pour permettre de faire les majuscules plus facilement ainsi que ] avec.
// Autrement, la touche typo est ignorée par les Callum mods.
// Ça permet de transmettre les mods à la touche suivante, par ex pour faire Ctrl + K.
//uint8_t mods = get_mods() | get_weak_mods() | get_oneshot_mods();
uint8_t mods = get_mods() | get_weak_mods() | get_oneshot_mods();
//if (keycode == OS_ODK && (mods & ~(MOD_MASK_SHIFT | MOD_BIT(KC_ALGR)))) { return true;}
//if (keycode == OS_ODK && (mods & ~MOD_BIT(KC_ALGR))) { return true;}
if (keycode == OS_ODK && (mods & ~MOD_BIT(KC_ALGR))) { return true;}
switch (keycode) {
//case OS_ODK: /!\ A ne pas remettre, sous peine de ne pas pouvoir faire shift + typo + touche de l'autre côté

View file

@ -138,30 +138,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------' `----------------------------------'
*/
[_BASE] = LAYOUT(
KC_NO, PG_POIN, PG_EACU, PG_U, PG_P, PG_B, PG_V, PG_M, PG_C, PG_APOS, PG_X, KC_NO,
KC_NO, PG_O, PG_A, PG_I, PG_N, PG_VIRG, PG_G, PG_T, PG_S, PG_R, PG_L, KC_NO,
KC_NO, PG_Q, PG_Z, PG_Y, PG_H, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, PG_D, PG_F, PG_W, OS_ODK, KC_NO,
KC_NO, KC_SPC, L_OS4A, LT_E, LT_MGC, LT_REPT, LT_SPC, R_OS4A, KC_RGUI, KC_NO
),
// * Layer template
// *
// * ,-------------------------------------------. ,-------------------------------------------.
// * | | | | | | | | | | | | | |
// * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
// * | | | | | | | | | | | | | |
// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
// * | | | | | | | | | | | | | | | | | |
// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
// * | | | | | | | | | | | |
// * | | | | | | | | | | | |
// * `----------------------------------' `----------------------------------'
// */
[_APOS_DR] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, PG_APOD, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
KC_NO, PG_POIN, PG_EACU, PG_U, PG_P, PG_B, PG_V, PG_M, PG_C, PG_APOS, PG_X, KC_NO,
KC_NO, PG_O, PG_A, PG_I, PG_N, PG_VIRG, PG_G, PG_T, PG_S, PG_R, PG_L, KC_NO,
KC_NO, PG_Q, PG_Z, PG_Y, PG_H, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, PG_D, PG_F, PG_W, OS_ODK, KC_NO,
KC_NO, KC_SPC, L_OS4A, LT_E, LT_MGC, LT_REPT, LT_SPC, R_OS4A, KC_RGUI, KC_NO
),
/*
@ -200,7 +180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------' `----------------------------------'
*/
[_R_MODS] = LAYOUT(
_______, _______, _______, _______, _______, _______, KC_NO, KC_RGUI, OS_WIN, TG_APOD, KC_NO, KC_NO,
_______, _______, _______, _______, _______, _______, KC_NO, KC_RGUI, OS_WIN, TG_APOS, KC_NO, KC_NO,
_______, _______, _______, _______, _______, _______, TT_FA, OS_SHFT, OS_CTRL, NUMWORD, PG_ODK, KC_NO,
_______, _______, _______, _______, _______, _______, _______, _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, OS_FA, OS_LALT, KC_NO,
_______, _______, _______, _______, _______, _______, _______, _______, KC_NO, KC_NO
@ -223,7 +203,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------' `----------------------------------'
*/
[_NUMBERS] = LAYOUT(
_______, _______, PG_MOIN, PG_PLUS, KC_7, S(PG_ACIR), PG_PERC, _______, PG_EGAL, PG_ASTX, _______, _______,
_______, PG_DLR, PG_MOIN, PG_PLUS, KC_7, S(PG_ACIR), PG_PERC, _______, PG_EGAL, PG_ASTX, _______, _______,
_______, KC_4, KC_3, KC_2, MT_1, PG_CARN, _______, MT_SLSH, KC_6, KC_7, KC_8, _______,
_______, _______, _______, _______, KC_5, _______, _______, _______, _______, _______, _______, KC_9, KC_6, _______, PG_ODK, _______,
_______, _______, KC_PDOT, KC_0 , LT_NUMWORD, LT_REPT, KC_SPC, _______, _______, _______
@ -246,9 +226,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_ODK] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, OU_GRV, _______, _______, PG_3PTS, _______, _______, PG_J, PG_H, PG_AROB, _______, _______,
_______, OU_GRV, _______, _______, PG_R, PG_3PTS, _______, PG_J, _______, PG_AROB, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, PG_K, CNL_ODK, _______,
_______, _______, _______, _______, PG_ECIR, _______, _______, _______, _______, _______
_______, _______, _______, _______, PG_O, _______, PG_T, _______, _______, _______
),

View file

@ -32,7 +32,7 @@
enum layers {
_BASE = 0,
_APOS_DR,
//_APOS_DR,
// OS4A layers should be as closed as base layer as possible
_L_MODS,
_R_MODS,
@ -69,7 +69,8 @@ enum custom_keycodes {
OS_LALT,
OS_WIN,
//OS_ODK,
CNL_ODK
CNL_ODK,
TG_APOS
};
// Layer taps
@ -79,8 +80,8 @@ enum custom_keycodes {
#define LT_MGC LT(_SHORTNAV, KC_1)
#define OS_FA OSL(_FUNCAPPS)
#define TT_FA TT(_FUNCAPPS)
#define TG_APOD TG(_APOS_DR)
#define MT_SLSH SFT_T(PG_TLSH)
//#define TG_APOD TG(_APOS_DR)
#define MT_SLSH SFT_T(PG_SLSH)
#define MT_1 SFT_T(KC_1)
#define LT_NUMWORD LT(_SHORTNAV, NUMWORD)
#define E_CIRC S(FG_0)

View file

@ -24,7 +24,7 @@
/*
*
*     1  2  3  4  5  6  7  8  9  0  /  *        
*     1  2  3  4  5  6  7  8  9  0  /  '        
*
*       .  É  U  P  B  V  M  C  '  X  =  +      
*     
@ -37,7 +37,7 @@
*/
// Row 1
#define PG_CCED KC_GRV // ç
//#define PG_CCED KC_GRV // ç
#define FG_1 KC_1 // 1
#define FG_2 KC_2 // 2
#define FG_3 KC_3 // 3
@ -48,8 +48,8 @@
#define FG_8 KC_8 // 8
#define FG_9 KC_9 // 9
#define FG_0 KC_0 // 0
#define PG_TLSH KC_MINS // /
#define PG_ASTX KC_EQL // *
#define PG_SLSH KC_MINS // /
#define PG_APOD KC_EQL // *
// Row 2
#define PG_POIN KC_Q // .
@ -77,7 +77,7 @@
#define PG_R KC_L // R
#define PG_L KC_SCLN // L
#define PG_MOIN KC_QUOT // -
#define PG_APOD KC_NUHS // '
//#define PG_APOD KC_NUHS // '
// Row 4
#define PG_E KC_NUBS // E
@ -107,8 +107,12 @@
*
*/
// Row 3
#define PG_3PTS S(FG_0) // …
// Row 1
#define PG_DLR S(KC_4) // $
#define PG_ASTX S(KC_MINS) // *
// Row 3
//#define PG_3PTS S(FG_0) // …
// Row 2
#define PG_EXCL S(PG_APOS) // !
@ -127,7 +131,7 @@
/* AltGr symbols
*
*                         à  ê        
*                        à  ê        
*
*       ^  !  =  $  %  #  ;  '  ?  :            
*     
@ -141,14 +145,15 @@
// Row 1
#define PG_AGR ALGR(PG_TLSH)
#define PG_3PTS ALGR(KC_GRV) // …
#define PG_AGR ALGR(PG_SLSH)
#define PG_ECIR ALGR(PG_ASTX)
// Row 2
#define PG_ACIR ALGR(PG_POIN) // ^
//#define PG_EXCL ALGR(PG_EACU) // !
//#define PG_EGAL ALGR(PG_U) // =
#define PG_DLR ALGR(PG_P) // $
//#define PG_DLR ALGR(PG_P) // $
#define PG_PERC ALGR(PG_B) // %
#define PG_HASH ALGR(PG_V) // #
#define PG_PVIR ALGR(PG_M) // ;
@ -158,7 +163,7 @@
// Row 3
/* #define PG_ASTX ALGR(PG_O) // *
#define PG_PLUS ALGR(PG_A) // +
#define PG_TLSH ALGR(PG_N) // /
#define PG_SLSH ALGR(PG_N) // /
#define PG_MOIN ALGR(PG_I) // - */
#define PG_BSLS ALGR(PG_VIRG) // '\'
#define PG_GRV ALGR(PG_G) // `
@ -212,7 +217,7 @@
#define PG_HDAG S(ALGR(PG_PLUS)) // ‡
// Row 3
#define PG_MACB S(ALGR(PG_F)) // ˍ (dead)
#define PG_TQRT S(ALGR(PG_TLSH)) // √
#define PG_TQRT S(ALGR(PG_SLSH)) // √
#define PG_QRTR S(ALGR(PG_ASTX)) // ¼
// Row 4
#define PG_VIRGEQL S(ALGR(PG_INF)) // ≥

View file

@ -76,7 +76,7 @@ bool oled_task_user(void) {
oled_write_P(((mods & MOD_BIT(KC_LALT)) == MOD_BIT(KC_LALT)) ? PSTR("ALT ") : PSTR(" "), false);
oled_write_P(is_caps_word_on() ? PSTR("CAPSWORD\n") : PSTR(" \n"), false);
//oled_write_P(is_num_word_on() ? PSTR("NUMWORD\n") : PSTR(" \n"), false);
oled_write_P(is_num_word_on ? PSTR("NUMWORD\n") : PSTR(" \n"), false);
// Write host Keyboard LED Status to OLEDs
led_t led_usb_state = host_keyboard_led_state();