Outils pour utilisateurs

Outils du site


ergodox

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
ergodox [2020/10/19 12:49] simonergodox [2021/02/08 21:31] (Version actuelle) – [Envoyer la configuration sur le clavier] simon
Ligne 4: Ligne 4:
 ===== Introduction ===== ===== Introduction =====
  
-Ça fait longtemps que j'ai le projet de me fabriquer et d'apprendre à utiliser un clavier mécanique. Après avoir regardé longuement, bavé sur des modèles comme le [[https://marcyoung.us/post/pterodactyl/|Pterodactyl]], ou d'autres claviers particuliers comme le [[https://www.velocifiretech.com/product/dumang-dk6-ergo-v2/|DUMANG DK6]] ([[https://hackers.town/@zpojqwfejwfhiunz/103573273574733970|pouet mastodon]]), j'ai choisi de m'orienter vers un Ergodox.+Ça fait longtemps que j'ai le projet de me fabriquer et d'apprendre à utiliser un clavier mécanique. Après avoir regardé longuement, bavé sur des modèles comme le [[https://marcyoung.us/post/pterodactyl/|Pterodactyl]], ou d'autres claviers particuliers comme le [[https://www.velocifiretech.com/product/dumang-dk6-ergo-v2/|DUMANG DK6]] ([[https://hackers.town/@zpojqwfejwfhiunz/103573273574733970|pouet mastodon]]), j'ai choisi de m'orienter vers un [[https://www.ergodox.io/|Ergodox]].
  
 Après avoir rêvé de tout reprendre de A à Z, de fabriquer le boitier en fibre de carbone et redessiner la carte électronique, je me suis avoué vaincu par le temps. J'ai commandé un kit chez [[https://falba.tech/customize-your-keyboard/customize-your-ergodox/?v=d3dcf429c679|falba.tech]]. Après avoir rêvé de tout reprendre de A à Z, de fabriquer le boitier en fibre de carbone et redessiner la carte électronique, je me suis avoué vaincu par le temps. J'ai commandé un kit chez [[https://falba.tech/customize-your-keyboard/customize-your-ergodox/?v=d3dcf429c679|falba.tech]].
Ligne 66: Ligne 66:
 **__État des lieux le 19/10/2020 :__** J'avance, j'ai un layout à peu près convenable pour le calque de base. **__État des lieux le 19/10/2020 :__** J'avance, j'ai un layout à peu près convenable pour le calque de base.
  
 +**__État des lieux le 30/11/2020 :__** J'approche d'un layout correct pour la base ainsi que le calque "média" et "symbole".
 +
 +**__État des lieux le 08/02/2021 :__** J'ai corrigé toutes les touches "lettres".
 +<hidden>
 +<code c>
 +#include QMK_KEYBOARD_H
 +#include "version.h"
 +
 +enum layers {
 +    BASE, // default layer
 +    SYMB, // symbols
 +    MDIA, // media keys
 +};
 +
 +enum custom_keycodes {
 +#ifdef ORYX_CONFIGURATOR
 +  VRSN = EZ_SAFE_RANGE,
 +#else
 +  VRSN = SAFE_RANGE,
 +#endif
 +  RGB_SLD
 +};
 +
 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 +/* Keymap 0: Basic layer
 + *
 + * ,--------------------------------------------------.           ,--------------------------------------------------.
 + * | µ      |    |    |    |    |    |    |              |    |    |    |    |    |  Del   |
 + * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 + * | Tab    |    |    |    |    |    |    |              |    |    |    |    |    |  BkSp  |
 + * |--------+------+------+------+------+------|      |                |------+------+------+------+------+--------|
 + * | CapsLk |    |    |    |    |    |------|           |------|    |    |    |   ;  |   '  |  Enter |
 + * |--------+------+------+------+------+------|    |              |------+------+------+------+------+--------|
 + * | LShift |</Ctrl|    |    |    |    |      |                |    |    |   ,  |    |//Ctrl| RShift |
 + * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 +    L1  | Home | PgUp | PgDn |  End |                                       | Left |  Up  | Down | Right|  L2  |
 +   `----------------------------------'                                       `----------------------------------'
 +                                        ,-------------.       ,-------------.
 +                                        | App  | Alt  |        App |Ctrl/Esc|
 +                                 ,------|------|------|       |------+--------+------.
 +                                      |      | Alt  |       | AltGr|        |      |
 +                                 | Space|Backsp|------|       |------|  Tab   |Enter |
 +                                      |ace   | LGui |       | RGui |        |      |
 +                                 `--------------------'       `----------------------'
 + */
 +[BASE] = LAYOUT_ergodox_pretty(
 +  KC_BSLS,         KC_1,           KC_2,    KC_3,    KC_4,    KC_5,    KC_6,                 KC_7,         KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,            KC_DEL,
 +  KC_TAB,          KC_Q,           KC_W,    KC_E,    KC_R,    KC_T,    KC_H,                 KC_U,         KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC,           KC_BSPC,
 +  KC_CAPS,         KC_A,           KC_S,    KC_D,    KC_F,    KC_G,                                        KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS,           KC_ENT,
 +  KC_LSFT,         CTL_T(KC_NUBS), KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                 KC_J,         KC_M,    KC_COMM, KC_DOT, KC_SLSH,  CTL_T(KC_GRV),    KC_RSFT,
 +  DF(SYMB),        KC_HOME,        KC_PGDN, KC_PGUP, KC_END,                                               KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT,DF(MDIA),
 +                                                           ALT_T(KC_APP), KC_LALT,     KC_APP,  CTL_T(KC_ESC),
 +                                                                          KC_LALT,     KC_RALT,
 +                                                         KC_SPC, KC_BSPC, KC_LGUI,     KC_RGUI, KC_TAB, KC_ENT
 +), /*note: KC_GRAVE ? */
 +/* Keymap 1: Symbol Layer
 + *
 + * ,---------------------------------------------------.           ,--------------------------------------------------.
 + * |          F1  |  F2  |  F3  |  F4  |  F5  |  F6  |            F7  |  F8  |  F9  |  F10 | F11  | F12  |        |
 + * |---------+------+------+------+------+------+------|           |------+------+------+------+------+------+--------|
 + * |            |    |    |    |    |      |                |  =      |    |    |    |        |
 + * |---------+------+------+------+------+------|      |                |------+------+------+------+------+--------|
 + * |           #  |    |    |    |    |------|           |------|  .      |    |    |    |        |
 + * |---------+------+------+------+------+------|      |                |------+------+------+------+------+--------|
 + * |            |    |    |    |    |      |                |  0      |    |    |   /  |        |
 + * `---------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 +   | L0    |      |      |      |      |                                            |      |      |      |  L2  |
 +   `-----------------------------------'                                       `----------------------------------'
 +                                        ,-------------.       ,-------------.
 +                                        | App  | Alt  |        App |Ctrl/Esc|
 +                                 ,------|------|------|       |------+--------+------.
 +                                      |      | Alt  |       | AltGr|        |      |
 +                                 | Space|Backsp|------|       |------|  Tab   |Enter |
 +                                      |ace   | LGui |       | RGui |        |      |
 +                                 `--------------------'       `----------------------'
 + */
 +[SYMB] = LAYOUT_ergodox_pretty(
 +  KC_NO,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,       KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_TRNS,
 +  KC_TRNS, KC_EXLM, KC_AT,   KC_LCBR, KC_RCBR, KC_PIPE, KC_NO,       KC_NO,   KC_SLSH, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_TRNS,
 +  KC_TRNS, KC_HASH, KC_DLR,  KC_LPRN, KC_RPRN, KC_GRV,                        KC_PDOT, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_TRNS,
 +  KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_NO,       KC_NO,   KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PSLS, KC_TRNS,
 +  DF(BASE),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                                         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DF(MDIA),
 +
 +                                         ALT_T(KC_APP), KC_LALT,     KC_APP,  CTL_T(KC_ESC),
 +                                                        KC_LALT,     KC_RALT,
 +                                       KC_SPC, KC_BSPC, KC_LGUI,     KC_RGUI, KC_TAB, KC_ENT
 +
 +),
 +/* Keymap 2: Media and mouse keys
 + *
 + * ,--------------------------------------------------.           ,--------------------------------------------------.
 + * |        |      | MsBt3| MsBt4| MsBt5|      |      |           | Mute |      | MsBt3| MsBt4| MsBt5|      |        |
 + * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 + * |        | WhlLf| Lclk | MsUp | Rclk |WhlUp |Bright|           | Vol+ |WhlUp | Lclk | MsUp | Rclk |WhlLf |  Prev  |
 + * |--------+------+------+------+------+------|  +                  |------+------+------+------+------+--------|
 + * |        | WhlRt|MsLeft|MsDown|MsRght|WhlDn |------|           |------|WhlDn |MsLeft|MsDown|MsRght|WhlRt |  Next  |
 + * |--------+------+------+------+------+------|Bright|           | Vol- |------+------+------+------+------+--------|
 + * |        |      |      |      |      |      |  -                  |      |      |      |      |      |  Play  |
 + * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 +   | L0        |      |      |      |                                            |      |      |      |  L1  |
 +   `----------------------------------'                                       `----------------------------------'
 +                                        ,-------------.       ,-------------.
 +                                        | App  | Alt  |        App |Ctrl/Esc|
 +                                 ,------|------|------|       |------+--------+------.
 +                                      |      | Alt  |       | AltGr|        |      |
 +                                 | Space|Backsp|------|       |------|  Tab   |Enter |
 +                                      |ace   | LGui |       | RGui |        |      |
 +                                 `--------------------'       `----------------------'
 + */
 +[MDIA] = LAYOUT_ergodox_pretty(
 +  KC_NO,   KC_NO,   KC_BTN3, KC_BTN4, KC_BTN5, KC_NO,   KC_NO,       KC_MUTE, KC_NO,   KC_BTN3, KC_BTN4, KC_BTN5, KC_NO,   KC_NO,
 +  KC_NO,   KC_WH_L, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_BRIU,     KC_VOLU, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_L, KC_MPRV,
 +  KC_NO,   KC_WH_R, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,                       KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_R, KC_MNXT,
 +  KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_BRID,     KC_VOLD, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_MPLY,
 +  DF(BASE),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                                         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DF(SYMB),
 +
 +                                         ALT_T(KC_APP), KC_LALT,     KC_APP,  CTL_T(KC_ESC),
 +                                                        KC_LALT,     KC_RALT,
 +                                       KC_SPC, KC_BSPC, KC_LGUI,     KC_RGUI, KC_TAB, KC_ENT
 +),
 +};
 +
 +bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 +  if (record->event.pressed) {
 +    switch (keycode) {
 +      case VRSN:
 +        SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
 +        return false;
 +      #ifdef RGBLIGHT_ENABLE
 +      case RGB_SLD:
 +        rgblight_mode(1);
 +        return false;
 +      #endif
 +    }
 +  }
 +  return true;
 +}
 +
 +// Runs just one time when the keyboard initializes.
 +void keyboard_post_init_user(void) {
 +#ifdef RGBLIGHT_COLOR_LAYER_0
 +  rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
 +#endif
 +};
 +
 +// Runs whenever there is a layer state change.
 +layer_state_t layer_state_set_user(layer_state_t state) {
 +  ergodox_board_led_off();
 +  ergodox_right_led_1_off();
 +  ergodox_right_led_2_off();
 +  ergodox_right_led_3_off();
 +
 +  uint8_t layer = get_highest_layer(state);
 +  switch (layer) {
 +      case 0:
 +        #ifdef RGBLIGHT_COLOR_LAYER_0
 +          rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
 +        #endif
 +        break;
 +      case 1:
 +        ergodox_right_led_1_on();
 +        #ifdef RGBLIGHT_COLOR_LAYER_1
 +          rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1);
 +        #endif
 +        break;
 +      case 2:
 +        ergodox_right_led_2_on();
 +        #ifdef RGBLIGHT_COLOR_LAYER_2
 +          rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2);
 +        #endif
 +        break;
 +      case 3:
 +        ergodox_right_led_3_on();
 +        #ifdef RGBLIGHT_COLOR_LAYER_3
 +          rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3);
 +        #endif
 +        break;
 +      case 4:
 +        ergodox_right_led_1_on();
 +        ergodox_right_led_2_on();
 +        #ifdef RGBLIGHT_COLOR_LAYER_4
 +          rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4);
 +        #endif
 +        break;
 +      case 5:
 +        ergodox_right_led_1_on();
 +        ergodox_right_led_3_on();
 +        #ifdef RGBLIGHT_COLOR_LAYER_5
 +          rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5);
 +        #endif
 +        break;
 +      case 6:
 +        ergodox_right_led_2_on();
 +        ergodox_right_led_3_on();
 +        #ifdef RGBLIGHT_COLOR_LAYER_6
 +          rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6);
 +        #endif
 +        break;
 +      case 7:
 +        ergodox_right_led_1_on();
 +        ergodox_right_led_2_on();
 +        ergodox_right_led_3_on();
 +        #ifdef RGBLIGHT_COLOR_LAYER_7
 +          rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7);
 +        #endif
 +        break;
 +      default:
 +        break;
 +    }
 +
 +  return state;
 +};
 +</code>
 +</hidden>
 +
 +===== Sources =====
 +  * [[https://www.ergodox.io/|ErgoDox]] : Le site de l'ErgoDox "d'origine".
 +  * [[https://ergodox-ez.com/|ErgoDox-EZ]] : Une nouvelle version de l'ErgoDox.
 +  * [[https://www.reddit.com/r/MechanicalKeyboards/|MechanicalKeyboards]] : La communauté Reddit autour des claviers mécaniques.
ergodox.1603111746.txt.gz · Dernière modification : 2020/10/19 12:49 de simon