keymap_french.h (4354B)
- // Copyright 2025 QMK
- // SPDX-License-Identifier: GPL-2.0-or-later
- /*******************************************************************************
- 88888888888 888 d8b .d888 d8b 888 d8b
- 888 888 Y8P d88P" Y8P 888 Y8P
- 888 888 888 888
- 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
- 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
- 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
- 888 888 888 888 X88 888 888 888 Y8b. 888 X88
- 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
- 888 888
- 888 888
- 888 888
- .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
- d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
- 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
- Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
- "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
- 888
- Y8b d88P
- "Y88P"
- *******************************************************************************/
- #pragma once
- #include "keycodes.h"
- // clang-format off
- #define QMK_FRENCH_KEYCODES_VERSION "0.0.1"
- #define QMK_FRENCH_KEYCODES_VERSION_BCD 0x00000001
- #define QMK_FRENCH_KEYCODES_VERSION_MAJOR 0
- #define QMK_FRENCH_KEYCODES_VERSION_MINOR 0
- #define QMK_FRENCH_KEYCODES_VERSION_PATCH 1
- // Aliases
- #define FR_SUP2 KC_GRV // ²
- #define FR_AMPR KC_1 // &
- #define FR_EACU KC_2 // é
- #define FR_DQUO KC_3 // "
- #define FR_QUOT KC_4 // '
- #define FR_LPRN KC_5 // (
- #define FR_MINS KC_6 // -
- #define FR_EGRV KC_7 // è
- #define FR_UNDS KC_8 // _
- #define FR_CCED KC_9 // ç
- #define FR_AGRV KC_0 // à
- #define FR_RPRN KC_MINS // )
- #define FR_EQL KC_EQL // =
- #define FR_A KC_Q // A
- #define FR_Z KC_W // Z
- #define FR_E KC_E // E
- #define FR_R KC_R // R
- #define FR_T KC_T // T
- #define FR_Y KC_Y // Y
- #define FR_U KC_U // U
- #define FR_I KC_I // I
- #define FR_O KC_O // O
- #define FR_P KC_P // P
- #define FR_CIRC KC_LBRC // ^ (dead)
- #define FR_DLR KC_RBRC // $
- #define FR_Q KC_A // Q
- #define FR_S KC_S // S
- #define FR_D KC_D // D
- #define FR_F KC_F // F
- #define FR_G KC_G // G
- #define FR_H KC_H // H
- #define FR_J KC_J // J
- #define FR_K KC_K // K
- #define FR_L KC_L // L
- #define FR_M KC_SCLN // M
- #define FR_UGRV KC_QUOT // ù
- #define FR_ASTR KC_NUHS // *
- #define FR_LABK KC_NUBS // <
- #define FR_W KC_Z // W
- #define FR_X KC_X // X
- #define FR_C KC_C // C
- #define FR_V KC_V // V
- #define FR_B KC_B // B
- #define FR_N KC_N // N
- #define FR_COMM KC_M // ,
- #define FR_SCLN KC_COMM // ;
- #define FR_COLN KC_DOT // :
- #define FR_EXLM KC_SLSH // !
- #define FR_1 S(FR_AMPR) // 1
- #define FR_2 S(FR_EACU) // 2
- #define FR_3 S(FR_DQUO) // 3
- #define FR_4 S(FR_QUOT) // 4
- #define FR_5 S(FR_LPRN) // 5
- #define FR_6 S(FR_MINS) // 6
- #define FR_7 S(FR_EGRV) // 7
- #define FR_8 S(FR_UNDS) // 8
- #define FR_9 S(FR_CCED) // 9
- #define FR_0 S(FR_AGRV) // 0
- #define FR_DEG S(FR_RPRN) // °
- #define FR_PLUS S(FR_EQL) // +
- #define FR_DIAE S(FR_CIRC) // ¨ (dead)
- #define FR_PND S(FR_DLR) // £
- #define FR_PERC S(FR_UGRV) // %
- #define FR_MICR S(FR_ASTR) // µ
- #define FR_RABK S(FR_LABK) // >
- #define FR_QUES S(FR_COMM) // ?
- #define FR_DOT S(FR_SCLN) // .
- #define FR_SLSH S(FR_COLN) // /
- #define FR_SECT S(FR_EXLM) // §
- #define FR_TILD ALGR(FR_EACU) // ~ (dead)
- #define FR_HASH ALGR(FR_DQUO) // #
- #define FR_LCBR ALGR(FR_QUOT) // {
- #define FR_LBRC ALGR(FR_LPRN) // [
- #define FR_PIPE ALGR(FR_MINS) // |
- #define FR_GRV ALGR(FR_EGRV) // ` (dead)
- #define FR_BSLS ALGR(FR_UNDS) // (backslash)
- #define FR_AT ALGR(FR_AGRV) // @
- #define FR_RBRC ALGR(FR_RPRN) // ]
- #define FR_RCBR ALGR(FR_EQL) // }
- #define FR_EURO ALGR(KC_E) // €
- #define FR_CURR ALGR(FR_DLR) // ¤