From 5d36118eaa2b7573090f4e1f42b6715f432bc7bb Mon Sep 17 00:00:00 2001
From: youdroid <13148824+youdroid@users.noreply.github.com>
Date: Sun, 15 Apr 2018 18:50:46 +0200
Subject: [PATCH] Add French Layout for XD75 (#2681)
---
keyboards/xd75/keymaps/french/README.md | 20 +++
keyboards/xd75/keymaps/french/config.h | 24 +++
keyboards/xd75/keymaps/french/keymap.c | 60 +++++++
keyboards/xd75/keymaps/french/keymap_french.c | 157 ++++++++++++++++++
keyboards/xd75/keymaps/french/rules.mk | 20 +++
5 files changed, 281 insertions(+)
create mode 100644 keyboards/xd75/keymaps/french/README.md
create mode 100644 keyboards/xd75/keymaps/french/config.h
create mode 100644 keyboards/xd75/keymaps/french/keymap.c
create mode 100644 keyboards/xd75/keymaps/french/keymap_french.c
create mode 100644 keyboards/xd75/keymaps/french/rules.mk
diff --git a/keyboards/xd75/keymaps/french/README.md b/keyboards/xd75/keymaps/french/README.md
new file mode 100644
index 000000000..8c5330290
--- /dev/null
+++ b/keyboards/xd75/keymaps/french/README.md
@@ -0,0 +1,20 @@
+# Clavier AZERTY français
+
+![Disposition Clavier](https://i.imgur.com/tH9TVBc.png)
+
+
+# Configuration du clavier
+
+Ce clavier AZERTY est basé sur le fichier keymap_french.c de correspondance QWERTY - AZERTY.
+
+Ce fichier est composé de trois énumérations (layout français, touches de contrôle, touches multimédias) correspondant aux keycodes sous la forme d'hexa.
+
+Il peut être utilisé pour toute autre configuration de clavier juste en incluant ce fichier dans son propre keymap.c.
+
+La touche de fonction permet elle d'avoir accès aux différentes touches multimédias ainsi qu'au pavé numérique. Mais aussi si le clavier est équipé de led, à différents modes d'éclairage.
+
+# Compilation
+
+```
+make xd75:french:dfu
+```
diff --git a/keyboards/xd75/keymaps/french/config.h b/keyboards/xd75/keymaps/french/config.h
new file mode 100644
index 000000000..015377b5f
--- /dev/null
+++ b/keyboards/xd75/keymaps/french/config.h
@@ -0,0 +1,24 @@
+/* Copyright 2017 Benjamin Kesselring
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif
diff --git a/keyboards/xd75/keymaps/french/keymap.c b/keyboards/xd75/keymaps/french/keymap.c
new file mode 100644
index 000000000..a5d14674a
--- /dev/null
+++ b/keyboards/xd75/keymaps/french/keymap.c
@@ -0,0 +1,60 @@
+#include "keymap_french.c"
+#include "xd75.h"
+
+
+// Layer shorthand
+#define _AZ 0
+#define _FN 1
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* AZERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | & | é | " | ' | ( | - | è | _ | ç | à | ) | = | INSERT | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | a | z | e | r | t | y | u | i | o | p | ^ | $ | ENTER | PG UP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | q | s | d | f | g | h | j | k | l | m | ù | * | ENTER | PG DN |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | w | x | c | v | b | n | , | ; | : | ! | < | LSHIFT | UP | DEL |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | CMD | ALT | FN | SPACE | SPACE | SPACE | SPACE | ALGR | MENU | HOME | END | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_AZ] = { /* AZERTY */
+ { FR_ESC, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPAR, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPAR, FR_EQUA, FR_INST, FR_BSPC },
+ { FR_TAB, FR_A, FR_Z, FR_E, FR_R, FR_T, FR_Y, FR_U, FR_I, FR_O, FR_P, FR_HAT, FR_DLR, FR_ENTR, FR_PGUP },
+ { FR_CAPL, FR_Q, FR_S, FR_D, FR_F, FR_G, FR_H, FR_J, FR_K, FR_L, FR_M, FR_UGRV, FR_AST, FR_ENTR, FR_PGDN },
+ { FR_LSFT, FR_W, FR_X, FR_C, FR_V, FR_B, FR_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXCL, FR_LESS, FR_RSFT, FR_UP, FR_DEL },
+ { FR_LCTR, FR_LCMD, FR_LALT, MO(_FN), FR_SPAC, FR_SPAC, FR_SPAC, FR_SPAC, FR_ALGR, FR_MENU, FR_HOME, FR_END, FR_LEFT, FR_DOWN, FR_RIGT },
+ },
+
+
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PRINT | LED |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | PREV | PLAY | NEXT | | | | | NUM LCK| 7 | 8 | 9 | * | | LED+ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | VOL- | MUTE | VOL+ | | | | | | 4 | 5 | 6 | - | | LED- |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | 1 | 2 | 3 | + | | LEDMAX |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | RESET | | | FN | | | | | | | 0 | . | PENT | | LEDLVL |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = { /* FUNCTION */
+ { FR_EMPT, FR_F1, FR_F2, FR_F3, FR_F4, FR_F5, FR_F6, FR_F7, FR_F8, FR_F9, FR_F10, FR_F11, FR_F12, FR_PSCR, BL_TOGG },
+ { FR_EMPT, FR_MPRV, FR_MPLY, FR_MNXT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_NUML, FR_7, FR_8, FR_9, FR_MULT, FR_EMPT, BL_INC },
+ { FR_EMPT, FR_MVDN, FR_MUTE, FR_MVUP, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_4, FR_5, FR_6, FR_MOIN, FR_EMPT, BL_DEC },
+ { FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_1, FR_2, FR_3, FR_PLUS, FR_EMPT, BL_ON },
+ { RESET, FR_EMPT, FR_EMPT, FR_TRANS, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_0, FR_DOT, FR_ENTK, FR_EMPT, BL_STEP },
+ },
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
diff --git a/keyboards/xd75/keymaps/french/keymap_french.c b/keyboards/xd75/keymaps/french/keymap_french.c
new file mode 100644
index 000000000..f7d068c33
--- /dev/null
+++ b/keyboards/xd75/keymaps/french/keymap_french.c
@@ -0,0 +1,157 @@
+enum french_key {
+
+ FR_EMPT = 0x00,
+ FR_TRANS,
+ FR_Q = 0x04,
+ FR_B,
+ FR_C,
+ FR_D,
+ FR_E,
+ FR_F,
+ FR_G,
+ FR_H,
+ FR_I,
+ FR_J,
+ FR_K,
+ FR_L,
+ FR_COMM, /* 0x10 */
+ FR_N,
+ FR_O,
+ FR_P,
+ FR_A,
+ FR_R,
+ FR_S,
+ FR_T,
+ FR_U,
+ FR_V,
+ FR_Z,
+ FR_X,
+ FR_Y,
+ FR_W,
+ FR_AMP,
+ FR_EACU,
+ FR_QUOT, /* 0x20 */
+ FR_APOS,
+ FR_LPAR,
+ FR_MINS,
+ FR_EGRV,
+ FR_UNDS,
+ FR_CCED,
+ FR_AGRV,
+ FR_ENTR,
+ FR_ESC,
+ FR_BSPC,
+ FR_TAB,
+ FR_SPAC,
+ FR_RPAR,
+ FR_EQUA,
+ FR_HAT,
+ FR_DLR, /* 0x30 */
+ FR_AST =0x32,
+ FR_M,
+ FR_UGRV,
+ FR_SCLN =0x36,
+ FR_COLN,
+ FR_EXCL,
+ FR_CAPL,
+ FR_F1,
+ FR_F2,
+ FR_F3,
+ FR_F4,
+ FR_F5,
+ FR_F6,
+ FR_F7, /* 0x40 */
+ FR_F8,
+ FR_F9,
+ FR_F10,
+ FR_F11,
+ FR_F12,
+ FR_PSCR,
+ FR_INST =0x49,
+ FR_HOME,
+ FR_PGUP,
+ FR_DEL,
+ FR_END,
+ FR_PGDN,
+ FR_RIGT,
+ FR_LEFT, /* 0x50 */
+ FR_DOWN,
+ FR_UP,
+ FR_NUML,
+ FR_SLSH, /* KEYPAD */
+ FR_MULT,
+ FR_MOIN,
+ FR_PLUS,
+ FR_ENTK,
+ FR_1,
+ FR_2,
+ FR_3,
+ FR_4,
+ FR_5,
+ FR_6,
+ FR_7,
+ FR_8, /* 0x60 */
+ FR_9,
+ FR_0,
+ FR_DOT,
+ FR_LESS,
+ FR_EQ =0x67 /* END KEYPAD */,
+ FR_F13,
+ FR_F14,
+ FR_F15,
+ FR_F16,
+ FR_F17,
+ FR_F18,
+ FR_F19,
+ FR_F20,
+ FR_F21, /* 0x70 */
+ FR_F22,
+ FR_F23,
+ FR_F24,
+ FR_MENU =0x76
+};
+
+
+enum french_control_touch{
+
+ /* Modifiers */
+ FR_LCTR = 0xE0,
+ FR_LSFT,
+ FR_LALT,
+ FR_LCMD,
+ FR_RCTR,
+ FR_RSFT,
+ FR_ALGR,
+ FR_RCMD
+};
+
+
+enum french_media_key{
+ /* System Control */
+ FR_SYSTEM_POWER = 0xA5,
+ FR_SYSTEM_SLEEP,
+ FR_SYSTEM_WAKE,
+
+ /* Media Control */
+ FR_MUTE,
+ FR_MVUP,
+ FR_MVDN,
+ FR_MNXT,
+ FR_MPRV,
+ FR_MSTP,
+ FR_MPLY,
+ FR_MEDIA_SELECT,
+ FR_MEDIA_EJECT,
+ FR_MAIL,
+ FR_CALCULATOR,
+ FR_MY_COMPUTER,
+ FR_WWW_SEARCH,
+ FR_WWW_HOME,
+ FR_WWW_BACK,
+ FR_WWW_FORWARD,
+ FR_WWW_STOP,
+ FR_WWW_REFRESH,
+ FR_WWW_FAVORITES,
+ FR_MEDIA_FAST_FORWARD,
+ FR_MEDIA_REWIND /* 0xBC */
+};
diff --git a/keyboards/xd75/keymaps/french/rules.mk b/keyboards/xd75/keymaps/french/rules.mk
new file mode 100644
index 000000000..dfd79792f
--- /dev/null
+++ b/keyboards/xd75/keymaps/french/rules.mk
@@ -0,0 +1,20 @@
+# Copyright 2013 Jun Wako
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+RGBLIGHT_ENABLE = no
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif