3 Cette page couvre les questions souvent posées à propos des keymaps. Si vous ne l'avez pas encore fait, vous devriez commencer par là [Aperçu des Keymap](keymap.md).
5 ## Quels Keycodes puis-je utiliser ?
7 Regardez [Keycodes](keycodes.md) pour une liste des keycodes disponibles. Certains keycodes spécifiques ont des documentations plus complètes de disponible.
9 Les keycodes sont définies dans [common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h).
11 ## Quels sont les keycodes par défaut ?
13 Il existe 3 configurations de clavier standard utilisées dans le monde: ANSI, ISO et JIS. L'Amérique du Nord utilise principalement l'ANSI, l'Europe et l'Afrique l'ISO et le Japon utilise JIS. Les autres régions utilisent généralement ANSI ou ISO. Les keycodes correspondant à ces dispositions spécifiques sont affichés ici :
15 <!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
16 ![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png)
18 ## Certaines de mes touches sont permutées ou ne fonctionnent pas
20 QMK possède deux fonctionnalités, Bootmagic et Command, qui vous permettent de modifier le comportement de votre clavier à la volée. Cela inclut, sans toutefois s'y limiter, l'échange de Ctrl / Majuscules, la désactivation de l'interface graphique, le basculement de Alt/Gui, le basculement de barre d'espacement arrière/barre oblique inversée, la désactivation de toutes les touches et d'autres modifications comportementales.
22 Pour résoudre rapidement le problème, essayez de maintenir les touches Espace + Retour arrière enfoncées pendant que vous branchez votre clavier. Cela réinitialisera les paramètres stockés sur votre clavier, ramenant ces touches à un fonctionnement normal. Si cela ne fonctionne pas, regardez ici:
24 * [Bootmagic](feature_bootmagic.md)
25 * [Command](feature_command.md)
27 ## La touche de menu ne fonctionne pas
29 La touche trouvée sur la plupart des claviers modernes située entre `KC_RGUI` et` KC_RCTL` est en réalité appelée `KC_APP`. En effet, lorsque cette touche a été inventée, il existait déjà une clé nommée `MENU` dans les normes correspondantes. MS a donc choisi de l'appeler la touche` APP`.
31 ## `KC_SYSREQ` ne fonctionne pas
33 Utilisez le keycode pour Print Screen (`KC_PSCREEN` or `KC_PSCR`) à la place de `KC_SYSREQ`. La combinaison de touche 'Alt + Print Screen' est reconnue comme 'System request'.
35 Voir [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) et
36 * http://en.wikipedia.org/wiki/Magic_SysRq_key
37 * http://en.wikipedia.org/wiki/System_request
39 ## Les touches alimentation ne fonctionnent pas
41 Un peu déroutant, il y a deux codes de touche "Alimentation" dans QMK: `KC_POWER` dans la page d'utilisation du clavier / keypad, et `KC_SYSTEM_POWER` (ou `KC_PWR`) dans la page Consumer.
43 Le premier n'est reconnu que sur macOS, alors que le dernier, `KC_SLEP` et `KC_WAKE` sont supportés par les trois principaux systèmes d'exploitation. Il est donc recommandé de les utiliser à la place. Sous Windows, ces touches prennent effet immédiatement, mais sur macOS, elles doivent être maintenues enfoncées jusqu'à ce qu'une boîte de dialogue apparaisse.
45 ## Modificateur "One Shot"
47 Cette fonctionnalité permet de corriger un problème avec la touche Shift. En effet, il arrive de saisir plusieurs majuscules en ne voulant en saisir qu'une sur un mot. Ex : `CEtte` à la place de `Cette`. La fonctionnalité « One shot » shift permet de corriger ça.
49 https://github.com/tmk/tmk_keyboard/issues/67
51 ## Le modificateur d'un calque reste bloqué
53 Les touches de modification ou les calques peuvent être bloquées si la commutation de calque n'est pas configurée correctement.
54 Pour les touches de modification et les actions de calque, vous devez placer `KC_TRANS` sur la même position du calque de destination afin de désenregistrer la clé de modificateur ou de revenir au calque précédent lors de la libération.
56 * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching
57 * http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
58 * https://github.com/tmk/tmk_keyboard/issues/248
60 ## Support de touche à verrouillage mécanique
62 Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](http://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h` :
65 #define LOCKING_SUPPORT_ENABLE
66 #define LOCKING_RESYNC_ENABLE
69 Une fois la fonction activée, utilisez les keycodes `KC_LCAP`, `KC_LNUM` et `KC_LSCR` dans votre keymap.
71 Des vieux claviers mécaniques ont parfois des touches à verrouillage, mais les claviers modernes n'en sont pas équipés. ***Vous n'avez pas besoin de cette fonction dans la majorité des cas et devez utiliser les keycodes `KC_CAPS`, `KC_NLCK` et `KC_SLCK`.***
73 ## Ajouter des caractères spéciaux autres que ASCII comme la cédille 'Ç'
75 IL N'EXISTE AUCUNE METHODE UNIVERSELLE POUR LES AJOUTER QUI FONCTIONNE SUR TOUS LES SYSTEMES. Vous devez définir une **MACRO** d'une manière spécifique à votre OS ou layout.
77 Voir ce post pour un exemple de code **MACRO**.
79 http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620
81 Sous **Windows** vous pouvez utiliser la touche `AltGr` ou **Alt code**.
82 * http://en.wikipedia.org/wiki/AltGr_key
83 * http://en.wikipedia.org/wiki/Alt_code
85 Sous **Mac OS** définissez une combinaison de touche `Option`.
86 * http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input
88 Sous **Xorg** vous pouvez utiliser une touche `compose` à la place.
89 * http://en.wikipedia.org/wiki/Compose_key
91 Et voir ceci pour une entrée **Unicode**.
92 * http://en.wikipedia.org/wiki/Unicode_input
94 ## Touche `Fn` sur macOS
96 Contrairement à la plupart des touches Fn, celle des claviers Apple a son propre code d'activation... en quelque sorte. Il remplace le sixième code d'activation dans un rapport de base 6KRO HID - de sorte qu'un clavier Apple ne contient en réalité que 5KRO.
98 Il est techniquement possible de demander à QMK d’envoyer ce keycode. Cependant, cela nécessite une modification du format du rapport pour ajouter l'état de la touche Fn.
99 Pire encore, ce keycode n'est reconnu que si les identifiants du clavier VID et PID correspondent à ceux d'un vrai clavier Apple. Malheureusement QMK ne peut juridiquement prendre en charge cette fonctionnalité et il y a peu de chance que la situation s'améliore.
101 Voir [cette issue](https://github.com/qmk/qmk_firmware/issues/2179) pour des informations détaillées.
103 ## Touches Media sous Mac OSX
105 #### KC_MNXT et KC_MPRV ne fonctionnent pas sous Mac
107 Utilisez `KC_MFFD`(`KC_MEDIA_FAST_FORWARD`) et `KC_MRWD`(`KC_MEDIA_REWIND`) à la place de `KC_MNXT` et `KC_MPRV`.
108 Voir https://github.com/tmk/tmk_keyboard/issues/195
110 ## Touches supportées sous Mac OSX?
112 Vous pouvez connaître les keycodes supportés par OSX en lisant ce code source.
114 `usb_2_adb_keymap` contient les tableaux des pages Keyboard/Keypad vers les scancodes ADB (keycodes interne à OSX).
116 https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/Cosmo_USB2ADB.c
118 Et `IOHIDConsumer::dispatchConsumerEvent` s'occupe des utilisations Consumer page.
120 https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp
122 ## Touches JIS dans Mac OSX
124 Les touches de clavier spécifiques JIS comme `無変換(Muhenkan)`, `変換(Henkan)`, `ひらがな(hiragana)` ne sont pas reconnues par OSX. Vous pouvez utiliser **Seil** pour les activer, esssayez les options suivantes.
126 * Activer la touche NFER sur clavier PC
127 * Activer la touche XFER sur clavier PC
128 * Activer la touche KATAKANA sur clavier PC
130 https://pqrs.org/osx/karabiner/seil.html
132 ## RN-42 Bluetooth ne fonctionne pas avec Karabiner
134 Karabiner - Outil de Keymapping sous Mac OSX - Ignore les entrées du module RN-42. Vous devez activer cette option pour rendre Karabiner compatible avec votre clavier.
135 https://github.com/tekezo/Karabiner/issues/403#issuecomment-102559237
137 Plus de détails sur ce problème sur les liens suivants.
138 https://github.com/tmk/tmk_keyboard/issues/213
139 https://github.com/tekezo/Karabiner/issues/403
141 ## Esc et <code>`</code> sur une touche simple.
143 Cette fonctionnalité permet d'utiliser une touche à la fois comme touche Échap ou une touche `§` (En Azerty) selon le cas d’utilisation. Cela est très utile sur un clavier de petite taille.
145 Voir la fonctionnalité [Grave Escape](feature_grave_esc.md).
147 ## Avoir les touches modificatrices qui ont double usage en flèches directionnelles.
149 Ceci transforme les touches "modificateur droit" en touches fléchées lorsque les touches sont seulement "tapées" tout en restant des modificateurs lorsqu'elles sont maintenues.
151 Dans TMK la fonction double rôle s'appelle **TAP**.
155 #include "keymap_common.h"
158 /* Arrow keys on right modifier keys with TMK dual role feature
160 * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#213-modifier-with-tap-keydual-role
161 * https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
163 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
166 ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS,BSPC, \
167 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
168 LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \
169 LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,FN0, ESC, \
170 FN4, LGUI,LALT, SPC, APP, FN2, FN1, FN3),
172 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,TRNS, \
173 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\
174 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
175 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN5, TRNS, \
176 TRNS,TRNS,TRNS, TRNS, TRNS,FN7, FN6, FN8),
179 const uint16_t PROGMEM fn_actions[] = {
180 [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_UP),
181 [1] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_DOWN),
182 [2] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_LEFT),
183 [3] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RIGHT),
184 [4] = ACTION_LAYER_MOMENTARY(1),
185 [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_PGUP),
186 [6] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_PGDN),
187 [7] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_HOME),
188 [8] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_END),
193 Touches double rôle : https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
197 Le keycode`KC_EJCT` fonctionne sous OSX. https://github.com/tmk/tmk_keyboard/issues/250
199 Il semble que Windows 10 ignore le code et Linux/Xorg le reconnaît mais n'a pas de mapping par défaut.
201 Nous ne sommes pas sûr quel keycode est utilisé pour la touche Eject sur les claviers Apple officiels. HHKB utilise `F20` pour la touche Eject (`Fn+f`) lorsqu'il est en mode Mac, mais ce n'est probablement pas la même chose que le keycode Eject d'Apple.
203 ## Qu'est-ce que `weak_mods` et `real_mods` dans `action_util.c`
207 real_mods est prévu pour retenir l'état des touches modificateur réelles/physiques, alors que weak_mods ne retient l'état que des modificateurs temporaires ou virtuels qui ne devraient pas affecter l'état des touches modificaterus réelles.
209 Par exemple, disons que vous maintenez la touche physique "shift gauche" et tapez ACTION_MODS_KEY(LSHIFT, KC_A),
213 * (1) maintenir shift gauche : real_mods |= MOD_BIT(LSHIFT)
214 * (2) appuyer ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods |= MOD_BIT(LSHIFT)
215 * (3) lâcher ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods &= ~MOD_BIT(LSHIFT)
216 real_mods garde sur état modificateur.
220 * (1) maintenir shift gauche : real_mods |= MOD_BIT(LSHIFT)
221 * (2) appuyer ACTION_MODS_KEY(LSHIFT, KC_A): real_mods |= MOD_BIT(LSHIFT)
222 * (3) lâcher ACTION_MODS_KEY(LSHIFT, KC_A): real_mods &= ~MOD_BIT(LSHIFT)
223 ici real_mods a perdu son état pour 'shift gauche physique'.
225 weak_mods est ORed avec real_mods lorsque le rapport du clavier est envoyé.
226 https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57