Bonjour,
Nos claviers sont également codés en QWERTY et ce sont les préférences linguisitques qui traduisent en BÉPO, aucun soucis quand on passe en QWERTY ou AZERTY, les rares lettres qui on étés déplacés correspondent à des caractères spéciaux sur ces deux layouts donc rarement utilisés.
Pour coder le BÉPO en dur dans le claviers en gardant le PC en QWERTY je ne pense pas que ce soit possible, ne serait-ce que pour les caractères accentués (avant même d’atteidre l’exemple que tu as mentionné).
Voici mon Keymap.c actuel qui corresponds à peu de choses près à l’image tout en haute de cette page.
#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "version.h"
#include "keymap_german.h"
#include "keymap_nordic.h"
#define M_COPY M(1)
#define M_EUR M(2)
#define M_AHK M(3)
#define M_USD M(4)
#define M_CCED M(5)
#define M_KANA M(6)
#define AH_ABNT KC_INT1
#define AH_ISO KC_NUBS
#define AH_BOPO KC_KANA
#define AH_ROYA KC_INT4
#define AH_TREMA KC_INT3
#define AH_AHK KC_INT5
bool rgbstatus = false;
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE, // can always be here
EPRM,
VRSN,
RGB_SLD,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP(KC_GRAVE,KC_1,KC_2,KC_3,KC_4,KC_5,KC_MINUS,
KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_RALT,
KC_HOME,KC_A,KC_S,KC_D,KC_F,KC_G,
KC_END,AH_ISO,KC_Z,KC_X,KC_C,KC_V,KC_LSHIFT,
KC_LCTL,KC_LGUI,KC_UP,KC_DOWN,KC_B,
KC_LALT,KC_ESCAPE,
LCTL(KC_H),
KC_SPACE,KC_DELETE,TT(1),
KC_EQUAL,KC_6,KC_7,KC_8,KC_9,KC_0,KC_RBRACKET,
KC_RALT,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_LBRACKET,
KC_H,KC_J,KC_K,KC_L,KC_SCOLON,KC_QUOTE,
KC_RSHIFT,KC_N,KC_M,KC_COMMA,KC_DOT,KC_SLASH,KC_BSLASH,
AH_ABNT,KC_LEFT,KC_RIGHT,KC_RGUI,KC_RCTRL,
KC_AUDIO_VOL_UP,KC_AUDIO_MUTE,
KC_AUDIO_VOL_DOWN,
TT(1),KC_BSPACE,KC_ENTER),
[1] = KEYMAP(LCTL(LSFT(KC_ESCAPE)),KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_NO,
KC_TAB,M_COPY,KC_UP,LCTL(KC_U),KC_NO,KC_NO,KC_CAPSLOCK,
KC_PGUP,KC_LEFT,KC_DOWN,KC_RIGHT,KC_APPLICATION,KC_NO,
KC_PGDOWN,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_LSHIFT,
KC_LCTL,KC_PSCREEN,KC_NO,KC_NO,KC_NO,
KC_LALT,TO(0),
LCTL(KC_U),
KC_INSERT,KC_DELETE,TO(0),
KC_F11,KC_KP_EQUAL,KC_KP_PLUS,KC_KP_MINUS,KC_KP_SLASH,KC_NO,KC_EJCT,
KC_F12,KC_KP_7,KC_KP_8,KC_KP_9,KC_KP_ASTERISK,RALT(KC_F),KC_NO,
KC_KP_4,KC_KP_5,KC_KP_6,KC_KP_COMMA,KC_INT5,RGB_TOG,
KC_RSHIFT,KC_KP_1,KC_KP_2,KC_KP_3,KC_KP_ENTER,KC_GRAVE,M_KANA,
KC_KP_0,KC_KP_DOT,KC_KP_ENTER,KC_RGUI,KC_RCTL,
RGB_VAI,KC_NUMLOCK,
RGB_VAD,
TO(0),KC_BSPACE,KC_ENTER),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(1)
};
// leaving this in place for compatibilty with old keymaps cloned and re-compiled.
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch(id) {
case 0:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
case 1: {
if (record->event.pressed) {
return MACRO( D(LCTL), T(H), U(LCTL), END );
} else {
return MACRO( D(LCTL), T(X), U(LCTL), END );
}
}
case 2:
//SEND_STRING("€");
unicode_input_start(); register_hex(0x20AC); unicode_input_finish();
return false;
case 3:
//SEND_STRING("₢");
unicode_input_start(); register_hex(0x20A2); unicode_input_finish();
return false;
case 4:
//SEND_STRING("$");
unicode_input_start(); register_hex(0x0024); unicode_input_finish();
return false;
case 5: {
if (record->event.pressed) {
return MACRO( T(INT4), END );
} else {
return MACRO( T(BSLASH), END );
}
}
case 6: {
if (record->event.pressed) {
return MACRO( T(KANA), T(CAPSLOCK), T(CAPSLOCK), END );
}
}
break;
}
return MACRO_NONE;
};
bool process_record_user(uint16_t keycodem, keyrecord_t *record) {
switch (keycode) {
// dynamically generate these.
case EPRM:
if (record->event.pressed) {
eeconfig_init();
}
return false;
break;
case VRSN:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false;
break;
case RGB_SLD:
if (record->event.pressed) {
rgblight_mode(1);
}
return false;
break;
}
return true;
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
//#ifdef RGBLIGHT_ENABLE
rgblight_setrgb(00,00,255);
//#endif
} else {
// #ifdef RGBLIGHT_ENABLE
rgblight_setrgb(255,00,00);
// #endif // RGBLIGHT_ENABLE
}
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
ergodox_right_led_1_on();
} else {
ergodox_right_led_1_off();
}
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
ergodox_right_led_2_on();
} else {
ergodox_right_led_2_off();
}
}
void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
switch (layer) {
case 0:
ergodox_right_led_3_off();
if(rgbstatus) {
rgblight_toggle();
rgbstatus = false; }
//BL_OFF;
break;
case 1:
ergodox_right_led_3_on();
if(rgbstatus) {} else {
rgblight_toggle();
register_code(KC_CAPSLOCK);
unregister_code(KC_CAPSLOCK);
register_code(KC_CAPSLOCK);
unregister_code(KC_CAPSLOCK);
rgbstatus = true; }
//rgblight_toggle();
//BL_ON;
break;
case 2:
//rgblight_on();
break;
case 3:
//rgblight_on();
break;
default:
break;
}
};