mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-04 07:12:33 +01:00 
			
		
		
		
	[Docs] Remove some outdated FAQ items (#7607)
This commit is contained in:
		
							parent
							
								
									ccda62616d
								
							
						
					
					
						commit
						770a4ee729
					
				@ -87,10 +87,6 @@ Re-running the QMK installation script (`./util/qmk_install.sh` from the `qmk_fi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
If that doesn't work, then you may need to download and run Zadig. See [Bootloader Driver Installation with Zadig](driver_installation_zadig.md) for more detailed information.
 | 
					If that doesn't work, then you may need to download and run Zadig. See [Bootloader Driver Installation with Zadig](driver_installation_zadig.md) for more detailed information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## WINAVR is Obsolete
 | 
					 | 
				
			||||||
It is no longer recommended and may cause some problem.
 | 
					 | 
				
			||||||
See [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## USB VID and PID
 | 
					## USB VID and PID
 | 
				
			||||||
You can use any ID you want with editing `config.h`. Using any presumably unused ID will be no problem in fact except for very low chance of collision with other product.
 | 
					You can use any ID you want with editing `config.h`. Using any presumably unused ID will be no problem in fact except for very low chance of collision with other product.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -112,56 +112,6 @@ In C `1` means one of [int] type which is [16 bit] in case of AVR so you can't s
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
 | 
					http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
## Bootloader Jump Doesn't Work
 | 
					 | 
				
			||||||
Properly configure bootloader size in **Makefile**. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**.
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
# Size of Bootloaders in bytes:
 | 
					 | 
				
			||||||
#   Atmel DFU loader(ATmega32U4)   4096
 | 
					 | 
				
			||||||
#   Atmel DFU loader(AT90USB128)   8192
 | 
					 | 
				
			||||||
#   LUFA bootloader(ATmega32U4)    4096
 | 
					 | 
				
			||||||
#   Arduino Caterina(ATmega32U4)   4096
 | 
					 | 
				
			||||||
#   USBaspLoader(ATmega***)        2048
 | 
					 | 
				
			||||||
#   Teensy   halfKay(ATmega32U4)   512
 | 
					 | 
				
			||||||
#   Teensy++ halfKay(AT90USB128)   2048
 | 
					 | 
				
			||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
AVR Boot section size are defined by setting **BOOTSZ** fuse in fact. Consult with your MCU datasheet.
 | 
					 | 
				
			||||||
Note that **Word**(2 bytes) size and address are used in datasheet while TMK uses **Byte**.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AVR Boot section is located at end of Flash memory like the followings.
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
byte     Atmel/LUFA(ATMega32u4)          byte     Atmel(AT90SUB1286)
 | 
					 | 
				
			||||||
0x0000   +---------------+               0x00000  +---------------+
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |  Application  |                        |  Application  |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         =               =                        =               =
 | 
					 | 
				
			||||||
         |               | 32KB-4KB               |               | 128KB-8KB
 | 
					 | 
				
			||||||
0x6000   +---------------+               0x1E000  +---------------+
 | 
					 | 
				
			||||||
         |  Bootloader   | 4KB                    |  Bootloader   | 8KB
 | 
					 | 
				
			||||||
0x7FFF   +---------------+               0x1FFFF  +---------------+
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
byte     Teensy(ATMega32u4)              byte     Teensy++(AT90SUB1286)
 | 
					 | 
				
			||||||
0x0000   +---------------+               0x00000  +---------------+
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |  Application  |                        |  Application  |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         =               =                        =               =
 | 
					 | 
				
			||||||
         |               | 32KB-512B              |               | 128KB-2KB
 | 
					 | 
				
			||||||
0x7E00   +---------------+               0x1FC00  +---------------+
 | 
					 | 
				
			||||||
         |  Bootloader   | 512B                   |  Bootloader   | 2KB
 | 
					 | 
				
			||||||
0x7FFF   +---------------+               0x1FFFF  +---------------+
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
And see this discussion for further reference.
 | 
					 | 
				
			||||||
https://github.com/tmk/tmk_keyboard/issues/179
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
If you are using a TeensyUSB, there is a [known bug](https://github.com/qmk/qmk_firmware/issues/164) in which the hardware reset button prevents the RESET key from working. Unplugging the keyboard and plugging it back in should resolve the problem.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Special Extra Key Doesn't Work (System, Audio Control Keys)
 | 
					## Special Extra Key Doesn't Work (System, Audio Control Keys)
 | 
				
			||||||
You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK.
 | 
					You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -194,24 +144,6 @@ If you would like to keep JTAG enabled, just add the following to your `config.h
 | 
				
			|||||||
#define NO_JTAG_DISABLE
 | 
					#define NO_JTAG_DISABLE
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Adding LED Indicators of Lock Keys
 | 
					 | 
				
			||||||
You need your own LED indicators for CapsLock, ScrollLock and NumLock? See this post.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Program Arduino Micro/Leonardo
 | 
					 | 
				
			||||||
Push reset button and then run command like this within 8 seconds.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:adb_usb.hex -P/dev/ttyACM0
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device name will vary depending on your system.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http://arduino.cc/en/Main/ArduinoBoardMicro
 | 
					 | 
				
			||||||
https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## USB 3 Compatibility
 | 
					## USB 3 Compatibility
 | 
				
			||||||
I heard some people have a problem with USB 3 port, try USB 2 port.
 | 
					I heard some people have a problem with USB 3 port, try USB 2 port.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -67,24 +67,8 @@ After enabling this feature use keycodes `KC_LCAP`, `KC_LNUM` and `KC_LSCR` in y
 | 
				
			|||||||
Old vintage mechanical keyboards occasionally have lock switches but modern ones don't have. ***You don't need this feature in most case and just use keycodes `KC_CAPS`, `KC_NLCK` and `KC_SLCK`.***
 | 
					Old vintage mechanical keyboards occasionally have lock switches but modern ones don't have. ***You don't need this feature in most case and just use keycodes `KC_CAPS`, `KC_NLCK` and `KC_SLCK`.***
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Input Special Characters Other Than ASCII like Cédille 'Ç'
 | 
					## Input Special Characters Other Than ASCII like Cédille 'Ç'
 | 
				
			||||||
NO UNIVERSAL METHOD TO INPUT THOSE WORKS OVER ALL SYSTEMS. You have to define **MACRO** in way specific to your OS or layout.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
See this post for example **MACRO** code.
 | 
					See the [Unicode](feature_unicode.md) feature.
 | 
				
			||||||
 | 
					 | 
				
			||||||
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
On **Windows** you can use `AltGr` key or **Alt code**.
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/AltGr_key
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Alt_code
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
On **Mac** OS defines `Option` key combinations.
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
On **Xorg** you can use `compose` key, instead.
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Compose_key
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
And see this for **Unicode** input.
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Unicode_input
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## `Fn` Key on macOS
 | 
					## `Fn` Key on macOS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -130,51 +114,6 @@ https://github.com/tekezo/Karabiner/issues/403
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
See the [Grave Escape](feature_grave_esc.md) feature.
 | 
					See the [Grave Escape](feature_grave_esc.md) feature.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Arrow on Right Modifier Keys with Dual-Role
 | 
					 | 
				
			||||||
This turns right modifier keys into arrow keys when the keys are tapped while still modifiers when the keys are hold. In TMK the dual-role function is dubbed **TAP**.
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "keymap_common.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Arrow keys on right modifier keys with TMK dual role feature
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 *  https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#213-modifier-with-tap-keydual-role
 | 
					 | 
				
			||||||
 *  https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
					 | 
				
			||||||
    /* 0: qwerty */
 | 
					 | 
				
			||||||
    [0] = LAYOUT( \
 | 
					 | 
				
			||||||
        ESC, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, NUHS,BSPC, \
 | 
					 | 
				
			||||||
        TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS, \
 | 
					 | 
				
			||||||
        LCTL,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,ENT,  \
 | 
					 | 
				
			||||||
        LSFT,NUBS,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,FN0, ESC, \
 | 
					 | 
				
			||||||
        FN4, LGUI,LALT,          SPC,                     APP, FN2, FN1, FN3),
 | 
					 | 
				
			||||||
    [1] = LAYOUT( \
 | 
					 | 
				
			||||||
        GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, TRNS,TRNS, \
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN5, TRNS, \
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,          TRNS,                    TRNS,FN7, FN6, FN8),
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const uint16_t PROGMEM fn_actions[] = {
 | 
					 | 
				
			||||||
    [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_UP),
 | 
					 | 
				
			||||||
    [1] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_DOWN),
 | 
					 | 
				
			||||||
    [2] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_LEFT),
 | 
					 | 
				
			||||||
    [3] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RIGHT),
 | 
					 | 
				
			||||||
    [4] = ACTION_LAYER_MOMENTARY(1),
 | 
					 | 
				
			||||||
    [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_PGUP),
 | 
					 | 
				
			||||||
    [6] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_PGDN),
 | 
					 | 
				
			||||||
    [7] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_HOME),
 | 
					 | 
				
			||||||
    [8] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_END),
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Eject on Mac OSX
 | 
					## Eject on Mac OSX
 | 
				
			||||||
`KC_EJCT` keycode works on OSX. https://github.com/tmk/tmk_keyboard/issues/250
 | 
					`KC_EJCT` keycode works on OSX. https://github.com/tmk/tmk_keyboard/issues/250
 | 
				
			||||||
It seems Windows 10 ignores the code and Linux/Xorg recognizes but has no mapping by default.
 | 
					It seems Windows 10 ignores the code and Linux/Xorg recognizes but has no mapping by default.
 | 
				
			||||||
 | 
				
			|||||||
@ -86,10 +86,6 @@ Relancer le script d'installation de QMK (`./util/qmk_install.sh` situé dans r
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Si vous rencontrez toujours des problèmes, essayez de télécharger et lancer Zadig. Voir [Installation du driver du bootloader avec Zadig](driver_installation_zadig.md) pour plus d'informations.
 | 
					Si vous rencontrez toujours des problèmes, essayez de télécharger et lancer Zadig. Voir [Installation du driver du bootloader avec Zadig](driver_installation_zadig.md) pour plus d'informations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## WINAVR est obsolète
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Il n'est plus recommandé et peut causer des problèmes. Voir [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## USB VID et PID
 | 
					## USB VID et PID
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Vous pouvez utiliser l'ID de votre choix en modifier `config.h`. Il y a peu de chance de conflit avec d'autres produits.
 | 
					Vous pouvez utiliser l'ID de votre choix en modifier `config.h`. Il y a peu de chance de conflit avec d'autres produits.
 | 
				
			||||||
 | 
				
			|||||||
