diff options
| author | QMK Bot <hello@qmk.fm> | 2021-11-05 18:28:07 +0000 |
|---|---|---|
| committer | QMK Bot <hello@qmk.fm> | 2021-11-05 18:28:07 +0000 |
| commit | b4c5c56f58d97ee3de832ae43697b01e6cf3ed9a (patch) | |
| tree | c5841e1f8a91a2933d669fe827a2d917241bdf3f /layouts | |
| parent | ea3b2e2f954b54e647881de18c9ad637f2f0c1d3 (diff) | |
| parent | 827115a4f69eec494687f4fdea62acc7b310f910 (diff) | |
| download | qmk_firmware-b4c5c56f58d97ee3de832ae43697b01e6cf3ed9a.tar.gz qmk_firmware-b4c5c56f58d97ee3de832ae43697b01e6cf3ed9a.zip | |
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'layouts')
| -rw-r--r-- | layouts/community/ergodox/french_hacker/keymap.c | 263 | ||||
| -rw-r--r-- | layouts/community/ergodox/french_hacker/readme.md | 27 |
2 files changed, 47 insertions, 243 deletions
diff --git a/layouts/community/ergodox/french_hacker/keymap.c b/layouts/community/ergodox/french_hacker/keymap.c index b4c8e37bd..44b0c4786 100644 --- a/layouts/community/ergodox/french_hacker/keymap.c +++ b/layouts/community/ergodox/french_hacker/keymap.c | |||
| @@ -7,82 +7,64 @@ | |||
| 7 | #define BASE 0 // default Colemak Mod-DH layer | 7 | #define BASE 0 // default Colemak Mod-DH layer |
| 8 | #define SYMB 1 // symbols | 8 | #define SYMB 1 // symbols |
| 9 | #define MDIA 2 // media keys | 9 | #define MDIA 2 // media keys |
| 10 | #define ACC 3 // accented characters | ||
| 11 | |||
| 12 | #define QCOPY 0 // Qubes OS VM to VM copy | ||
| 13 | #define QPASTE 1 // Qubes OS VM to VM paste | ||
| 14 | #define M_ACIRC 2 // â | ||
| 15 | #define M_ECIRC 3 // ê | ||
| 16 | #define M_ICIRC 4 // î | ||
| 17 | #define M_OCIRC 5 // ô | ||
| 18 | #define M_UCIRC 6 // û | ||
| 19 | #define M_YCIRC 7 // ŷ | ||
| 20 | #define M_AUMLT 8 // ä | ||
| 21 | #define M_EUMLT 9 // ë | ||
| 22 | #define M_IUMLT 10 // ï | ||
| 23 | #define M_OUMLT 11 // ö | ||
| 24 | #define M_UUMLT 12 // ü | ||
| 25 | #define M_YUMLT 13 // ÿ | ||
| 26 | 10 | ||
| 27 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 11 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 28 | /* Keymap 0: Base Colemak Mod-DH layer | 12 | /* Keymap 0: Base Colemak Mod-DH layer |
| 29 | * | 13 | * |
| 30 | * ,--------------------------------------------------. ,--------------------------------------------------. | 14 | * ,--------------------------------------------------. ,--------------------------------------------------. |
| 31 | * | Esc | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | | 15 | * | Esc | & _1 | é _2 | " _3 | ' _4 | ( _5 | | | | - _6 | è _7 | _ _8 | ç _9 | à _0 | | |
| 32 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | 16 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
| 33 | * | | Q | W | F | P | B | TO(0)| |TO(2) | J | L | U | Y | ; | | | 17 | * | | Q | W | F | P | B | TO(0)| |TO(2) | J | L | U | Y | ; | Ins | |
| 34 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 18 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| 35 | * | Tab | A | R | S | T | G |------| |------| M | N | E | I | O | Bcksp | | 19 | * | Tab | A | R | S | T | G |------| |------| M | N | E | I | O | Bcksp | |
| 36 | * |--------+------+------+------+------+------| TO(1)| |OSL(3)|------+------+------+------+------+--------| | 20 | * |--------+------+------+------+------+------| TO(1)| | MEH |------+------+------+------+------+--------| |
| 37 | * | LShift | Z | X | C | D | V | | | | K | H | , | . | : | Rshift | | 21 | * | LShift | Z | X | C | D | V | | | | K | H | , | . | : | Rshift | |
| 38 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | 22 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
| 39 | * | Ins | Caps | Left | Right| MO(2)| | MO(2)| Down | Up | PgDn | PgUp | | 23 | * | ù | | Left | Right| MO(2)| | MO(2)| Down | Up | PgDn | PgUp | |
| 40 | * `----------------------------------' `----------------------------------' | 24 | * `----------------------------------' `----------------------------------' |
| 41 | * ,-------------. ,-------------. | 25 | * ,-------------. ,-------------. |
| 42 | * |QCopy | Ralt | | Ralt |QPaste| | 26 | * | | Ralt | | Ralt | | |
| 43 | * ,------|------|------| |------+------+------. | 27 | * ,-------|------|------| |------+------+------. |
| 44 | * | | | Home | | End | | | | 28 | * | | | Home | | End | | | |
| 45 | * | Space| Ctrl |------| |------| Ctrl |Enter | | 29 | * | Space | Ctrl |------| |------| Ctrl | Enter | |
| 46 | * | | | LAlt | | LAlt | | | | 30 | * | | | LAlt | | LAlt | | | |
| 47 | * `--------------------' `--------------------' | 31 | * `---------------------' `---------------------' |
| 48 | */ | 32 | */ |
| 49 | // If it accepts an argument (i.e, is a function), it doesn't need KC_. | ||
| 50 | // Otherwise, it needs KC_* | ||
| 51 | [BASE] = LAYOUT_ergodox( // layer 0 : default | 33 | [BASE] = LAYOUT_ergodox( // layer 0 : default |
| 52 | // left hand | 34 | // left hand |
| 53 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, | 35 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, |
| 54 | KC_TRNS, FR_Q, FR_W, KC_F, KC_P, KC_B, TO(BASE), | 36 | KC_NO, FR_Q, FR_W, KC_F, KC_P, KC_B, TO(BASE), |
| 55 | KC_TAB, FR_A, KC_R, KC_S, KC_T, KC_G, | 37 | KC_TAB, FR_A, KC_R, KC_S, KC_T, KC_G, |
| 56 | KC_LSFT, FR_Z, KC_X, KC_C, KC_D, KC_V, TO(SYMB), | 38 | KC_LSFT, FR_Z, KC_X, KC_C, KC_D, KC_V, TO(SYMB), |
| 57 | KC_INS, KC_CAPS, KC_LEFT,KC_RIGHT, MO(SYMB), | 39 | FR_UGRV, KC_NO, KC_LEFT, KC_RIGHT, MO(SYMB), |
| 58 | M(QCOPY), KC_RALT, | 40 | KC_NO, KC_RALT, |
| 59 | KC_HOME, | 41 | KC_HOME, |
| 60 | KC_SPC,KC_LCTRL, KC_LALT, | 42 | KC_SPC,KC_LCTRL, KC_LALT, |
| 61 | // right hand | 43 | // right hand |
| 62 | KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, | 44 | KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, |
| 63 | TO(MDIA), KC_J, KC_L, KC_U, KC_Y, FR_SCLN, KC_TRNS, | 45 | TO(MDIA), KC_J, KC_L, KC_U, KC_Y, FR_SCLN, KC_INS, |
| 64 | FR_M, KC_N, KC_E, KC_I, KC_O, KC_BSPC, | 46 | FR_M, KC_N, KC_E, KC_I, KC_O, KC_BSPC, |
| 65 | OSL(ACC), KC_K, KC_H, FR_COMM, FR_DOT, FR_COLN, KC_RSFT, | 47 | OSM(MOD_MEH), KC_K, KC_H, FR_COMM, FR_DOT, FR_COLN, KC_RSFT, |
| 66 | MO(SYMB), KC_DOWN, KC_UP, KC_PGDN, KC_PGUP, | 48 | MO(SYMB), KC_DOWN, KC_UP, KC_PGDN, KC_PGUP, |
| 67 | 49 | ||
| 68 | KC_RALT, M(QPASTE), | 50 | KC_RALT, KC_NO, |
| 69 | KC_END, | 51 | KC_END, |
| 70 | KC_LALT,KC_RCTL, KC_ENT | 52 | KC_LALT,KC_RCTL, KC_ENT |
| 71 | ), | 53 | ), |
| 72 | 54 | ||
| 73 | 55 | ||
| 74 | /* Keymap 1: Symbol Layer | 56 | /* Keymap 1: Symbol Layer |
| 75 | * // TODO missing: ¤ | 57 | * |
| 76 | * ,--------------------------------------------------. ,--------------------------------------------------. | 58 | * ,--------------------------------------------------. ,--------------------------------------------------. |
| 77 | * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | | 59 | * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | |
| 78 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | 60 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
| 79 | * | | § | < | { | \ | ~ | | | | % | @ | } | > | µ | F12 | | 61 | * | | § | < | { | \ | ~ | | | | % | @ | } | > | ¨ | F12 | |
| 80 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 62 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| 81 | * | | ' | = | - | ( | + |------| |------| * | ) | _ | / | " | | | 63 | * | | ' | = | - | ( | + |------| |------| * | ) | _ | / | " | | |
| 82 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 64 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| 83 | * | | ` | ? | # | [ | | | | | | & | ] | $ | ! | ^ | | | 65 | * | | ` | ? | # | [ | | | | | | & | ] | $ | ! | ^ | | |
| 84 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | 66 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
| 85 | * | € | £ | $ | | | | | | | ß | | | 67 | * | € | £ | ¤ | ² | | | | ° | µ | ß | | |
| 86 | * `----------------------------------' `----------------------------------' | 68 | * `----------------------------------' `----------------------------------' |
| 87 | * ,-------------. ,-------------. | 69 | * ,-------------. ,-------------. |
| 88 | * | | | | | | | 70 | * | | | | | | |
| @@ -95,20 +77,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 95 | // SYMBOLS | 77 | // SYMBOLS |
| 96 | [SYMB] = LAYOUT_ergodox( | 78 | [SYMB] = LAYOUT_ergodox( |
| 97 | // left hand | 79 | // left hand |
| 98 | M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, | 80 | M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, |
| 99 | KC_TRNS,FR_SECT,FR_LABK, FR_LCBR,FR_BSLS,FR_TILD,KC_TRNS, | 81 | KC_TRNS, FR_SECT, FR_LABK, FR_LCBR, FR_BSLS, FR_TILD, KC_TRNS, |
| 100 | KC_TRNS,FR_QUOT,FR_EQL, FR_MINS,FR_LPRN,FR_PLUS, | 82 | KC_TRNS, FR_QUOT, FR_EQL, FR_MINS, FR_LPRN, FR_PLUS, |
| 101 | KC_TRNS,FR_GRV,FR_QUES,FR_HASH,FR_LBRC,FR_PIPE,KC_TRNS, | 83 | KC_TRNS, FR_GRV, FR_QUES, FR_HASH, FR_LBRC, FR_PIPE, KC_TRNS, |
| 102 | FR_EURO,FR_PND,FR_DLR,KC_TRNS,KC_TRNS, | 84 | FR_EURO, FR_PND, FR_CURR, FR_SUP2, KC_TRNS, |
| 103 | KC_TRNS,KC_TRNS, | 85 | KC_TRNS,KC_TRNS, |
| 104 | KC_TRNS, | 86 | KC_TRNS, |
| 105 | KC_TRNS,KC_TRNS,KC_TRNS, | 87 | KC_TRNS,KC_TRNS,KC_TRNS, |
| 106 | // right hand | 88 | // right hand |
| 107 | KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, | 89 | KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, |
| 108 | KC_TRNS, FR_PERC, FR_AT, FR_RCBR, FR_RABK, FR_MICR, KC_F12, | 90 | KC_TRNS, FR_PERC, FR_AT, FR_RCBR, FR_RABK, FR_DIAE, KC_F12, |
| 109 | FR_ASTR, FR_RPRN, FR_UNDS, FR_SLSH, FR_DQUO, KC_TRNS, | 91 | FR_ASTR, FR_RPRN, FR_UNDS, FR_SLSH, FR_DQUO, KC_TRNS, |
| 110 | KC_TRNS, FR_AMPR, FR_RBRC, FR_DLR, FR_EXLM, FR_CIRC, KC_TRNS, | 92 | KC_TRNS, FR_AMPR, FR_RBRC, FR_DLR, FR_EXLM, FR_CIRC, KC_TRNS, |
| 111 | KC_TRNS, KC_TRNS, KC_TRNS, ALGR(KC_S), KC_TRNS, | 93 | KC_TRNS, FR_DEG, FR_MICR, ALGR(KC_S), KC_TRNS, |
| 112 | KC_TRNS, KC_TRNS, | 94 | KC_TRNS, KC_TRNS, |
| 113 | KC_TRNS, | 95 | KC_TRNS, |
| 114 | KC_TRNS, KC_TRNS, KC_TRNS | 96 | KC_TRNS, KC_TRNS, KC_TRNS |
| @@ -154,178 +136,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 154 | KC_TRNS, | 136 | KC_TRNS, |
| 155 | KC_TRNS, KC_TRNS, KC_WBAK | 137 | KC_TRNS, KC_TRNS, KC_WBAK |
| 156 | ), | 138 | ), |
| 157 | |||
| 158 | /* Keymap 3: accented characters | ||
| 159 | * | ||
| 160 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 161 | * | | | | | | | | | | | | | | | | | ||
| 162 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
| 163 | * | | | à | â | ä | | | | | | | î | ï | | | | ||
| 164 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 165 | * | | é | è | ê | ë | |------| |------| | | ô | ö | | | | ||
| 166 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 167 | * | | | ù | û | ü | | | | | | | ŷ | ÿ | | | | ||
| 168 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 169 | * | | | | | | | | | | | | | ||
| 170 | * `----------------------------------' `----------------------------------' | ||
| 171 | * ,-------------. ,-------------. | ||
| 172 | * | | | | | | | ||
| 173 | * ,------|------|------| |------+------+------. | ||
| 174 | * | | | | | | | | | ||
| 175 | * | | |------| |------| | | | ||
| 176 | * | | | | | | | | | ||
| 177 | * `--------------------' `--------------------' | ||
| 178 | */ | ||
| 179 | // ACCENTED CHARACTERS | ||
| 180 | [ACC] = LAYOUT_ergodox( | ||
| 181 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 182 | |||
| 183 | KC_TRNS, KC_TRNS, FR_AGRV, M(M_ACIRC), M(M_AUMLT), KC_TRNS, KC_TRNS, | ||
| 184 | KC_TRNS, FR_EACU, FR_EGRV, M(M_ECIRC), M(M_EUMLT), KC_TRNS, | ||
| 185 | KC_TRNS, KC_TRNS, FR_UGRV, M(M_UCIRC), M(M_UUMLT), KC_TRNS, KC_TRNS, | ||
| 186 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 187 | KC_TRNS, KC_TRNS, | ||
| 188 | KC_TRNS, | ||
| 189 | KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 190 | // right hand | ||
| 191 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 192 | KC_TRNS, KC_TRNS, KC_TRNS, M(M_ICIRC), M(M_IUMLT), KC_TRNS, KC_TRNS, | ||
| 193 | KC_TRNS, KC_TRNS, M(M_OCIRC), M(M_OUMLT), KC_TRNS, KC_TRNS, | ||
| 194 | KC_TRNS, KC_TRNS, KC_TRNS, M(M_YCIRC), M(M_YUMLT), KC_TRNS, KC_TRNS, | ||
| 195 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 196 | KC_TRNS, KC_TRNS, | ||
| 197 | KC_TRNS, | ||
| 198 | KC_TRNS, KC_TRNS, KC_TRNS | ||
| 199 | ), | ||
| 200 | }; | ||
| 201 | |||
| 202 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 203 | { | ||
| 204 | // MACRODOWN only works in this function | ||
| 205 | switch(id) { | ||
| 206 | case QCOPY: | ||
| 207 | if (record->event.pressed) { | ||
| 208 | return MACRO(I(255), | ||
| 209 | D(LCTRL), | ||
| 210 | T(C), | ||
| 211 | D(LSFT), | ||
| 212 | T(C), | ||
| 213 | U(LCTRL), | ||
| 214 | U(LSFT), | ||
| 215 | END); | ||
| 216 | } | ||
| 217 | break; | ||
| 218 | case QPASTE: | ||
| 219 | if (record->event.pressed) { | ||
| 220 | return MACRO(I(255), | ||
| 221 | D(LCTRL), | ||
| 222 | D(LSFT), | ||
| 223 | T(V), | ||
| 224 | U(LCTRL), | ||
| 225 | T(INS), | ||
| 226 | U(LSFT), | ||
| 227 | END); | ||
| 228 | } | ||
| 229 | break; | ||
| 230 | case M_ACIRC: | ||
| 231 | if (record->event.pressed) { | ||
| 232 | return MACRO(T(LBRC), // FR_CIRC | ||
| 233 | T(Q), // FR_A | ||
| 234 | END); | ||
| 235 | } | ||
| 236 | break; | ||
| 237 | case M_ECIRC: | ||
| 238 | if (record->event.pressed) { | ||
| 239 | return MACRO(T(LBRC), // FR_CIRC | ||
| 240 | T(E), | ||
| 241 | END); | ||
| 242 | } | ||
| 243 | break; | ||
| 244 | case M_UCIRC: | ||
| 245 | if (record->event.pressed) { | ||
| 246 | return MACRO(T(LBRC), // FR_CIRC | ||
| 247 | T(U), | ||
| 248 | END); | ||
| 249 | } | ||
| 250 | break; | ||
| 251 | case M_ICIRC: | ||
| 252 | if (record->event.pressed) { | ||
| 253 | return MACRO(T(LBRC), // FR_CIRC | ||
| 254 | T(I), | ||
| 255 | END); | ||
| 256 | } | ||
| 257 | break; | ||
| 258 | case M_OCIRC: | ||
| 259 | if (record->event.pressed) { | ||
| 260 | return MACRO(T(LBRC), // FR_CIRC | ||
| 261 | T(O), | ||
| 262 | END); | ||
| 263 | } | ||
| 264 | break; | ||
| 265 | case M_YCIRC: | ||
| 266 | if (record->event.pressed) { | ||
| 267 | return MACRO(T(LBRC), // FR_CIRC | ||
| 268 | T(Y), | ||
| 269 | END); | ||
| 270 | } | ||
| 271 | break; | ||
| 272 | case M_AUMLT: | ||
| 273 | if (record->event.pressed) { | ||
| 274 | return MACRO(D(LSFT), | ||
| 275 | T(LBRC), | ||
| 276 | U(LSFT), | ||
| 277 | T(Q), | ||
| 278 | END); | ||
| 279 | } | ||
| 280 | break; | ||
| 281 | case M_EUMLT: | ||
| 282 | if (record->event.pressed) { | ||
| 283 | return MACRO(D(LSFT), | ||
| 284 | T(LBRC), | ||
| 285 | U(LSFT), | ||
| 286 | T(E), | ||
| 287 | END); | ||
| 288 | } | ||
| 289 | break; | ||
| 290 | case M_UUMLT: | ||
| 291 | if (record->event.pressed) { | ||
| 292 | return MACRO(D(LSFT), | ||
| 293 | T(LBRC), | ||
| 294 | U(LSFT), | ||
| 295 | T(U), | ||
| 296 | END); | ||
| 297 | } | ||
| 298 | break; | ||
| 299 | case M_IUMLT: | ||
| 300 | if (record->event.pressed) { | ||
| 301 | return MACRO(D(LSFT), | ||
| 302 | T(LBRC), | ||
| 303 | U(LSFT), | ||
| 304 | T(I), | ||
| 305 | END); | ||
| 306 | } | ||
| 307 | break; | ||
| 308 | case M_OUMLT: | ||
| 309 | if (record->event.pressed) { | ||
| 310 | return MACRO(D(LSFT), | ||
| 311 | T(LBRC), | ||
| 312 | U(LSFT), | ||
| 313 | T(O), | ||
| 314 | END); | ||
| 315 | } | ||
| 316 | break; | ||
| 317 | case M_YUMLT: | ||
| 318 | if (record->event.pressed) { | ||
| 319 | return MACRO(D(LSFT), | ||
| 320 | T(LBRC), | ||
| 321 | U(LSFT), | ||
| 322 | T(Y), | ||
| 323 | END); | ||
| 324 | } | ||
| 325 | break; | ||
| 326 | |||
| 327 | } | ||
| 328 | return MACRO_NONE; | ||
| 329 | }; | 139 | }; |
| 330 | 140 | ||
| 331 | // Runs just one time when the keyboard initializes. | 141 | // Runs just one time when the keyboard initializes. |
| @@ -350,9 +160,6 @@ void matrix_scan_user(void) { | |||
| 350 | case MDIA: | 160 | case MDIA: |
| 351 | ergodox_right_led_2_on(); | 161 | ergodox_right_led_2_on(); |
| 352 | break; | 162 | break; |
| 353 | case ACC: | ||
| 354 | ergodox_right_led_3_on(); | ||
| 355 | break; | ||
| 356 | default: | 163 | default: |
| 357 | // none | 164 | // none |
| 358 | break; | 165 | break; |
diff --git a/layouts/community/ergodox/french_hacker/readme.md b/layouts/community/ergodox/french_hacker/readme.md index 6b0575af1..829013597 100644 --- a/layouts/community/ergodox/french_hacker/readme.md +++ b/layouts/community/ergodox/french_hacker/readme.md | |||
| @@ -1,30 +1,27 @@ | |||
| 1 | # French hacker layout | 1 | # French hacker layout |
| 2 | 2 | ||
| 3 | ## Introduction | ||
| 4 | |||
| 5 | [Colemak Mod-DH](https://colemakmods.github.io/mod-dh/) layout for | 3 | [Colemak Mod-DH](https://colemakmods.github.io/mod-dh/) layout for |
| 6 | users keeping an `azerty` layout configuration on their OS. | 4 | users keeping an `azerty` layout configuration on their OS. |
| 7 | 5 | ||
| 6 | ## Introduction | ||
| 7 | |||
| 8 | This keymap is for users keeping their operating systems configured with | 8 | This keymap is for users keeping their operating systems configured with |
| 9 | `azerty` - for typing passwords or in their native languages - but who | 9 | `azerty` - for typing passwords in their native languages, or for their laptop |
| 10 | wants a Colemak Mod-DH layout on their mechanical. | 10 | keyboard - but who wants a Colemak Mod-DH layout on their mechanical keyboard. |
| 11 | 11 | ||
| 12 | The symbols layers was done after analysing various programming | 12 | The symbols layers was done after analysing various programming |
| 13 | languages sources codes and should be close to optimal for typing | 13 | languages sources codes and should be close to optimal for typing |
| 14 | confort. | 14 | confort, see the link at the end of the README. |
| 15 | |||
| 16 | Special macros for [Qubes OS](https://www.qubes-os.org/) are included. | ||
| 17 | |||
| 18 | There is an accented characters layer for infrequent typing of french | ||
| 19 | accents. | ||
| 20 | 15 | ||
| 21 | Special macros for [Qubes OS](https://www.qubes-os.org/) are included. | 16 | The design is done to minimize the usage of the pinky fingers and reduces stress |
| 17 | on the hands, thus Alt and Ctrl keys are accessible for both hands. | ||
| 22 | 18 | ||
| 23 | ## Build | 19 | ## Flashing the firmware |
| 24 | 20 | ||
| 25 | cd keyboards/ergodox | 21 | ``` |
| 26 | make french_hacker | 22 | qmk flash -kb ergodox_ez -km french_hacker |
| 23 | ``` | ||
| 27 | 24 | ||
| 28 | ## Design explanations | 25 | ## Design explanations |
| 29 | 26 | ||
| 30 | See my [blog post](http://dialectical-computing.de/blog/blog/2017/01/29/a-better-coder-layout-for-the-ergodox-ez-keyboard/). | 27 | See my [blog post](http://www.dialectical-computing.de/blog/blog/2017/01/29/a-better-coder-layout-for-the-ergodox-ez-keyboard/). |
