- Modifié
Bonjour,
voici ma situation :
- utilisation de mon clavier à la maison et au bureau
- sous Windows
- besoin bureautique et codage
- français et un peu anglais (codage)
- je ne suis pas un expert en typographie
- quelques majuscules accentuées pour écrire plus proprement, quelques unicodes (Ø, ►, ...)
- je compte sur Word ou Outlook pour me corriger boeuf en bœuf automatiquement
- pas de droits admins au bureau (pas d'install de driver, pas de modification de clef de registre, pas de logiciel même portable (PKL, autoHotKey...))
- utilisation avec un PC portable : je veux pouvoir me dépanner d'une touche ou d'un raccourci avec le clavier intégré
donc avec mon clavier custom sur base RP2040, voici ce à quoi je suis arrivé :
- conserver une langue AZERTY FR
- sans modif de registre Windows, pas d'envoi de caractère unicode possible
- je simulerai donc une succession de frappes Alt down, tap 0, tap2, tap 0, tap 1, Alt up pour une dizaine de codes
- le délai n'est pas discernable selon moi
- je peux utiliser mon clavier standard en //
J'ai codé sous QMK mais j'ai pris le chemin Vial-QMK car étant dans la phase d'ajustement de ma disposition et de mes couches, la facilité de mise à jour avec VIAL en temps réel sans recompiler est géniale.
Voici un conseil si vous avez un clavier splitté : prévoir en test une touche du côté maître (É) ça permet de ne flasher qu'un côté ! c'est plus rapide que de déposer le fichier .uf2 de chaque côté, brancher, débrancher, rebrancher...
quand tout est stabilisé (majuscules diacritiques, tap mod, Smart shift ...), on peut flasher les 2 côtés :-)
Le code :
► rules.mk
rien
► vial.json : personnalisation des étiquettes des USER DEFINED
pas besoin de définir un #define TAP_CODE_DELAY pour ralentir la succession des frappes
► keymap.c
Si on n'a pas trop de touches UNICODE ça se fait bien !
voici ma situation :
- utilisation de mon clavier à la maison et au bureau
- sous Windows
- besoin bureautique et codage
- français et un peu anglais (codage)
- je ne suis pas un expert en typographie
- quelques majuscules accentuées pour écrire plus proprement, quelques unicodes (Ø, ►, ...)
- je compte sur Word ou Outlook pour me corriger boeuf en bœuf automatiquement
- pas de droits admins au bureau (pas d'install de driver, pas de modification de clef de registre, pas de logiciel même portable (PKL, autoHotKey...))
- utilisation avec un PC portable : je veux pouvoir me dépanner d'une touche ou d'un raccourci avec le clavier intégré
donc avec mon clavier custom sur base RP2040, voici ce à quoi je suis arrivé :
- conserver une langue AZERTY FR
- sans modif de registre Windows, pas d'envoi de caractère unicode possible
- je simulerai donc une succession de frappes Alt down, tap 0, tap2, tap 0, tap 1, Alt up pour une dizaine de codes
- le délai n'est pas discernable selon moi
- je peux utiliser mon clavier standard en //
J'ai codé sous QMK mais j'ai pris le chemin Vial-QMK car étant dans la phase d'ajustement de ma disposition et de mes couches, la facilité de mise à jour avec VIAL en temps réel sans recompiler est géniale.
Voici un conseil si vous avez un clavier splitté : prévoir en test une touche du côté maître (É) ça permet de ne flasher qu'un côté ! c'est plus rapide que de déposer le fichier .uf2 de chaque côté, brancher, débrancher, rebrancher...
quand tout est stabilisé (majuscules diacritiques, tap mod, Smart shift ...), on peut flasher les 2 côtés :-)
Le code :
► rules.mk
rien
► vial.json : personnalisation des étiquettes des USER DEFINED
{
"name": "Scylla",
"vendorId": "0xA8F8",
"productId": "0x1829",
[color=#ed5821] "customKeycodes": [
{
"name": "EAcnA",
"title": "E accent aigü",
"shortName": "EACUTE"
},
{
"name": "EAcnG",
"title": "E accent grave",
"shortName": "EAGRAV"
},
{
"name": "AAcnG",
"title": "A accent grave",
"shortName": "AAGRAV"
},
{
"name": "Ccedi",
"title": "C cédille",
"shortName": "CCEDIL"
},
{
"name": "Puce 1",
"title": "Puce triangle 1",
"shortName": "PUCE1"
}
],[/color]
"lighting": "vialrgb",
"matrix": {
"rows": 10,
"cols": 6
},
► config.hpas besoin de définir un #define TAP_CODE_DELAY pour ralentir la succession des frappes
► keymap.c
#include <keymap_french.h>
enum custom_keycodes {
#if defined(VIAL_ENABLED)
EACUTE = USER00,
EAGRAV,
AAGRAV,
CCEDIL,
PUCE1
#else
EACUTE = SAFE_RANGE,
EAGRAV ,
AAGRAV ,
CCEDIL ,
PUCE1
#endif
};
dans la disposition saisir ces codes :
KC_TAB, AAGRAV, FR_B, EAGRAV, FR_DOT, FR_MINS,
puis
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case EACUTE:
if (record->event.pressed) {
if (get_mods() & MOD_MASK_SHIFT) {
register_code(KC_LALT);
tap_code(KC_KP_0);
tap_code(KC_KP_2);
tap_code(KC_KP_0);
tap_code(KC_KP_1);
unregister_code(KC_LALT);
} else {
tap_code(FR_EACU);
}
}
break;
case EAGRAV:
if (record->event.pressed) {
if (get_mods() & MOD_MASK_SHIFT) {
register_code(KC_LALT);
tap_code(KC_KP_0);
tap_code(KC_KP_2);
tap_code(KC_KP_0);
tap_code(KC_KP_0);
unregister_code(KC_LALT);
} else {
tap_code(FR_EGRV);
}
}
break;
case AAGRAV:
if (record->event.pressed) {
if (get_mods() & MOD_MASK_SHIFT) {
register_code(KC_LALT);
tap_code(KC_KP_0);
tap_code(KC_KP_1);
tap_code(KC_KP_9);
tap_code(KC_KP_2);
unregister_code(KC_LALT);
} else {
tap_code(FR_AGRV);
}
}
break;
case CCEDIL:
if (record->event.pressed) {
if (get_mods() & MOD_MASK_SHIFT) {
register_code(KC_LALT);
tap_code(KC_KP_0);
tap_code(KC_KP_1);
tap_code(KC_KP_9);
tap_code(KC_KP_9);
unregister_code(KC_LALT);
} else {
tap_code(FR_CCED);
}
}
break;
case PUCE1: // insère l'unicode ► fdans les deux cas : shift ou pas shift
if (record->event.pressed) {
register_code(KC_LALT);
tap_code(KC_KP_1);
tap_code(KC_KP_6);
unregister_code(KC_LALT);
}
break;
}
return true;
};
et activer le NUM LOCK au démarrage du clavier sinon cela ne fonctionne pas
// Turn on/off NUM LOCK if current state is different
void activate_numlock(bool turn_on) {
if (host_keyboard_led_state().num_lock != turn_on) {
tap_code(KC_NUM_LOCK);
}
}
// INITIAL STARTUP
void keyboard_post_init_user(void) {
// turn on Num lock by default so that the numpad layer always has predictable results#ifdef STARTUP_NUMLOCK_ON
activate_numlock(true);
}
Voilà ! :-)Si on n'a pas trop de touches UNICODE ça se fait bien !