@ -104,58 +104,6 @@ En C, `1` implique un type [int] qui est [16 bits] pour les AVR, ce qui implique
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
 | 
					http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Bootloader Jump ne fonctionne pas
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Configurez correctement la taille du bootloader dans le **Makefile**. Une mauvaise taille de section du bootloader empêchera probablement le démarrage avec **Magic command** et **Boot Magic**.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
# Size of Bootloaders in bytes:
 | 
					 | 
				
			||||||
#   Atmel DFU loader(ATmega32U4)   4096
 | 
					 | 
				
			||||||
#   Atmel DFU loader(AT90USB128)   8192
 | 
					 | 
				
			||||||
#   LUFA bootloader(ATmega32U4)    4096
 | 
					 | 
				
			||||||
#   Arduino Caterina(ATmega32U4)   4096
 | 
					 | 
				
			||||||
#   USBaspLoader(ATmega***)        2048
 | 
					 | 
				
			||||||
#   Teensy   halfKay(ATmega32U4)   512
 | 
					 | 
				
			||||||
#   Teensy++ halfKay(AT90USB128)   2048
 | 
					 | 
				
			||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
La taille de la section de démarrage de AVR est définie par l'option **BOOTSZ** fuse. Vérifiez la fiche technique du MCU. Veuilez noter que les tailles et adresses sont définies en **Word** (2 octets) dans la fiche technique alors que TMK utilise des **Byte**.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
La section de boot AVR se trouve à la fin de la mémoire flash, comme suit.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
byte     Atmel/LUFA(ATMega32u4)          byte     Atmel(AT90SUB1286)
 | 
					 | 
				
			||||||
0x0000   +---------------+               0x00000  +---------------+
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |  Application  |                        |  Application  |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         =               =                        =               =
 | 
					 | 
				
			||||||
         |               | 32KB-4KB               |               | 128KB-8KB
 | 
					 | 
				
			||||||
0x6000   +---------------+               0x1E000  +---------------+
 | 
					 | 
				
			||||||
         |  Bootloader   | 4KB                    |  Bootloader   | 8KB
 | 
					 | 
				
			||||||
0x7FFF   +---------------+               0x1FFFF  +---------------+
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
byte     Teensy(ATMega32u4)              byte     Teensy++(AT90SUB1286)
 | 
					 | 
				
			||||||
0x0000   +---------------+               0x00000  +---------------+
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |  Application  |                        |  Application  |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         =               =                        =               =
 | 
					 | 
				
			||||||
         |               | 32KB-512B              |               | 128KB-2KB
 | 
					 | 
				
			||||||
0x7E00   +---------------+               0x1FC00  +---------------+
 | 
					 | 
				
			||||||
         |  Bootloader   | 512B                   |  Bootloader   | 2KB
 | 
					 | 
				
			||||||
0x7FFF   +---------------+               0x1FFFF  +---------------+
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Référez-vous à cette discussion pour plus de référence.
 | 
					 | 
				
			||||||
https://github.com/tmk/tmk_keyboard/issues/179
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Si vous utilisez un TeensyUSB, il y a un [bug connu](https://github.com/qmk/qmk_firmware/issues/164) qui fait que le bouton reset matériel empêche la touche RESET de fonctionner. Débrancher et rebrancher le clavier devrait résoudre le problème.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Les touches spéciales ne fonctionnent pas (Touche Système, Touches de contrôle du son)
 | 
					## Les touches spéciales ne fonctionnent pas (Touche Système, Touches de contrôle du son)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Vous devez définir `EXTRAKEY_ENABLE` dans le fichier `rules.mk` pour les utiliser dans QMK.
 | 
					Vous devez définir `EXTRAKEY_ENABLE` dans le fichier `rules.mk` pour les utiliser dans QMK.
 | 
				
			||||||
@ -189,25 +137,6 @@ Si vous voulez garder JTAG activé, ajoutez la ligne suivante à votre fichier `
 | 
				
			|||||||
#define NO_JTAG_DISABLE
 | 
					#define NO_JTAG_DISABLE
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Adding LED Indicators of Lock Keys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Si vous souhaitez votre propre indicateur LED pour CapsLock, ScrollLock et NumLock alors lisez ce post.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Programmer Arduino Micro/Leonardo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Appuyez sur le bouton reset puis lancez la commande suivante dans les 8 secondes.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:adb_usb.hex -P/dev/ttyACM0
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Le nom du périphérique peut varier en fonction de votre système.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http://arduino.cc/en/Main/ArduinoBoardMicro
 | 
					 | 
				
			||||||
https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Compatibilité USB 3
 | 
					## Compatibilité USB 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Il semble que certaines personnes ont eu des problèmes avec les ports USB 3, essayez un port USB 2.
 | 
					Il semble que certaines personnes ont eu des problèmes avec les ports USB 3, essayez un port USB 2.
 | 
				
			||||||
 | 
				
			|||||||
@ -72,24 +72,7 @@ Des vieux claviers mécaniques ont parfois des touches à verrouillage, mais les
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Ajouter des caractères spéciaux autres que ASCII comme la cédille 'Ç'
 | 
					## Ajouter des caractères spéciaux autres que ASCII comme la cédille 'Ç'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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.
 | 
					Voir la fonctionnalité [Unicode](feature_unicode.md).
 | 
				
			||||||
 | 
					 | 
				
			||||||
Voir ce post pour un exemple de code **MACRO**.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sous **Windows** vous pouvez utiliser la touche `AltGr` ou **Alt code**.
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/AltGr_key
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Alt_code
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sous **Mac OS** définissez une combinaison de touche `Option`.
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sous **Xorg** vous pouvez utiliser une touche `compose` à la place.
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Compose_key
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Et voir ceci pour une entrée **Unicode**.
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Unicode_input
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Touche `Fn` sur macOS
 | 
					## Touche `Fn` sur macOS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -144,54 +127,6 @@ Cette fonctionnalité permet d'utiliser une touche à la fois comme touche Écha
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Voir la fonctionnalité [Grave Escape](feature_grave_esc.md).
 | 
					Voir la fonctionnalité [Grave Escape](feature_grave_esc.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Avoir les touches modificatrices qui ont double usage en flèches directionnelles.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dans TMK la fonction double rôle s'appelle **TAP**.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```C
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "keymap_common.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Arrow keys on right modifier keys with TMK dual role feature
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 *  https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#213-modifier-with-tap-keydual-role
 | 
					 | 
				
			||||||
 *  https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
					 | 
				
			||||||
    /* 0: qwerty */
 | 
					 | 
				
			||||||
    [0] = LAYOUT( \
 | 
					 | 
				
			||||||
        ESC, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, NUHS,BSPC, \
 | 
					 | 
				
			||||||
        TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS, \
 | 
					 | 
				
			||||||
        LCTL,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,ENT,  \
 | 
					 | 
				
			||||||
        LSFT,NUBS,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,FN0, ESC, \
 | 
					 | 
				
			||||||
        FN4, LGUI,LALT,          SPC,                     APP, FN2, FN1, FN3),
 | 
					 | 
				
			||||||
    [1] = LAYOUT( \
 | 
					 | 
				
			||||||
        GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, TRNS,TRNS, \
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN5, TRNS, \
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,          TRNS,                    TRNS,FN7, FN6, FN8),
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const uint16_t PROGMEM fn_actions[] = {
 | 
					 | 
				
			||||||
    [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_UP),
 | 
					 | 
				
			||||||
    [1] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_DOWN),
 | 
					 | 
				
			||||||
    [2] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_LEFT),
 | 
					 | 
				
			||||||
    [3] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RIGHT),
 | 
					 | 
				
			||||||
    [4] = ACTION_LAYER_MOMENTARY(1),
 | 
					 | 
				
			||||||
    [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_PGUP),
 | 
					 | 
				
			||||||
    [6] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_PGDN),
 | 
					 | 
				
			||||||
    [7] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_HOME),
 | 
					 | 
				
			||||||
    [8] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_END),
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Touches double rôle : https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Eject sur Mac OSX
 | 
					## Eject sur Mac OSX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Le keycode`KC_EJCT` fonctionne sous OSX. https://github.com/tmk/tmk_keyboard/issues/250
 | 
					Le keycode`KC_EJCT` fonctionne sous OSX. https://github.com/tmk/tmk_keyboard/issues/250
 | 
				
			||||||
 | 
				
			|||||||
@ -56,11 +56,6 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666"
 | 
				
			|||||||
?> 事实上没有一个驱动的最佳选择,有些选项就是和某些系统相辅相成。但libUSB和WinUSB似乎也算是这里的最佳选择了。
 | 
					?> 事实上没有一个驱动的最佳选择,有些选项就是和某些系统相辅相成。但libUSB和WinUSB似乎也算是这里的最佳选择了。
 | 
				
			||||||
如果bootloader在设备列表中没有显示,你可能要使能 "List all devices"选项在选项菜单中`Options`,然后找到有问题的bootloader设备。(译者注:在win10中可能为 查看-显示隐藏的设备)
 | 
					如果bootloader在设备列表中没有显示,你可能要使能 "List all devices"选项在选项菜单中`Options`,然后找到有问题的bootloader设备。(译者注:在win10中可能为 查看-显示隐藏的设备)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
## WINAVR已淘汰
 | 
					 | 
				
			||||||
不再推荐使用WINAVR,使用可能会导致问题
 | 
					 | 
				
			||||||
详情请见[TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## USB VID 和 PID
 | 
					## USB VID 和 PID
 | 
				
			||||||
你可以在编辑`config.h`时使用任何你想用的ID值。实际上,使用任何可能未使用的ID都没有问题,除了有极低的与其他产品发生冲突的可能性。
 | 
					你可以在编辑`config.h`时使用任何你想用的ID值。实际上,使用任何可能未使用的ID都没有问题,除了有极低的与其他产品发生冲突的可能性。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -101,56 +101,6 @@ https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switc
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
 | 
					http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
## Bootloader跳转不好用
 | 
					 | 
				
			||||||
在**Makefile**中正确配置**Makefile**大小。如果分区大小不正确,引导加载程序可能无法从**Magic command**和**Boot Magic**加载。
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
#   bootloader字节数:
 | 
					 | 
				
			||||||
#   Atmel DFU loader(ATmega32U4)   4096
 | 
					 | 
				
			||||||
#   Atmel DFU loader(AT90USB128)   8192
 | 
					 | 
				
			||||||
#   LUFA bootloader(ATmega32U4)    4096
 | 
					 | 
				
			||||||
#   Arduino Caterina(ATmega32U4)   4096
 | 
					 | 
				
			||||||
#   USBaspLoader(ATmega***)        2048
 | 
					 | 
				
			||||||
#   Teensy   halfKay(ATmega32U4)   512
 | 
					 | 
				
			||||||
#   Teensy++ halfKay(AT90USB128)   2048
 | 
					 | 
				
			||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
AVR引导大小是通过**BOOTSZ**熔丝位来设置的。查阅你单片机的datasheet。
 | 
					 | 
				
			||||||
记住,datasheet用的是**Word**(2字节)表示大小和地址,TMK用的是**Byte**。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AVR引导部分位于闪存的末尾,如下所示(Application是应用区,Bootloader是引导区)。
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
byte     Atmel/LUFA(ATMega32u4)          byte     Atmel(AT90SUB1286)
 | 
					 | 
				
			||||||
0x0000   +---------------+               0x00000  +---------------+
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |  Application  |                        |  Application  |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         =               =                        =               =
 | 
					 | 
				
			||||||
         |               | 32KB-4KB               |               | 128KB-8KB
 | 
					 | 
				
			||||||
0x6000   +---------------+               0x1E000  +---------------+
 | 
					 | 
				
			||||||
         |  Bootloader   | 4KB                    |  Bootloader   | 8KB
 | 
					 | 
				
			||||||
0x7FFF   +---------------+               0x1FFFF  +---------------+
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
byte     Teensy(ATMega32u4)              byte     Teensy++(AT90SUB1286)
 | 
					 | 
				
			||||||
0x0000   +---------------+               0x00000  +---------------+
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         |  Application  |                        |  Application  |
 | 
					 | 
				
			||||||
         |               |                        |               |
 | 
					 | 
				
			||||||
         =               =                        =               =
 | 
					 | 
				
			||||||
         |               | 32KB-512B              |               | 128KB-2KB
 | 
					 | 
				
			||||||
0x7E00   +---------------+               0x1FC00  +---------------+
 | 
					 | 
				
			||||||
         |  Bootloader   | 512B                   |  Bootloader   | 2KB
 | 
					 | 
				
			||||||
0x7FFF   +---------------+               0x1FFFF  +---------------+
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
详情请见下方issue。
 | 
					 | 
				
			||||||
https://github.com/tmk/tmk_keyboard/issues/179
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
如果你使用TeensyUSB, 有一个[已知bug](https://github.com/qmk/qmk_firmware/issues/164)硬件重置按钮阻止软件定义重置键工作。重新插拔键盘就好了。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 特殊额外键不起作用(系统,音频控制键)
 | 
					## 特殊额外键不起作用(系统,音频控制键)
 | 
				
			||||||
你要在`rules.mk`定义`EXTRAKEY_ENABLE`在QMK中使用它们。
 | 
					你要在`rules.mk`定义`EXTRAKEY_ENABLE`在QMK中使用它们。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -173,24 +123,6 @@ EXTRAKEY_ENABLE = yes          # 音频控制和系统控制
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Arduino Leonardo和micro使用**ATMega32U4**,该芯片TMK可用,但Arduino的bootloader会导致问题。
 | 
					Arduino Leonardo和micro使用**ATMega32U4**,该芯片TMK可用,但Arduino的bootloader会导致问题。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 为锁定键添加指示灯
 | 
					 | 
				
			||||||
你要自制CapsLock, ScrollLock 和 NumLock指示灯?见下文。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 为Arduino Micro/Leonardo编程
 | 
					 | 
				
			||||||
按下重置键然后在8秒内运行下方这样的命令。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:adb_usb.hex -P/dev/ttyACM0
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
设备名称因系统而异。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http://arduino.cc/en/Main/ArduinoBoardMicro
 | 
					 | 
				
			||||||
https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## USB 3 兼容性
 | 
					## USB 3 兼容性
 | 
				
			||||||
据传说有些人用USB3接口会有问题,用USB2的试试。
 | 
					据传说有些人用USB3接口会有问题,用USB2的试试。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -66,24 +66,8 @@ https://github.com/tmk/tmk_keyboard/issues/67
 | 
				
			|||||||
远古机械键盘偶尔会有自锁机械开关,现在几乎没有了。***大多数情况下你不需要使用该功能,且要使用`KC_CAPS`, `KC_NLCK`和`KC_SLCK`这三个键码。***
 | 
					远古机械键盘偶尔会有自锁机械开关,现在几乎没有了。***大多数情况下你不需要使用该功能,且要使用`KC_CAPS`, `KC_NLCK`和`KC_SLCK`这三个键码。***
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 输入ASCII之外的特殊字符比如Cédille 'Ç'
 | 
					## 输入ASCII之外的特殊字符比如Cédille 'Ç'
 | 
				
			||||||
没有在所有系统中输入这个的通用方法。你要定义针对你的特定操作系统或布局的**宏**。
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
比如看这个**宏**代码的文章。
 | 
					请见[Unicode](feature_unicode.md)功能。
 | 
				
			||||||
 | 
					 | 
				
			||||||
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620
 | 
					 | 
				
			||||||
<!--翻译问题:下方维基百科链接应全部替换为中文链接,暂未找到全部-->
 | 
					 | 
				
			||||||
在**Windows**上,可以用`AltGr`键或**Alt码**。
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/AltGr_key
 | 
					 | 
				
			||||||
* https://zh.wikipedia.org/wiki/Alt%E7%A0%81
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
在**Mac OS**定义`Option`键组合。
 | 
					 | 
				
			||||||
* https://zh.wikipedia.org/wiki/Option%E9%94%AE#%E6%9B%BF%E4%BB%A3%E9%94%AE%E7%9B%98%E8%BE%93%E5%85%A5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
在**Xorg**可以改用`compose`键。
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Compose_key
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
下方链接查看**Unicode**输入。
 | 
					 | 
				
			||||||
* http://en.wikipedia.org/wiki/Unicode_input
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## macOS上的`Fn` 
 | 
					## macOS上的`Fn` 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -136,51 +120,6 @@ https://github.com/tekezo/Karabiner/issues/403
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
请见[Grave Escape](feature_grave_esc.md)功能。
 | 
					请见[Grave Escape](feature_grave_esc.md)功能。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 右侧双角色修改键(诸如Shift、Alt等有修改其他键作用的键)变箭头键
 | 
					 | 
				
			||||||
右侧修改键单击时会变为箭头键,长按就还是修改键。在TMK中双角色键称之为**TAP**.
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "keymap_common.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* 用TMK双角色键功能实现右侧修改键改箭头键
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 *  https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#213-modifier-with-tap-keydual-role
 | 
					 | 
				
			||||||
 *  https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
					 | 
				
			||||||
    /* 0: qwerty */
 | 
					 | 
				
			||||||
    [0] = LAYOUT( \
 | 
					 | 
				
			||||||
        ESC, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, NUHS,BSPC, \
 | 
					 | 
				
			||||||
        TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS, \
 | 
					 | 
				
			||||||
        LCTL,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,ENT,  \
 | 
					 | 
				
			||||||
        LSFT,NUBS,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,FN0, ESC, \
 | 
					 | 
				
			||||||
        FN4, LGUI,LALT,          SPC,                     APP, FN2, FN1, FN3),
 | 
					 | 
				
			||||||
    [1] = LAYOUT( \
 | 
					 | 
				
			||||||
        GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, TRNS,TRNS, \
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN5, TRNS, \
 | 
					 | 
				
			||||||
        TRNS,TRNS,TRNS,          TRNS,                    TRNS,FN7, FN6, FN8),
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const uint16_t PROGMEM fn_actions[] = {
 | 
					 | 
				
			||||||
    [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_UP),
 | 
					 | 
				
			||||||
    [1] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_DOWN),
 | 
					 | 
				
			||||||
    [2] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_LEFT),
 | 
					 | 
				
			||||||
    [3] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RIGHT),
 | 
					 | 
				
			||||||
    [4] = ACTION_LAYER_MOMENTARY(1),
 | 
					 | 
				
			||||||
    [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_PGUP),
 | 
					 | 
				
			||||||
    [6] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_PGDN),
 | 
					 | 
				
			||||||
    [7] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_HOME),
 | 
					 | 
				
			||||||
    [8] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_END),
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
双角色键说明: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Mac OSX的弹出键
 | 
					## Mac OSX的弹出键
 | 
				
			||||||
`KC_EJCT` 键码在OSX可以使用 https://github.com/tmk/tmk_keyboard/issues/250
 | 
					`KC_EJCT` 键码在OSX可以使用 https://github.com/tmk/tmk_keyboard/issues/250
 | 
				
			||||||
似乎Windows10会忽略该键码,Linux/Xorg可以识别该键码但默认不映射。
 | 
					似乎Windows10会忽略该键码,Linux/Xorg可以识别该键码但默认不映射。
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user