Compare commits
84 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
6e1ed1c9d3 | ||
|
a913db63aa | ||
|
ced7e9a0ce | ||
|
268d0efa7e | ||
|
4ef2b0f818 | ||
|
0c5c39c18a | ||
|
92dd1b977b | ||
|
d7f352de98 | ||
|
19990a21a9 | ||
|
3f292ec723 | ||
|
eba3d68394 | ||
|
224dcac08f | ||
|
36f3dba195 | ||
|
c0dd142d9f | ||
|
59c572eaf0 | ||
|
8db1be6420 | ||
|
90e57b7b0a | ||
|
29df3ce83b | ||
|
7ab4902543 | ||
|
50a312b635 | ||
|
873658a76d | ||
|
745f5f6532 | ||
|
eb2886369d | ||
|
438eee96e8 | ||
|
0624698d33 | ||
|
88e53ad9ca | ||
|
dc39d90270 | ||
|
050457818c | ||
|
1f4e20cfda | ||
|
c835d2e71d | ||
|
7e832e46de | ||
|
d456963177 | ||
|
4dddcb4f03 | ||
|
11f66c317a | ||
|
6dfe915e26 | ||
|
4379afca28 | ||
|
939ce6a486 | ||
|
dfcefc2d5d | ||
|
8de028f188 | ||
|
8694e2d3f0 | ||
|
7fefe128cc | ||
|
feaf972eb7 | ||
|
6e132884b3 | ||
|
18554d1134 | ||
|
9e9e9b3898 | ||
|
8e607851fb | ||
|
f81cd4696e | ||
|
e7ddbc394b | ||
|
89c01970e3 | ||
|
2f08a34394 | ||
|
a9c6adb083 | ||
|
f9d88da86f | ||
|
2538d341d8 | ||
|
83ee79565c | ||
|
5c3991cb90 | ||
|
abee0610ee | ||
|
9aea0fd52b | ||
|
42d8ee16e1 | ||
|
403849bff0 | ||
|
ba35c11807 | ||
|
875bb48a20 | ||
|
968e4f96a4 | ||
|
311cf865dc | ||
|
4720aa4a34 | ||
|
ed0451bc28 | ||
|
22cd151fc3 | ||
|
96c8afea2d | ||
|
3966599940 | ||
|
09e22b9cfc | ||
|
9cf4148aa9 | ||
|
c00a9937f2 | ||
|
d0a3506d0f | ||
|
3d546c0853 | ||
|
a9525d88a3 | ||
|
0713797c58 | ||
|
ae45faca26 | ||
|
449b4b8d86 | ||
|
3d62e1dfbf | ||
|
a08486597d | ||
|
f48bd8cde3 | ||
|
c16b7d63e7 | ||
|
db36e2be9f | ||
|
0ef145db15 | ||
|
2e90ef0536 |
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -22,5 +22,6 @@
|
||||
"[markdown]": {
|
||||
"editor.trimAutoWhitespace": false,
|
||||
"files.trimTrailingWhitespace": false
|
||||
}
|
||||
},
|
||||
"python.formatting.provider": "yapf"
|
||||
}
|
||||
|
1
bin/qmk
1
bin/qmk
@ -35,6 +35,7 @@ def main():
|
||||
print('Warning: The bin/qmk script is being deprecated. Please install the QMK CLI: python3 -m pip install qmk', file=sys.stderr)
|
||||
|
||||
# Import the subcommands
|
||||
import milc.subcommand.config # noqa
|
||||
import qmk.cli # noqa
|
||||
|
||||
# Execute
|
||||
|
@ -90,7 +90,7 @@ ifeq ($(strip $(BOOTLOADER)), USBasp)
|
||||
endif
|
||||
ifeq ($(strip $(BOOTLOADER)), lufa-ms)
|
||||
OPT_DEFS += -DBOOTLOADER_MS
|
||||
BOOTLOADER_SIZE = 6144
|
||||
BOOTLOADER_SIZE ?= 8192
|
||||
FIRMWARE_FORMAT = bin
|
||||
cpfirmware: lufa_warning
|
||||
.INTERMEDIATE: lufa_warning
|
||||
|
@ -59,8 +59,11 @@
|
||||
'cmm_studio/saka68': {
|
||||
target: 'cmm_studio/saka68/solder'
|
||||
},
|
||||
'crkbd/rev1': {
|
||||
target: 'crkbd/rev1/legacy'
|
||||
'crkbd/rev1/legacy': {
|
||||
target: 'crkbd/rev1'
|
||||
},
|
||||
'crkbd/rev1/common': {
|
||||
target: 'crkbd/rev1'
|
||||
},
|
||||
'doro67/multi': {
|
||||
layouts: {
|
||||
|
@ -56,7 +56,7 @@ This happens immediately after the previous `develop` branch is merged.
|
||||
* [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
|
||||
* [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
|
||||
* [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
|
||||
* [ ] `git push origin develop`
|
||||
* [ ] `git push upstream develop`
|
||||
* [ ] `git push --tags`
|
||||
|
||||
## 4 Weeks Before Merge
|
||||
@ -86,13 +86,17 @@ This happens immediately after the previous `develop` branch is merged.
|
||||
* `qmk_firmware` git commands
|
||||
* [ ] `git checkout develop`
|
||||
* [ ] `git pull --ff-only`
|
||||
* [ ] `git rebase origin/master`
|
||||
* [ ] Edit `readme.md`
|
||||
* [ ] Remove the notes about `develop`
|
||||
* [ ] Roll up the ChangeLog into one file.
|
||||
* [ ] `git commit -m 'Merge point for <DATE> Breaking Change'`
|
||||
* [ ] `git push origin develop`
|
||||
* [ ] `git push upstream develop`
|
||||
* GitHub Actions
|
||||
* [ ] Create a PR for `develop`
|
||||
* [ ] Make sure travis comes back clean
|
||||
* [ ] Merge `develop` PR
|
||||
* [ ] **Turn off 'Automatically delete head branches' for the repository** -- confirm with @qmk/directors that it is done before continuing
|
||||
* `qmk_firmware` git commands
|
||||
* [ ] `git checkout master`
|
||||
* [ ] `git pull --ff-only`
|
||||
* [ ] `git merge --no-ff develop`
|
||||
* [ ] `git push upstream master`
|
||||
|
@ -2,24 +2,27 @@
|
||||
|
||||
These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent.
|
||||
|
||||
|Key |Aliases |Description |
|
||||
|----------|-------------------------------|------------------------------------------------------|
|
||||
|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|
||||
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|
||||
|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
|
||||
|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|
||||
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|
||||
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|
||||
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|
||||
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|
||||
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` |
|
||||
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|
||||
|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` |
|
||||
|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` |
|
||||
|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` |
|
||||
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|
||||
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|
||||
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` |
|
||||
|Key |Aliases |Description |
|
||||
|----------|----------------------------------|------------------------------------------------------|
|
||||
|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|
||||
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|
||||
|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
|
||||
|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)` |Hold Left GUI and press `kc` |
|
||||
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|
||||
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|
||||
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|
||||
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|
||||
|`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` |
|
||||
|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` |
|
||||
|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` |
|
||||
|`RAG(kc)` | |Hold Right Alt and Right GUI and press `kc` |
|
||||
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|
||||
|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` |
|
||||
|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` |
|
||||
|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` |
|
||||
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|
||||
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|
||||
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` |
|
||||
|
||||
You can also chain them, for example `LCTL(LALT(KC_DEL))` or `C(A(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.
|
||||
|
||||
|
@ -131,12 +131,14 @@ You can override the default songs by doing something like this in your `config.
|
||||
|
||||
```c
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(STARTUP_SOUND)
|
||||
# define STARTUP_SONG SONG(STARTUP_SOUND)
|
||||
#endif
|
||||
```
|
||||
|
||||
A full list of sounds can be found in [quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h) - feel free to add your own to this list! All available notes can be seen in [quantum/audio/musical_notes.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/musical_notes.h).
|
||||
|
||||
Additionally, if you with to maintain your own list of songs (such as ones that may be copyrighted) and not have them added to the repo, you can create a `user_song_list.h` file and place it in your keymap (or userspace) folder. This file will be automatically included, it just needs to exist.
|
||||
|
||||
To play a custom sound at a particular time, you can define a song like this (near the top of the file):
|
||||
|
||||
```c
|
||||
|
@ -67,6 +67,8 @@ Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet]
|
||||
|
||||
---
|
||||
|
||||
## Common Configuration :id=common-configuration
|
||||
|
||||
From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example:
|
||||
|
||||
```c
|
||||
|
@ -263,11 +263,25 @@ void oled_write(const char *data, bool invert);
|
||||
void oled_write_ln(const char *data, bool invert);
|
||||
|
||||
// Pans the buffer to the right (or left by passing true) by moving contents of the buffer
|
||||
// Useful for moving the screen in preparation for new drawing
|
||||
// Useful for moving the screen in preparation for new drawing
|
||||
// oled_scroll_left or oled_scroll_right should be preferred for all cases of moving a static
|
||||
// image such as a logo or to avoid burn-in as it's much, much less cpu intensive
|
||||
void oled_pan(bool left);
|
||||
|
||||
// Returns a pointer to the requested start index in the buffer plus remaining
|
||||
// buffer length as struct
|
||||
oled_buffer_reader_t oled_read_raw(uint16_t start_index);
|
||||
|
||||
// Writes a string to the buffer at current cursor position
|
||||
void oled_write_raw(const char *data, uint16_t size);
|
||||
|
||||
// Writes a single byte into the buffer at the specified index
|
||||
void oled_write_raw_byte(const char data, uint16_t index);
|
||||
|
||||
// Sets a specific pixel on or off
|
||||
// Coordinates start at top-left and go right and down for positive x and y
|
||||
void oled_write_pixel(uint8_t x, uint8_t y, bool on);
|
||||
|
||||
// Writes a PROGMEM string to the buffer at current cursor position
|
||||
// Advances the cursor while writing, inverts the pixels if true
|
||||
// Remapped to call 'void oled_write(const char *data, bool invert);' on ARM
|
||||
@ -279,23 +293,9 @@ void oled_write_P(const char *data, bool invert);
|
||||
// Remapped to call 'void oled_write_ln(const char *data, bool invert);' on ARM
|
||||
void oled_write_ln_P(const char *data, bool invert);
|
||||
|
||||
// Returns a pointer to the requested start index in the buffer plus remaining
|
||||
// buffer length as struct
|
||||
oled_buffer_reader_t oled_read_raw(uint16_t start_index);
|
||||
|
||||
// Writes a string to the buffer at current cursor position
|
||||
void oled_write_raw(const char *data, uint16_t size);
|
||||
|
||||
// Writes a single byte into the buffer at the specified index
|
||||
void oled_write_raw_byte(const char data, uint16_t index);
|
||||
|
||||
// Writes a PROGMEM string to the buffer at current cursor position
|
||||
void oled_write_raw_P(const char *data, uint16_t size);
|
||||
|
||||
// Sets a specific pixel on or off
|
||||
// Coordinates start at top-left and go right and down for positive x and y
|
||||
void oled_write_pixel(uint8_t x, uint8_t y, bool on);
|
||||
|
||||
// Can be used to manually turn on the screen if it is off
|
||||
// Returns true if the screen was on or turns on
|
||||
bool oled_on(void);
|
||||
|
@ -229,6 +229,8 @@ Configure the hardware via your `config.h`:
|
||||
|
||||
---
|
||||
|
||||
## Common Configuration :id=common-configuration
|
||||
|
||||
From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example:
|
||||
|
||||
```c
|
||||
|
@ -60,6 +60,7 @@ The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and D0/D1/D2/D3 (aka
|
||||
The 4 wires of the TRRS cable need to connect GND, VCC, and SCL and SDA (aka PD0/pin 3 and PD1/pin 2, respectively) between the two Pro Micros.
|
||||
|
||||
The pull-up resistors may be placed on either half. If you wish to use the halves independently, it is also possible to use 4 resistors and have the pull-ups in both halves.
|
||||
Note that the total resistance for the connected system should be within spec at 2.2k-10kOhm, with an 'ideal' at 4.7kOhm, regardless of the placement and number.
|
||||
|
||||
<img alt="sk-i2c-connection-mono" src="https://user-images.githubusercontent.com/2170248/92297182-92b98580-ef77-11ea-9d7d-d6033914af43.JPG" width="50%"/>
|
||||
|
||||
|
@ -7,9 +7,9 @@
|
||||
[![Contributeurs GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
|
||||
[![Forks GitHub](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
|
||||
|
||||
## Qu'est-ce que QMK Firmware ?
|
||||
## Qu'est-ce que QMK Firmware?
|
||||
|
||||
QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMK Firmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](https://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](https://olkb.com), le clavier [ErgoDox EZ](https://www.ergodox-ez.com), et pour les [produits Clueboard](https://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé.
|
||||
QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMK Firmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](https://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](https://olkb.com), le clavier [ErgoDox EZ](https://www.ergodox-ez.com), et pour les [produits Clueboard](https://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé.
|
||||
|
||||
## Comment l'obtenir
|
||||
|
||||
@ -23,7 +23,7 @@ Avant d'être prêt à compiler vous allez devoir [installer un environnement](f
|
||||
|
||||
make planck/rev4:default
|
||||
|
||||
Cette commande compilera la révision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcément de révisions (aussi appelées sous-projects ou dossiers, ou en anglais « subprojects » ou « folder »). Cette option peut donc être omise :
|
||||
Cette commande compilera la révision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcément de révisions (aussi appelées sous-projects ou dossiers, ou en anglais «subprojects» ou «folder»). Cette option peut donc être omise:
|
||||
|
||||
make preonic:default
|
||||
|
||||
|
@ -9,7 +9,7 @@ Nous vous recommandons d'utiliser l'utilitaire [Zadig](https://zadig.akeo.ie/).
|
||||
## Installation
|
||||
|
||||
Passez votre clavier en mode bootloader, soit en appuyant sur le keycode `RESET` (qui peut se trouver dans un calque différent) ou en appuyant sur le bouton reset qui se trouve en général sous la board. Si votre clavier n'a aucune de ces options, essayez de le brancher en maintenant Escape ou Espace+`B` appuyés (voir la documentation de [Bootmagic](feature_bootmagic.md) pour plus de détails). Certaines boards utilisent [Command](feature_command.md) à la place de Bootmagic. Dans ce cas, vous pouvez entrer en mode bootloader en appuyant, à n'importe quel moment lorsque le clavier est branché, sur les combinaisons de touches Shift Gauche+Shift Droit+`B` ou Shift Gauche+Shift Droit+Escape.
|
||||
Certains claviers ont des instructions spécifiques pour passer en mode bootloader. Par exemple, la touche [Bootmagic Lite]](feature_bootmagic.md#bootmagic-lite) (défaut : Échap) peut être sur une touche différente telle que Contrôle Gauche. La combinaison pour la Command (défaut : Shift Gauche+Shift Droit) peut être différente, par exemple Contrôle Gauche+Contrôle Droit. Référez-vous au fichier README de votre clavier.
|
||||
Certains claviers ont des instructions spécifiques pour passer en mode bootloader. Par exemple, la touche [Bootmagic Lite]](feature_bootmagic.md#bootmagic-lite) (défaut: Échap) peut être sur une touche différente telle que Contrôle Gauche. La combinaison pour la Command (défaut: Shift Gauche+Shift Droit) peut être différente, par exemple Contrôle Gauche+Contrôle Droit. Référez-vous au fichier README de votre clavier.
|
||||
|
||||
Pour mettre un clavier en mode bootloader avec USBaspLoader, appuyez sur le bouton `RESET` tout en maintenant le bouton `BOOT`. Vous pouvez aussi maintenir le bouton `BOOT` en branchant le câble USB.
|
||||
|
||||
@ -43,4 +43,4 @@ Cliquez dessus avec le bouton droit et sélectionner **Désinstaller le périph
|
||||
|
||||
![Le dialogue Suppression de périphérique, avec la boîte "suppression de pilote" cochée](https://i.imgur.com/aEs2RuA.png)
|
||||
|
||||
Appuyez sur **Action → Analyser les changements de hardware**. A ce stade, vous devriez pouvoir saisir à nouveau. Vérifiez dans Zadig que les périphériques utilisent bien le pilote `HidUsb`. Si c'est le cas, vous avez corrigé le problème, votre clavier devrait fonctionner à nouveau !
|
||||
Appuyez sur **Action → Analyser les changements de hardware**. A ce stade, vous devriez pouvoir saisir à nouveau. Vérifiez dans Zadig que les périphériques utilisent bien le pilote `HidUsb`. Si c'est le cas, vous avez corrigé le problème, votre clavier devrait fonctionner à nouveau!
|
||||
|
@ -20,7 +20,7 @@ Veuillez noter que lancer `make` avec `sudo` est généralement une **mauvaise**
|
||||
|
||||
### Règles `udev` pour Linux
|
||||
|
||||
Sous Linux, vous aurez besoin des permissions appropriées pour accéder au MCU (le micro-contrôleur). Vous avez le choix d'utiliser `sudo` en flashant le firmware, ou placer ces fichiers dans `/etc/udev/rules.d`. Une fois ajouté, lancez les commandes suivantes :
|
||||
Sous Linux, vous aurez besoin des permissions appropriées pour accéder au MCU (le micro-contrôleur). Vous avez le choix d'utiliser `sudo` en flashant le firmware, ou placer ces fichiers dans `/etc/udev/rules.d`. Une fois ajouté, lancez les commandes suivantes:
|
||||
|
||||
```console
|
||||
sudo udevadm control --reload-rules
|
||||
|
@ -6,13 +6,13 @@ Cette page détaille diverses questions fréquemment posées par les utilisateur
|
||||
|
||||
## `hid_listen` ne reconnaît pas de périphérique
|
||||
|
||||
Lorsque la console de débugage sur votre périphérique n'est pas prêt, vous obtiendrez un message similaire :
|
||||
Lorsque la console de débugage sur votre périphérique n'est pas prêt, vous obtiendrez un message similaire:
|
||||
|
||||
```
|
||||
Waiting for device:.........
|
||||
```
|
||||
|
||||
Une fois le périphérique connecté, *hid_listen* le trouve et vous obtiendrez ce message :
|
||||
Une fois le périphérique connecté, *hid_listen* le trouve et vous obtiendrez ce message:
|
||||
|
||||
```
|
||||
Waiting for new device:.........................
|
||||
@ -61,7 +61,7 @@ Vous ne voulez probablement pas "briquer" votre clavier, rendre impossible d'éc
|
||||
|
||||
- Si votre map de clavier n'inclut pas de RESET, pour entrer en mode DFU, vous devrez appuyer sur le bouton reset du PCB. Cela implique que vous devrez certainement dévisser certaines pièces de votre clavier pour y accéder.
|
||||
- Modifier les fichiers tmk_core / common peut rendre le clavier inutilisable
|
||||
- Si un fichier .hex trop large est la cause du problème : `make dfu` supprime le bloc puis teste la taille (il ne fait pas les choses dans le bon ordre), ce qui provoque une erreur. En résultat, le flash n’aura pas été fait et le clavier restera en mode DFU.
|
||||
- Si un fichier .hex trop large est la cause du problème: `make dfu` supprime le bloc puis teste la taille (il ne fait pas les choses dans le bon ordre), ce qui provoque une erreur. En résultat, le flash n’aura pas été fait et le clavier restera en mode DFU.
|
||||
- Pour finir, notez que la taille maximale d'un fichier .hex sur un Plank est de 7000h (28672 decimal)
|
||||
|
||||
```
|
||||
@ -118,7 +118,7 @@ Sous Windows, activez l'option `Permettre au périphérique de sortir l'ordinate
|
||||
|
||||
Appuyer sur n'importe quelle touche en mode veille devrait sortir l'ordinateur de veille.
|
||||
|
||||
## Vous utilisez un Arduino ?
|
||||
## Vous utilisez un Arduino?
|
||||
|
||||
**Faites attention au fait que le nommage des pin d'un Arduino diffère de la puce**. Par exemple, la pin `D0` n'est pas `PD0`. Vérifiez le circuit avec la fiche technique.
|
||||
|
||||
|
@ -44,7 +44,7 @@ Le premier n'est reconnu que sur macOS, alors que le dernier, `KC_SLEP` et `KC_W
|
||||
|
||||
## Modificateur "One Shot"
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
https://github.com/tmk/tmk_keyboard/issues/67
|
||||
|
||||
@ -59,7 +59,7 @@ Pour les touches de modification et les actions de calque, vous devez placer `KC
|
||||
|
||||
## Support de touche à verrouillage mécanique
|
||||
|
||||
Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](https://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h` :
|
||||
Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](https://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h`:
|
||||
|
||||
```
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
@ -27,15 +27,15 @@ Méthodes de flash compatibles :
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (interface graphique recommandé)
|
||||
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` avec QMK (outil en ligne de commande recommandé)
|
||||
|
||||
Ordre des actions :
|
||||
Ordre des actions:
|
||||
|
||||
1. Pressez le keycode `RESET`, ou appuyez sur le bouton physique RESET ou alors créez un contact entre RST et GND.
|
||||
2. Attendez que l'OS detecte l'appareil.
|
||||
3. Éffacez la mémoire, cela peut être fait automatiquement.
|
||||
4. Flasher le fichier .hex.
|
||||
5. Redémarrez l'appareil en mode « application », cela peut être fait automatiquement.
|
||||
5. Redémarrez l'appareil en mode «application», cela peut être fait automatiquement.
|
||||
|
||||
Alternativement :
|
||||
Alternativement:
|
||||
|
||||
make <keyboard>:<keymap>:dfu
|
||||
|
||||
@ -48,11 +48,11 @@ QMK a un fork du bootloader LUFA DFU qui vous permet de faire un simple scan de
|
||||
#define QMK_LED E6
|
||||
#define QMK_SPEAKER C6
|
||||
|
||||
Le fabricant et le nom du produit proviennent de vos définitions dans fichier `config.h`, et la chaîne de caractère « bootloader » est ajoutée au nom du produit.
|
||||
Le fabricant et le nom du produit proviennent de vos définitions dans fichier `config.h`, et la chaîne de caractère «bootloader» est ajoutée au nom du produit.
|
||||
|
||||
Pour génerer le bootloader, utilisez la cible `bootloader`. Exemple : `make planck/rev4:default:bootloader`.
|
||||
Pour génerer le bootloader, utilisez la cible `bootloader`. Exemple: `make planck/rev4:default:bootloader`.
|
||||
|
||||
Pour génerer un fichier .hex prêt pour la production qui contiendra tant l'application que le bootloader, utilisez la cible `production`. Exemple : `make planck/rev4:default:production`.
|
||||
Pour génerer un fichier .hex prêt pour la production qui contiendra tant l'application que le bootloader, utilisez la cible `production`. Exemple: `make planck/rev4:default:production`.
|
||||
|
||||
### Commandes DFU
|
||||
|
||||
@ -67,7 +67,7 @@ Il y a plusieurs commandes DFU que vous pouvez utiliser pour flasher le firmware
|
||||
|
||||
Les cartes arduinos et leurs clones utilisent le [bootloader Caterina](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) (tous les claviers utilisant un Pro Micro, ou un clone). Ils utilisent aussi le protocole avr109 pour communiquer en virtuellement en série (serial en anglais). Les bootloaders comme le [A-Star](https://www.pololu.com/docs/0J61/9) sont basés sur Caterina.
|
||||
|
||||
Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce bloc est présent dans votre fichier `rules.mk` :
|
||||
Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
|
||||
|
||||
```make
|
||||
# Bootloader selection
|
||||
@ -81,20 +81,20 @@ Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce b
|
||||
BOOTLOADER = caterina
|
||||
```
|
||||
|
||||
Flashers compatibles :
|
||||
Flashers compatibles:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandée)
|
||||
* [avrdude](https://www.nongnu.org/avrdude/) avec avr109 / `:avrdude` (Outil en ligne de commande recommandé)
|
||||
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
|
||||
|
||||
Séquence de flash :
|
||||
Séquence de flash :
|
||||
|
||||
1. Pressez la touche avec le keycode `RESET`, ou reliez les ports GND et RST. Vous n'avez que 7 secondes pour flasher une fois que l'opération a été faite.
|
||||
2. Attendez que l'OS détecte l'appareil.
|
||||
3. Flasher le fichier .hex.
|
||||
4. Attendez que l'appareil redémarre automatiquement.
|
||||
|
||||
ou, utilisez :
|
||||
ou, utilisez:
|
||||
|
||||
make <keyboard>:<keymap>:avrdude
|
||||
|
||||
@ -111,7 +111,7 @@ Il existe un certain nombre de commandes DFU que vous pouvez utiliser pour mettr
|
||||
|
||||
Halfkay est un protocole ultra-simple développé par PJRC qui utilise HID et qui est fourni avec tous les Teensys après le modèle 2.0.
|
||||
|
||||
Pour vérifier la compatibilité avec le booloader Halfkay, vérifiez que ce bloc est présent dans votre fichier `rules.mk` :
|
||||
Pour vérifier la compatibilité avec le booloader Halfkay, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
|
||||
|
||||
```make
|
||||
# Bootloader selection
|
||||
@ -125,24 +125,24 @@ Pour vérifier la compatibilité avec le booloader Halfkay, vérifiez que ce blo
|
||||
BOOTLOADER = halfkay
|
||||
```
|
||||
|
||||
Flasher compatibles :
|
||||
Flasher compatibles:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recomandée)
|
||||
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html) (petit utilitaire ultra simple)
|
||||
[Teensy Loader en ligne de commande](https://www.pjrc.com/teensy/loader_cli.html) (Outil en ligne de commande recommandé)
|
||||
|
||||
Séquence de flash :
|
||||
Séquence de flash:
|
||||
|
||||
1. Pressez la touche du keycode `RESET`, ou reliez les ports RST et GND rapidement. Vous avez ensuite 7 secondes pour réaliser le flash.
|
||||
2. Attendez que l'OS détecte l'appareil.
|
||||
3. Flasher le fichier .hex.
|
||||
4. Redémarrez l'appareil en mode « application ». Cela peut être fait automatiquement.
|
||||
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
|
||||
|
||||
## USBasploader
|
||||
|
||||
USBasploader est un bootloader développé par matrixstorm. Il est utilisé sur des processeurs AVR non-USB comme le ATmega328P, qui fonctionne grâce à V-USB.
|
||||
|
||||
Pour vérifier la compatibilité avec le booloader USBasploader, vérifiez que ce bloc est présent dans votre fichier `rules.mk` :
|
||||
Pour vérifier la compatibilité avec le booloader USBasploader, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
|
||||
|
||||
```make
|
||||
# Bootloader selection
|
||||
@ -156,24 +156,24 @@ Pour vérifier la compatibilité avec le booloader USBasploader, vérifiez que c
|
||||
BOOTLOADER = USBasp
|
||||
```
|
||||
|
||||
Flashers compatibles :
|
||||
Flashers compatibles:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandé)
|
||||
* [avrdude](https://www.nongnu.org/avrdude/) avec le programmeur `usbasp`.
|
||||
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
|
||||
|
||||
Séquence de flash :
|
||||
Séquence de flash:
|
||||
|
||||
1. Pressez la touche du keycode `RESET`, ou reliez le port de boot pendant que RST et GND snt reliés. Cela doit être fait très rapidement.
|
||||
2. Attendez que l'OS détecte l'appareil.
|
||||
3. Flasher le fichier .hex.
|
||||
4. Redémarrez l'appareil en mode « application ». Cela peut être fait automatiquement.
|
||||
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
|
||||
|
||||
## BootloadHID
|
||||
|
||||
BootloadHID est un bootloader pour les microcontrôleurs AVR. L'utilitaire de téleversement ne demande pas de drivers au niveau du kernel et peut être lancé sans installer aucune DLLs.
|
||||
|
||||
Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que ce bloc existe dans votre fichier `rules.mk` :
|
||||
Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que ce bloc existe dans votre fichier `rules.mk` :
|
||||
|
||||
```make
|
||||
# Bootloader selection
|
||||
@ -187,50 +187,50 @@ Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que c
|
||||
BOOTLOADER = bootloadHID
|
||||
```
|
||||
|
||||
Utilitaires de flash compatibles :
|
||||
Utilitaires de flash compatibles:
|
||||
|
||||
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash) (Utilitaire avec interface graphique recommandé)
|
||||
* [bootloadhid Command Line](https://www.obdev.at/products/vusb/bootloadhid.html) / `:BootloadHID` avec QMK (utilitaire en ligne de commande recommandé)
|
||||
|
||||
Séquence de flash
|
||||
|
||||
1. Entrez dans le bootloader en utilisant l'une de ces méthodes :
|
||||
1. Entrez dans le bootloader en utilisant l'une de ces méthodes:
|
||||
* Pressez la touche du keycode `RESET` (Cela ne fonctionnera pas sur certains appareils).
|
||||
* Verrouillez la touche « Salt » tout en branchant le clavier (Généralement ce principe est documenté dans le fichier readme du clavier)
|
||||
* Verrouillez la touche «Salt» tout en branchant le clavier (Généralement ce principe est documenté dans le fichier readme du clavier)
|
||||
2. Attendez que l'OS détecte l'appareil.
|
||||
3. Flasher le fichier .hex.
|
||||
4. Redémarrez l'appareil en mode « application ». Cela peut être fait automatiquement.
|
||||
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
|
||||
|
||||
Ou alors :
|
||||
Ou alors:
|
||||
|
||||
make <keyboard>:<keymap>:bootloadHID
|
||||
|
||||
## STM32
|
||||
|
||||
Tous les processeurs STM32 contiennent un bootloader installé en usine qui ne peut pas être modifié ou supprimé. Certains processeurs STM32 ont des bootloaders qui ne peuvent pas être programmés par USB (ex : STM32F103) mais le processus reste le même.
|
||||
Tous les processeurs STM32 contiennent un bootloader installé en usine qui ne peut pas être modifié ou supprimé. Certains processeurs STM32 ont des bootloaders qui ne peuvent pas être programmés par USB (ex: STM32F103) mais le processus reste le même.
|
||||
|
||||
Pour le moment, aucune variable `BOOTLOADER` n'est nécessaire dans le fichier `rules.mk`.
|
||||
|
||||
Flashers compatibles :
|
||||
Flashers compatibles:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (interface graphique recommandé)
|
||||
* [dfu-util](https://github.com/Stefan-Schmidt/dfu-util) / `:dfu-util` (utilitaire en ligne de commande recommandé)
|
||||
|
||||
Séquence pour flasher:
|
||||
|
||||
1. Entrez dans le bootloader en utilisant l'une de ces méthodes :
|
||||
1. Entrez dans le bootloader en utilisant l'une de ces méthodes:
|
||||
* Utilisez une touche sur laquelle le keycode `RESET` (Cela peut ne pas fonctionner sur les appareils STM32F042)
|
||||
* Si un circuit de réinitialisation (Reset) est présent alors utilisé le bouton qui lui est dédié.
|
||||
* Autrement, vous devez réaliser une liaison entre BOOT0 et VCC (en appuyant sur le bouton ou à l'aide d'un pont) puis faire un pont entre RESET et GND et enfin relacher le pont BOOT0.
|
||||
2. Attendre que l'os détecte l'appareil.
|
||||
3. Flasher un fichier `.bin`.h
|
||||
* Vous allez recevoir un avertissement à propos de la signature DFU. Ignorez-la.
|
||||
4. Réinitialisez l'appareil en mode « application ». Cela peut être fait automatiquement.
|
||||
* Si vous êtes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passé aux arguments DFU grâce à la variable `DFU_ARGS` à l'intérieur de votre fichier `rules.mk` (Ex : `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redémarre après avoir été flashé.
|
||||
4. Réinitialisez l'appareil en mode «application». Cela peut être fait automatiquement.
|
||||
* Si vous êtes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passé aux arguments DFU grâce à la variable `DFU_ARGS` à l'intérieur de votre fichier `rules.mk` (Ex: `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redémarre après avoir été flashé.
|
||||
|
||||
### Commandes STM32
|
||||
|
||||
Il y a différentes commandes que vous pouvez utiliser pour flasher un firmware dans un appareil STM32 :
|
||||
Il y a différentes commandes que vous pouvez utiliser pour flasher un firmware dans un appareil STM32:
|
||||
|
||||
* `:dfu-util` - C'est l'option standard pour flasher un appareil STM32. Le script attendra qu'un bootloader STM32 soit présent.
|
||||
* `:dfu-util-split-left` - Permet de flasher un firmware normalement, tout comme l'option précédente mais permet de configurer le côté gauche des paramètres EEPROM sur un clavier scindé.
|
||||
|
@ -88,7 +88,7 @@ Par exemple, si votre keymap s'appelle "xyverz" et que vous fabriquez une keymap
|
||||
|
||||
La commande va vérifier la configuration du clavier, puis tentera de le flasher en fonction du bootloader (chargeur d’amorçage) spécifié. Cela signifie que vous n'avez pas besoin de savoir quel bootloader votre clavier utilise. Exécutez simplement la commande et laissez-le faire le gros du travail.
|
||||
|
||||
Cependant, tout dépend du bootloader qui est installé sur le clavier. Si cette information n’est pas configurée ou si vous tentez de flasher un clavier qui ne permet pas d’être flashé alors vous obtiendrez cette erreur :
|
||||
Cependant, tout dépend du bootloader qui est installé sur le clavier. Si cette information n’est pas configurée ou si vous tentez de flasher un clavier qui ne permet pas d’être flashé alors vous obtiendrez cette erreur:
|
||||
|
||||
WARNING: This board's bootloader is not specified or is not supported by the ":flash" target at this time.
|
||||
|
||||
@ -326,7 +326,7 @@ Il y aun certain nombre de commandes du DFU que vous pouvez utiliser pour flash
|
||||
|
||||
### BootloadHID
|
||||
|
||||
Pour les claviers basés sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, si vous êtes prêts à compiler et flasher le firmware, ouvrez votre fenêtre de terminal et lancez la commande suivante :
|
||||
Pour les claviers basés sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, si vous êtes prêts à compiler et flasher le firmware, ouvrez votre fenêtre de terminal et lancez la commande suivante:
|
||||
|
||||
make <my_keyboard>:<my_keymap>:bootloaderHID
|
||||
|
||||
@ -351,7 +351,7 @@ Error opening HIDBoot device: The specified device was not found
|
||||
Trying again in 5s.
|
||||
```
|
||||
|
||||
Une fois ce résultat obtenu, réinitialisez le contrôleur. Le résultat suivant devrait s’afficher :
|
||||
Une fois ce résultat obtenu, réinitialisez le contrôleur. Le résultat suivant devrait s’afficher:
|
||||
|
||||
```
|
||||
Page size = 128 (0x80)
|
||||
|
@ -155,6 +155,7 @@
|
||||
* [QMK への貢献](ja/contributing.md)
|
||||
* [QMK ドキュメントの翻訳](ja/translating.md)
|
||||
* [設定オプション](ja/config_options.md)
|
||||
* [データ駆動型コンフィギュレーション](ja/data_driven_config.md)
|
||||
* [Make ドキュメント](ja/getting_started_make_guide.md)
|
||||
* [ドキュメント ベストプラクティス](ja/documentation_best_practices.md)
|
||||
* [ドキュメント テンプレート](ja/documentation_templates.md)
|
||||
|
123
docs/ja/data_driven_config.md
Normal file
123
docs/ja/data_driven_config.md
Normal file
@ -0,0 +1,123 @@
|
||||
# データ駆動型コンフィギュレーション
|
||||
|
||||
<!---
|
||||
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
|
||||
original document: 0.12.7:docs/data_driven_config.md
|
||||
git diff 0.12.7 HEAD -- docs/data_driven_config.md | cat
|
||||
-->
|
||||
|
||||
このページでは、QMK のデータ駆動型 JSON コンフィギュレーションシステムがどのように動作するかを説明します。これは、QMK 自体に取り組みたい開発者を対象としています。
|
||||
|
||||
## ヒストリー
|
||||
|
||||
これまで、QMK は、`rules.mk` と `config.h` の2つのメカニズムを組み合わせてコンフィギュレーションされてきました。
|
||||
この方法は、QMK がほんの一握りのキーボードをサポートしていたときは上手く機能していましたが、今では、サポートするキーボードは1500近くまで成長しました。
|
||||
`keyboards` の下だけで6000個の設定ファイルがあることが推定されます。
|
||||
これらのファイルの自由形式の性質と、重複を避けるために人々が使用してきたユニークなパターンが継続的なメンテナンスを困難にしており、また、多くのキーボードが時代遅れで時には理解が難しいパターンに従っています。
|
||||
|
||||
また、CLI に慣れていない人に QMK のパワーを提供することにも取り組んでおり、VIA などの他のプロジェクトでは、プログラムをインストールするのと同じくらい簡単に QMK を使用できるように取り組んでいます。
|
||||
これらのツールには、ユーザーが QMK を最大限に活用できるように、キーボードのレイアウト方法や使用可能なピンと機能に関する情報が必要です。
|
||||
その第一歩として `info.json` を導入しました。
|
||||
QMK API は、これら3つの情報源(`config.h`、` rules.mk`、および `info.json`)を、エンドユーザーツールが使用できる信頼できる単一の情報源に結合するための取り組みです。
|
||||
|
||||
これで、`info.json`から `rules.mk` と `config.h` の値を生成することがサポートされ、信頼できる単一の情報源を持つことができます。
|
||||
これにより、自動化されたツールを使用してキーボードを保守できるため、時間と保守作業を大幅に節約できます。
|
||||
|
||||
## 概要
|
||||
|
||||
C 側では何も変わりません。
|
||||
新しいルールを作成したり、定義したりする必要がある場合は、同じプロセスに従います。
|
||||
|
||||
1. `docs/config_options.md` に追加します。
|
||||
1. 適切なコアファイルにデフォルトを設定します。
|
||||
1. 必要に応じて ifdef 文を追加します。
|
||||
|
||||
次に、新しい構成のサポートを `info.json` に追加する必要があります。
|
||||
基本的なプロセスは次のとおりです。
|
||||
|
||||
1. `data/schemas/keyboards.jsonschema` のスキーマに追加します
|
||||
1. `data/maps` にマッピングを追加します
|
||||
1. (オプションおよび非推奨)構成を抽出/生成するコードを追加します。
|
||||
* `lib/python/qmk/info.py`
|
||||
* `lib/python/qmk/cli/generate/config_h.py`
|
||||
* `lib/python/qmk/cli/generate/rules_mk.py`
|
||||
|
||||
## info.json にオプションを追加する
|
||||
|
||||
このセクションでは、info.json に `config.h`/`rules.mk` の値のサポートを追加することについて説明します。
|
||||
|
||||
### スキーマに追加する
|
||||
|
||||
QMK では、[jsonschema](https:json-schema.org) のファイルを `data/schemas` に保持しています。
|
||||
キーボード固有の `info.json` ファイルに入る値は `keyboard.jsonschema` に保持されています。
|
||||
エンドユーザーが編集できるようにしたい値はすべてここに入れなければなりません。
|
||||
|
||||
場合によっては、新しいトップレベルキーを追加するだけで済みます。
|
||||
従うべきいくつかの例は、 `keyboard_name`、`maintainer`、 `processor`、および `url` です。
|
||||
これは、オプションが自己完結型で、他のオプションと直接関係がない場合に適しています。
|
||||
|
||||
その他の場合、1つの `object` の中に、似ているオプションを集める必要があります。
|
||||
これは、機能のサポートを追加する場合に特に当てはまります。
|
||||
このために従うべきいくつかの例は、`indicators`、`matrix_pins`、および `rgblight` です。
|
||||
新しいオプションを統合する方法がわからない場合は、[問題を開く](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=)か、[Discord で #cli に参加](https://discord.gg/heQPAgy)して、そこで会話を始めてください。
|
||||
|
||||
### マッピングを追加する
|
||||
|
||||
ほとんどの場合、単純なマッピングを追加することができます。
|
||||
これらは `data/mappings/info_config.json` と `data/mappings/info_rules.json` に JSON ファイルとして保持され、それぞれ `config.h` と `rules.mk` のマッピングを制御します。
|
||||
各マッピングは `config.h` または `rules.mk` 変数名をキーとし、値は以下のキーを持つハッシュです。
|
||||
|
||||
* `info_key`: (必須)この値の `info.json` 内の場所。 下記参照。
|
||||
* `value_type`: (オプション)デフォルトは `str`。 この変数の値の形式。 下記参照。
|
||||
* `to_json`: (オプション)デフォルトは `true`。 このマッピングを info.json から除外するには、`false` に設定します
|
||||
* `to_c`: (オプション)デフォルトは `true`。 このマッピングを config.h から除外するには、`false` に設定します
|
||||
* `warn_duplicate`: (オプション)デフォルトは `true`。 値が両方の場所に存在する場合に警告をオフにするには、`false` に設定します
|
||||
|
||||
#### Info Key
|
||||
|
||||
info.json 内の変数をアドレス指定するために JSON ドット表記を使用します。
|
||||
たとえば、`info_json["rgblight"]["split_count"]` にアクセスするには、`rgblight.split_count` を指定します。
|
||||
これにより、深くネストされたキーを単純な文字列でアドレス指定できます。
|
||||
|
||||
内部では [Dotty Dict](https://dotty-dict.readthedocs.io/en/latest/) を使用しています。これらの文字列がオブジェクトアクセスに変換される方法についてはそのドキュメントを参照してください。
|
||||
|
||||
#### Value Types
|
||||
|
||||
デフォルトでは、すべての値を単純な文字列として扱います。
|
||||
値がより複雑な場合は、次のいずれかのタイプを使用してデータをインテリジェントに解析できます。
|
||||
|
||||
* `array`: 文字列のコンマ区切りの配列
|
||||
* `array.int`: 整数のコンマ区切り配列
|
||||
* `int`: 整数
|
||||
* `hex`: 16進数としてフォーマットされた数値
|
||||
* `list`: 文字列のスペース区切りの配列
|
||||
* `mapping`: キーと値のペアのハッシュ
|
||||
|
||||
### 抽出するコードを追加する
|
||||
|
||||
ほとんどのユースケースは、上記のマッピングファイルによって解決できます。
|
||||
できない場合は、代わりに設定値を抽出するコードを書くことができます。
|
||||
|
||||
QMK が完全な `info.json` を生成するときはいつでも、`config.h` と `rules.mk` から情報を抽出します。
|
||||
あなたの新しい設定値のためのコードを `lib/python/qmk/info.py` に追加する必要があります。
|
||||
通常、これは、新しい `_extract_<feature>()` 関数を追加してから、 `_extract_config_h()` または `_extract_rules_mk()` のいずれかで関数を呼び出すことを意味します。
|
||||
|
||||
このファイルの編集方法がわからない場合、または Python に慣れていない場合は、[issue を開く](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=)か [Discord で #cli に参加](https://discord.gg/heQPAgy)すると、この部分を誰かが手伝ってくれるでしょう。
|
||||
|
||||
### 生成するコードを追加する
|
||||
|
||||
パズルの最後のピースは、ビルドシステムに新しいオプションを提供することです。
|
||||
これは、2つのファイルを生成することによって行われます。
|
||||
|
||||
* `.build/obj_<keyboard>/src/info_config.h`
|
||||
* `.build/obj_<keyboard>/src/rules.mk`
|
||||
|
||||
この2つのファイルは、次のコードによって生成されます。
|
||||
|
||||
* `lib/python/qmk/cli/generate/config_h.py`
|
||||
* `lib/python/qmk/cli/generate/rules_mk.py`
|
||||
|
||||
`config.h`値の場合、ルール用の関数を記述し、その関数を `generate_config_h()` で呼び出す必要があります。
|
||||
|
||||
`rules.mk` の新しいトップレベルの `info.json` キーがある場合は、`lib/python/qmk/cli/generate/rules_mk.py` の上部にある `info_to_rules` にキーを追加するだけです。
|
||||
それ以外の場合は、`generate_rules_mk()` で機能の新しい if ブロックを作成する必要があります。
|
@ -1,8 +1,8 @@
|
||||
# よくあるビルドの質問
|
||||
|
||||
<!---
|
||||
original document: 0.10.33:docs/faq_build.md
|
||||
git diff 0.10.33 HEAD -- docs/faq_build.md | cat
|
||||
original document: 0.12.43:docs/faq_build.md
|
||||
git diff 0.12.43 HEAD -- docs/faq_build.md | cat
|
||||
-->
|
||||
|
||||
このページは QMK のビルドに関する質問を説明します。まだビルドをしていない場合は、[ビルド環境のセットアップ](ja/getting_started_build_tools.md) および [Make 手順](ja/getting_started_make_guide.md)ガイドを読むべきです。
|
||||
@ -22,73 +22,9 @@
|
||||
|
||||
`make` を `sudo` で実行することは一般的には良い考えでは***なく***、可能であれば前者の方法のいずれかを使うべきです。
|
||||
|
||||
### Linux の `udev` ルール
|
||||
### Linux の `udev` ルール :id=linux-udev-rules
|
||||
|
||||
Linux では、ブートローダデバイスと通信するには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか、`/etc/udev/rules.d/` にこのファイルを配置することで、通信することができます。
|
||||
|
||||
**/etc/udev/rules.d/50-qmk.rules:**
|
||||
```
|
||||
# Atmel DFU
|
||||
### ATmega16U2
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FEF", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### ATmega32U2
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF0", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### ATmega16U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF3", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### ATmega32U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF4", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### AT90USB64
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF9", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### AT90USB128
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FFB", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# Input Club
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1C11", ATTRS{idProduct}=="B007", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# STM32duino
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1EAF", ATTRS{idProduct}=="0003", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
# STM32 DFU
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="DF11", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# BootloadHID
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DF", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# USBAspLoader
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DC", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# ModemManager should ignore the following devices
|
||||
# Atmel SAM-BA (Massdrop)
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="6124", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
|
||||
# Caterina (Pro Micro)
|
||||
## Spark Fun Electronics
|
||||
### Pro Micro 3V3/8MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### Pro Micro 5V/16MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### LilyPad 3V3/8MHz (and some Pro Micro clones)
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9207", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## Pololu Electronics
|
||||
### A-Star 32U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1FFB", ATTRS{idProduct}=="0101", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## Arduino SA
|
||||
### Leonardo
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### Micro
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## Adafruit Industries LLC
|
||||
### Feather 32U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000C", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### ItsyBitsy 32U4 3V3/8MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000D", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### ItsyBitsy 32U4 5V/16MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000E", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## dog hunter AG
|
||||
### Leonardo
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### Micro
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
```
|
||||
Linux では、ブートローダデバイスと通信するには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか(非推奨)、`/etc/udev/rules.d/` に[このファイル](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules)を配置することで、通信することができます。
|
||||
|
||||
追加が完了したら、以下を実行します:
|
||||
|
||||
@ -129,9 +65,9 @@ https://github.com/tmk/tmk_keyboard/issues/150
|
||||
- https://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
|
||||
|
||||
### キーボードに書き込んだが何も起こらない、あるいはキーの押下が登録されない - ARM (rev6 planck、clueboard 60、hs60v2 など) でも同じ (Feb 2019)
|
||||
ARM ベースのチップ上での EEPROM の動作によって、保存された設定が無効になる場合があります。これはデフォルトレイヤに影響し、まだ調査中の特定の環境下でキーボードが使えなくなる*しれません*。EEPROM のリセットでこれが修正されます。
|
||||
ARM ベースのチップ上での EEPROM の動作によって、保存された設定が無効になる場合があります。これはデフォルトレイヤに影響し、まだ調査中の特定の環境下でキーボードが使えなくなるかも*しれません*。EEPROM のリセットでこれが修正されます。
|
||||
|
||||
[Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) を使って eeprom のリセットを強制することができます。このイメージを書き込んだ後で、通常のファームウェアを書き込むと、キーボードが_通常_ の動作順序に復元されます。
|
||||
[Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) を使って eeprom のリセットを強制することができます。このイメージを書き込んだ後で、通常のファームウェアを書き込むと、キーボードが _通常_ の動作順序に復元されます。
|
||||
[Preonic rev3 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/537849497313738762/preonic_rev3_default.bin)
|
||||
|
||||
いずれかの形式でブートマジックが有効になっている場合は、これも実行できるはずです (実行方法の詳細については、[ブートマジックドキュメント](ja/feature_bootmagic.md)とキーボード情報を見てください)。
|
||||
|
@ -1,8 +1,8 @@
|
||||
# 触覚フィードバック
|
||||
|
||||
<!---
|
||||
original document: 0.8.123:docs/feature_haptic_feedback.md
|
||||
git diff 0.8.123 HEAD -- docs/feature_haptic_feedback.md | cat
|
||||
original document: 0.12.41:docs/feature_haptic_feedback.md
|
||||
git diff 0.12.41 HEAD -- docs/feature_haptic_feedback.md | cat
|
||||
-->
|
||||
|
||||
## 触覚フィードバック の rules.mk オプション
|
||||
@ -31,7 +31,7 @@
|
||||
| `HPT_TOG` | 触覚フィードバックのオン/オフを切り替え |
|
||||
| `HPT_RST` | 触覚フィードバック設定をデフォルトに戻す |
|
||||
| `HPT_FBK` | キー押下またはリリースまたはその両方でフィードバックを切り替え |
|
||||
| `HPT_BUZ` | ソレノイドの振動のオン/オフを切り替え |
|
||||
| `HPT_BUZ` | ソレノイドのブザー音のオン/オフを切り替え |
|
||||
| `HPT_MODI` | 次の DRV2605L 波形に移動 |
|
||||
| `HPT_MODD` | 前の DRV2605L 波形に移動 |
|
||||
| `HPT_CONT` | 連続触覚モードのオン/オフを切り替え |
|
||||
@ -44,7 +44,7 @@
|
||||
|
||||
ほとんどの MCU はソレノイドのコイルを駆動するために必要な電流を供給できないため、最初に MOSFET を介してソレノイドを駆動する回路を構築する必要があります。
|
||||
|
||||
[Adafruit が提供する配線図](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf)
|
||||
[Adafruit が提供する配線図](https://cdn-shop.adafruit.com/product-files/412/412_solenoid_driver.pdf)
|
||||
|
||||
|
||||
| 設定 | デフォルト | 説明 |
|
||||
@ -53,8 +53,15 @@
|
||||
| `SOLENOID_DEFAULT_DWELL` | `12` ms | ソレノイドのデフォルトの滞留時間を設定する。 |
|
||||
| `SOLENOID_MIN_DWELL` | `4` ms | 滞留時間の下限を設定する。 |
|
||||
| `SOLENOID_MAX_DWELL` | `100` ms | 滞留時間の上限を設定する。 |
|
||||
| `SOLENOID_DWELL_STEP_SIZE` | `1` ms | `HPT_DWL*` キーコードが送信される時に使われるステップサイズ |
|
||||
| `SOLENOID_DEFAULT_BUZZ` | `0` (無効) | HPT_RST では、この値が "1" の場合、ブザー音が "on" に設定されます |
|
||||
| `SOLENOID_BUZZ_ACTUATED` | `SOLENOID_MIN_DWELL` | ソレノイドがブザー音モードの場合の動作時間 |
|
||||
| `SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` | ソレノイドがブザー音モードの場合の非動作時間 |
|
||||
|
||||
?> 滞留時間とは、「プランジャー」が作動したままになる時間です。滞留時間により、ソレノイドの音が変わります。
|
||||
* ソレノイドのブザー音がオフの場合、滞留時間は「プランジャー」が作動したままになる時間です。滞留時間により、ソレノイドの音が変わります。
|
||||
* ソレノイドのブザー音がオンの場合、滞留時間は振動の長さを設定しますが、`SOLENOID_BUZZ_ACTUATED` と `SOLENOID_BUZZ_NONACTUATED` はブザー音の間の(非)動作時間を設定します。
|
||||
* 現在の実装では、上記の時間設定のいずれについても、設定の精度はキーボードがマトリックスをスキャンできる速度によって影響を受ける可能性があります。
|
||||
したがって、キーボードのスキャンルーチンが遅い場合は、`SOLENOID_DWELL_STEP_SIZE` をキーボードのスキャンに掛かる時間よりもわずかに小さい値に設定することをお勧めします。
|
||||
|
||||
ブートローダ実行中に一部のピンが給電されているかもしれず (例えば、STM32F303 チップ上の A13)、そうすると書き込みプロセスの間ずっとソレノイドがオン状態になることに注意してください。これはソレノイドを加熱し損傷を与えるかもしれません。ソレノイドが接続されているピンがブートローダ/DFU 実行中にソレノイドをオンにしていることが分かった場合は、他のピンを選択してください。
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
# ポインティングデバイス :id=pointing-device
|
||||
|
||||
<!---
|
||||
original document: 0.9.43:docs/feature_pointing_device.md
|
||||
git diff 0.9.43 HEAD -- docs/feature_pointing_device.md | cat
|
||||
original document: 0.12.41:docs/feature_pointing_device.md
|
||||
git diff 0.12.41 HEAD -- docs/feature_pointing_device.md | cat
|
||||
-->
|
||||
|
||||
ポインティングデバイスは汎用的な機能の総称です: システムポインタを移動します。マウスキーのような他のオプションも確かにありますが、これは簡単に変更可能で軽量であることを目指しています。機能を制御するためにカスタムキーを実装したり、他の周辺機器から情報を収集してここに直接挿入したりできます - QMK に処理を任せてください。
|
||||
@ -24,7 +24,7 @@ report_mouse_t (ここでは "mouseReport") が以下のプロパティを持つ
|
||||
* `mouseReport.y` - これは、y軸の動き(+ 上へ、- 下へ)を表す -127 から 127 (128ではなく、USB HID 仕様で定義されています)の符号付き整数です。
|
||||
* `mouseReport.v` - これは、垂直スクロール(+ 上へ、- 下へ)を表す -127 から 127 (128ではなく、USB HID 仕様で定義されています)の符号付き整数です。
|
||||
* `mouseReport.h` - これは、水平スクロール(+ 右へ、- 左へ)を表す -127 から 127 (128ではなく、USB HID 仕様で定義されています)の符号付き整数です。
|
||||
* `mouseReport.buttons` - これは uint8_t で、上位の5ビットを使っています。これらのビットはマウスボタンの状態を表します - ビット 3 はマウスボタン 5、ビット 7 はマウスボタン 1 です。
|
||||
* `mouseReport.buttons` - これは uint8_t で、8ビット全てを使っています。これらのビットはマウスボタンの状態を表します - ビット 0 はマウスボタン 1、ビット 7 はマウスボタン 8 です。
|
||||
|
||||
マウスレポートに必要な変更を行ったら、それを送信する必要があります:
|
||||
|
||||
@ -32,6 +32,10 @@ report_mouse_t (ここでは "mouseReport") が以下のプロパティを持つ
|
||||
|
||||
マウスレポートが送信されると、x、y、v、h のいずれの値も 0 に設定されます (これは `pointing_device_send()` で行われます。この挙動を回避するためにオーバーライドすることができます)。このように、ボタンの状態は持続しますが、動きは1度だけ起こります。さらにカスタマイズするために、`pointing_device_init` と `pointing_device_task` のどちらもオーバーライドすることができます。
|
||||
|
||||
さらに、デフォルトでは、`pointing_device_send()` はレポートが実際に変更された場合のみレポートを送信します。これにより、マウスレポートが継続的に送信されてホストシステムが起動されたままになることを防ぎます。この動作は、独自の `pointing_device_send()` 関数を作成することで変更できます。
|
||||
|
||||
また、`has_mouse_report_changed(new, old)` 関数を使って、レポートが変更されたかどうかを確認できます。(訳注:独自の `pointing_device_send()` 関数を作成する場合でも、その中で `has_mouse_report_changed(new, old)` 関数でチェックして、デフォルトの `pointing_device_send()` と類似の無駄なレポートの抑制をして、ホストシステムがスリープ状態に入れる余地を残すようにしておくのが良いでしょう。)
|
||||
|
||||
以下の例では、カスタムキーを使ってマウスをクリックし垂直および水平方向に127単位スクロールし、リリースされた時にそれを全て元に戻します - なぜならこれは完全に便利な機能だからです。いいですか、以下はひとつの例です:
|
||||
|
||||
```c
|
||||
|
@ -1,16 +1,17 @@
|
||||
# Docker クイックスタート
|
||||
|
||||
<!---
|
||||
original document: 0.9.32:docs/getting_started_docker.md
|
||||
git diff 0.9.32 HEAD -- docs/getting_started_docker.md | cat
|
||||
original document: 0.12.43:docs/getting_started_docker.md
|
||||
git diff 0.12.43 HEAD -- docs/getting_started_docker.md | cat
|
||||
-->
|
||||
|
||||
このプロジェクトは、プライマリオペレーティングシステムに大きな変更を加えることなくキーボードの新しいファームウェアを非常に簡単に構築することができる Docker ワークフローを含みます。これは、あなたがプロジェクトをクローンしビルドを実行した時に、他の人とまったく同じ環境と QMK ビルド基盤を持つことも保証します。これにより、人々はあなたが遭遇した問題の解決をより簡単に行えるようになります。
|
||||
|
||||
## 必要事項
|
||||
|
||||
主な前提条件は動作する `docker` がインストールされていることです。
|
||||
主な前提条件は動作する `docker` または `podman` がインストールされていることです。
|
||||
* [Docker CE](https://docs.docker.com/install/#supported-platforms)
|
||||
* [Podman](https://podman.io/getting-started/installation)
|
||||
|
||||
## 使い方
|
||||
|
||||
@ -29,7 +30,7 @@ util/docker_build.sh <keyboard>:<keymap>
|
||||
|
||||
これは目的のキーボード/キーマップをコンパイルし、結果として書き込み用に `.hex` あるいは `.bin` ファイルを QMK ディレクトリの中に残します。`:keymap` が省略された場合は全てのキーマップが使われます。パラメータの形式は、`make` を使ってビルドする時と同じであることに注意してください。
|
||||
|
||||
`target` を指定して Docker から直接キーボードをビルドし、_かつ_書き込むためのサポートもあります。
|
||||
`target` を指定して Docker から直接キーボードをビルドし、_かつ_ 書き込むためのサポートもあります。
|
||||
|
||||
```bash
|
||||
util/docker_build.sh keyboard:keymap:target
|
||||
@ -43,10 +44,17 @@ util/docker_build.sh
|
||||
# パラメータを入力として読み込みます (空白にすると全てのキーボード/キーマップ)
|
||||
```
|
||||
|
||||
`RUNTIME` 環境変数にコンテナランタイム名やパスを設定することで、使用したいコンテナランタイムを手動で設定できます。
|
||||
デフォルトでは docker や podman は自動的に検出され、podman より docker が優先されます。
|
||||
|
||||
```bash
|
||||
RUNTIME="podman" util/docker_build.sh keyboard:keymap:target
|
||||
```
|
||||
|
||||
## FAQ
|
||||
|
||||
### なぜ Windows/macOS 上で書き込めないのですか?
|
||||
|
||||
Windows と macOS では、実行するために [Docker Machine](http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos/) が必要です。これはセットアップが面倒なので、お勧めではありません: 代わりに [QMK Toolbox](https://github.com/qmk/qmk_toolbox) を使ってください。
|
||||
|
||||
!> Docker for Windows は[Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) を有効にする必要があります。これは、Windows 7、Windows 8 および **Windows 10 Home** のような Hyper-V を搭載していない Windows のバージョンでは機能しないことを意味します。
|
||||
!> Docker for Windows は [Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) を有効にする必要があります。これは、Windows 7、Windows 8 および **Windows 10 Home** のような Hyper-V を搭載していない Windows のバージョンでは機能しないことを意味します。
|
||||
|
@ -1,8 +1,8 @@
|
||||
# QMK で GitHub を使う方法
|
||||
|
||||
<!---
|
||||
original document: 0.9.43:docs/getting_started_github.md
|
||||
git diff 0.9.43 HEAD -- docs/getting_started_github.md | cat
|
||||
original document: 0.12.43:docs/getting_started_github.md
|
||||
git diff 0.12.43 HEAD -- docs/getting_started_github.md | cat
|
||||
-->
|
||||
|
||||
GitHub は慣れていない人には少し注意が必要です - このガイドは、QMK におけるフォーク、クローン、プルリクエストのサブミットの各ステップについて説明します。
|
||||
|
@ -1,8 +1,8 @@
|
||||
# より詳細な `make` 手順
|
||||
|
||||
<!---
|
||||
original document: 0.10.33:docs/getting_started_make_guide.md
|
||||
git diff 0.10.33 HEAD -- docs/getting_started_make_guide.md | cat
|
||||
original document: 0.12.43:docs/getting_started_make_guide.md
|
||||
git diff 0.12.43 HEAD -- docs/getting_started_make_guide.md | cat
|
||||
-->
|
||||
|
||||
`make` コマンドの完全な構文は `<keyboard_folder>:<keymap>:<target>` です:
|
||||
@ -19,16 +19,32 @@
|
||||
`<target>` は以下を意味します
|
||||
* target が指定されない場合は、以下の `all` と同じです
|
||||
* `all` は指定されたキーボード/リビジョン/キーマップの可能な全ての組み合わせのコンパイルを行います。例えば、`make planck/rev4:default` は1つの .hex を生成しますが、`make planck/rev4:all` は planck で利用可能な全てのキーマップについて hex を生成します。
|
||||
* `flash`、`dfu`、`teensy`、`avrdude`、`dfu-util` または `bootloadHID` はファームウェアをコンパイルし、キーボードにアップロードします。コンパイルが失敗すると、何もアップロードされません。使用するプログラマはキーボードに依存します。ほとんどのキーボードでは `dfu` ですが、ChibiOS キーボードについては `dfu-util` 、標準的な Teensy については `teensy` を使います。キーボードに使うコマンドを見つけるには、キーボード固有の readme をチェックしてください。
|
||||
* **注意**: 一部のオペレーティングシステムではこれらのコマンドが機能するためには root アクセスが必要です。その場合、例えば `sudo make planck/rev4:default:flash` を実行する必要があります。
|
||||
* `flash`、`dfu`、`teensy`、`avrdude`、`dfu-util`、`bootloadHID` はファームウェアをコンパイルし、キーボードにアップロードします。コンパイルが失敗すると、何もアップロードされません。使用するプログラマはキーボードに依存します。ほとんどのキーボードでは `dfu` ですが、ChibiOS キーボードについては `dfu-util` 、標準的な Teensy については `teensy` を使います。キーボードに使うコマンドを見つけるには、キーボード固有の readme をチェックしてください。
|
||||
利用可能なブートローダの詳細は[ファームウェアの書き込み](ja/flashing.md)ガイドを参照してください。
|
||||
* **Note**: 一部のオペレーティングシステムでは、これらのコマンドが機能するためには特権アクセスが必要です。これは、root アクセスなしでこれらにアクセスするために [`udev ルール`](ja/faq_build.md#linux-udev-rules) を設定するか、あるいは root アクセスでコマンドを実行する (`sudo make planck/rev4:default:flash`) 必要があるかもしれないことを意味します。
|
||||
* `clean` は、全てをゼロからビルドするためにビルド出力フォルダを掃除します。説明できない問題がある場合は、通常のコンパイルの前にこれを実行してください。
|
||||
* `distclean` は、.hex ファイルと .bin ファイルを削除します。
|
||||
|
||||
次のターゲットは開発者向けです:
|
||||
|
||||
* `show_path` ソースとオブジェクトファイルのパスを表示します。
|
||||
* `dump_vars` makefile 変数をダンプします。
|
||||
* `objs-size` 個々のオブジェクトファイルのサイズを表示します。
|
||||
* `show_build_options` 'rules.mk' のオプションセットを表示します。
|
||||
* `check-md5` 生成されたバイナリファイルの md5 チェックサムを表示します。
|
||||
|
||||
make コマンドの最後、つまり target の後に追加のオプションを追加することもできます
|
||||
|
||||
* `make COLOR=false` - カラー出力をオフ
|
||||
* `make SILENT=true` - エラー/警告以外の出力をオフ
|
||||
* `make VERBOSE=true` - 全ての gcc のものを出力 (デバッグする必要が無い限り面白くありません)
|
||||
* `make EXTRAFLAGS=-E` - コンパイルせずにコードを前処理 (#define コマンドをデバッグしようとする場合に便利)
|
||||
* `make VERBOSE_LD_CMD=yes` - -v オプションを指定して ld コマンドを実行します。
|
||||
* `make VERBOSE_AS_CMD=yes` - -v オプションを指定して as コマンドを実行します。
|
||||
* `make VERBOSE_C_CMD=<c_source_file>` - 指定された C ソースファイルをコンパイルするときに -v オプションを追加します。
|
||||
* `make DUMP_C_MACROS=<c_source_file>` - 指定された C ソースファイルをコンパイルするときにプリプロセッサマクロをダンプします。
|
||||
* `make DUMP_C_MACROS=<c_source_file> > <logfile>` - 指定された C ソースファイルをコンパイルするときにプリプロセッサマクロを `<logfile>` にダンプします。
|
||||
* `make VERBOSE_C_INCLUDE=<c_source_file>` - 指定された C ソースファイルをコンパイルするときにインクルードされるファイル名をダンプします。
|
||||
* `make VERBOSE_C_INCLUDE=<c_source_file> 2> <logfile>` - 指定された C ソースファイルをコンパイルするときにインクルードされるファイル名を `<logfile>` にダンプします。
|
||||
|
||||
make コマンド自体にもいくつかの追加オプションがあります。詳細は `make --help` を入力してください。最も有用なのはおそらく `-jx` です。これは複数の CPU を使ってコンパイルしたいことを指定し、`x` は使用したい CPU の数を表します。設定すると、特に多くのキーボード/キーマップをコンパイルしている場合は、コンパイル時間を大幅に短縮することができます。通常は、コンパイル中に他の作業を行うための余裕をもたせるために、持っている CPU の数より1つ少ない値に設定します。全てのオペレーティングシステムと make バージョンがオプションをサポートしているわけではないことに注意してください。
|
||||
|
||||
@ -104,7 +120,7 @@ make コマンド自体にもいくつかの追加オプションがあります
|
||||
|
||||
これにより、送信したい文字に対応するニーモニックを入力することで Unicode 文字を送信することができます。キーマップファイル内にマッピングテーブルを保持する必要があります。可能な全てのコードポイント( `0x10FFFF` まで)がサポートされます。
|
||||
|
||||
詳細と制限については、[Unicode ページ](ja/feature_unicode.md) を見てください。
|
||||
詳細と制限については、[Unicode ページ](ja/feature_unicode.md)を見てください。
|
||||
|
||||
`AUDIO_ENABLE`
|
||||
|
||||
@ -116,11 +132,11 @@ C6 ピン(抽象化が必要)でオーディオ出力できます。詳細は[
|
||||
|
||||
`API_SYSEX_ENABLE`
|
||||
|
||||
これにより Quantum SYSEX API を使って文字列を送信することができます (どこに?)
|
||||
これにより Quantum SYSEX API を使って文字列を(どこかに?)送信することができます
|
||||
|
||||
`KEY_LOCK_ENABLE`
|
||||
|
||||
これは [キーロック](ja/feature_key_lock.md) を有効にします。
|
||||
これは[キーロック](ja/feature_key_lock.md)を有効にします。
|
||||
|
||||
`SPLIT_KEYBOARD`
|
||||
|
||||
@ -132,7 +148,7 @@ ARM ベースの分割キーボード用の標準分割通信ドライバはま
|
||||
|
||||
`CUSTOM_MATRIX`
|
||||
|
||||
デフォルトのマトリックス走査ルーチンを独自のコードで置き換えます。詳細については、[カスタムマトリックスページ](ja/custom_matrix.md) を見てください。
|
||||
デフォルトのマトリックス走査ルーチンを独自のコードで置き換えます。詳細については、[カスタムマトリックスページ](ja/custom_matrix.md)を見てください。
|
||||
|
||||
`DEBOUNCE_TYPE`
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Vagrant クイックスタート
|
||||
|
||||
<!---
|
||||
original document: 0.9.10:docs/getting_started_vagrant.md
|
||||
git diff 0.9.10 HEAD -- docs/getting_started_vagrant.md | cat
|
||||
original document: 0.12.43:docs/getting_started_vagrant.md
|
||||
git diff 0.12.43 HEAD -- docs/getting_started_vagrant.md | cat
|
||||
-->
|
||||
|
||||
このプロジェクトは、プライマリオペレーティングシステムに大きな変更を加えることなくキーボードの新しいファームウェアを非常に簡単に構築することができる `Vagrantfile` を含みます。これは、あなたがプロジェクトをクローンしビルドを実行した時に、ビルドのために Vagrantfile を使っている他のユーザと全く同じ環境を持つことも保証します。これにより、人々はあなたが遭遇した問題の解決をより簡単に行えるようになります。
|
||||
@ -12,16 +12,16 @@
|
||||
このリポジトリ内の `Vagrantfile` を使うには、[Vagrant](https://www.vagrantup.com/) およびサポートされるプロバイダがインストールされている必要があります:
|
||||
|
||||
* [VirtualBox](https://www.virtualbox.org/) (バージョン 5.0.12 以降)
|
||||
* 'Vagrant を使うために最もアクセスしやすいプラットフォーム' として販売
|
||||
* 「Vagrant を使うために最もアクセスしやすいプラットフォーム」とうたわれています。
|
||||
* [VMware Workstation](https://www.vmware.com/products/workstation) および [Vagrant VMware プラグイン](https://www.vagrantup.com/vmware)
|
||||
* (有料) VMware プラグインには、ライセンスされた VMware Workstation/Fusion のコピーが必要です。
|
||||
* [Docker](https://www.docker.com/)
|
||||
|
||||
Vagrant 以外に、適切なプロバイダがインストールされ、その後におそらくコンピュータを再起動すると、このプロジェクトをチェックアウトしたフォルダ内の任意の場所で 'vagrant up' を単純に実行することができ、このプロジェクトをビルドするのに必要な全てのツールが含まれる環境(仮想マシンあるいはコンテナ)が開始されます。Vagrant をうまく始めるためのヒントの投稿がありますが、それ以外に、以下のビルドドキュメントを参照することもできます。
|
||||
Vagrant 以外に、適切なプロバイダがインストールされ、その後におそらくコンピュータを再起動すると、このプロジェクトをチェックアウトしたフォルダ内の任意の場所で 'vagrant up' を単純に実行することができ、このプロジェクトをビルドするのに必要な全てのツールが含まれる環境(仮想マシンあるいはコンテナ)が開始されます。Vagrant 起動時にうまく始めるためのヒントが表示されますが、それ以外に、以下のビルドドキュメントを参照することもできます。
|
||||
|
||||
## ファームウェアの書き込み
|
||||
|
||||
ファームウェアを書き込む"簡単"な方法は、ホスト OS からツールを使うことです:
|
||||
ファームウェアを書き込む「簡単な」方法は、ホスト OS からツールを使うことです:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox) (推奨)
|
||||
* [Teensy ローダー](https://www.pjrc.com/teensy/loader.html)
|
||||
|
@ -2,12 +2,31 @@
|
||||
|
||||
<!---
|
||||
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
|
||||
original document: 0.10.33:docs/hardware_keyboard_guidelines.md
|
||||
git diff 0.10.33 HEAD -- docs/hardware_keyboard_guidelines.md | cat
|
||||
original document: 0.12.41:docs/hardware_keyboard_guidelines.md
|
||||
git diff 0.12.41 HEAD -- docs/hardware_keyboard_guidelines.md | cat
|
||||
-->
|
||||
|
||||
QMK は開始以来、コミュニティにおけるキーボードの作成や保守に貢献しているあなたのような人たちのおかげで飛躍的に成長しました。私たちが成長するにつれて、うまくやるためのいくつかのパターンを発見しました。他の人たちがあなたの苦労の恩恵を受けやすくするため、それにあわせてもらえるようお願いします。
|
||||
|
||||
## QMK Lint を使う
|
||||
|
||||
キーボードの問題をチェックできるツール、`qmk lint` を提供しています。キーボードとキーマップで作業をしている間は、頻繁に使うことをお勧めします。
|
||||
|
||||
チェックに合格した例:
|
||||
|
||||
```
|
||||
$ qmk lint -kb rominronin/katana60/rev2
|
||||
Ψ Lint check passed!
|
||||
```
|
||||
|
||||
チェックに失敗した例:
|
||||
|
||||
```
|
||||
$ qmk lint -kb clueboard/66/rev3
|
||||
☒ Missing keyboards/clueboard/66/rev3/readme.md
|
||||
☒ Lint check failed!
|
||||
```
|
||||
|
||||
## あなたのキーボード/プロジェクトの名前を決める
|
||||
|
||||
キーボードの名前は全て小文字で、アルファベット、数字、アンダースコア(`_`)のみで構成されています。アンダースコア(`_`)で始めてはいけません。スラッシュ(`/`)はサブフォルダの区切り文字として使用されます。
|
||||
|
@ -1,9 +1,9 @@
|
||||
# QMK 初心者ガイド
|
||||
# QMK チュートリアル
|
||||
|
||||
<!---
|
||||
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
|
||||
original document: 0.9.0:docs/newbs.md
|
||||
git diff 0.9.0 HEAD -- docs/newbs.md | cat
|
||||
original document: 0.12.45:docs/newbs.md
|
||||
git diff 0.12.45 HEAD -- docs/newbs.md | cat
|
||||
-->
|
||||
|
||||
キーボードには、コンピュータ入っているものと似たようなプロセッサが入っています。
|
||||
@ -19,20 +19,16 @@ QMK は、簡単なことは簡単に、そして、難しいことを可能な
|
||||
QMK は[多くの趣味のキーボード](https://qmk.fm/keyboards/)をサポートしています。
|
||||
現在使用しているキーボードが QMK を実行できない場合、QMK を実行できるキーボードの選択肢はたくさんあります。
|
||||
|
||||
## このガイドは私のためにあるのでしょうか?
|
||||
|
||||
このガイドは、ソースコードを使ってキーボードのファームウェアを構築したいと考えている人に適しています。
|
||||
もしあなたがすでにプログラマーであれば、このプロセスはとても身近で簡単に理解できるでしょう。
|
||||
もし、プログラミングの考え方に抵抗があるのであれば、代わりに[私たちのオンラインGUI](ja/newbs_building_firmware_configurator.md)を見てみてください。
|
||||
?> **このガイドは私のためにあるのでしょうか?**<br>
|
||||
もし、プログラミングの考え方に抵抗があるのであれば、代わりに[私たちのオンライン GUI](ja/newbs_building_firmware_configurator.md) を見てみてください。
|
||||
|
||||
## 概要
|
||||
|
||||
このガイドには4つの主要なセクションがあります。
|
||||
このガイドは、ソースコードを使ってキーボードのファームウェアを構築したいと考えている人に適しています。 もしあなたがすでにプログラマーであれば、このプロセスはとても身近で簡単に理解できるでしょう。このガイドには3つの主要なセクションがあります:
|
||||
|
||||
1. [環境設定](ja/newbs_getting_started.md)
|
||||
2. [コマンドラインを使用して初めてのファームウェアを構築する](ja/newbs_building_firmware.md)
|
||||
3. [ファームウェアを書きこむ](ja/newbs_flashing.md)
|
||||
4. [テストとデバッグ](ja/newbs_testing_debugging.md)
|
||||
|
||||
このガイドは、これまでソフトウェアをコンパイルしたことがない人を支援することに特化しています。
|
||||
その観点から選択と推奨を行います。
|
||||
@ -41,8 +37,4 @@ QMK は[多くの趣味のキーボード](https://qmk.fm/keyboards/)をサポ
|
||||
|
||||
## 追加のリソース
|
||||
|
||||
このガイドの他にも、QMK の学習に役立つリソースがいくつかあります。[学習リソース](ja/newbs_learn_more_resources.md)のページにまとめました。
|
||||
|
||||
## オープンソース
|
||||
|
||||
QMKは GNU General Public License でリリースされているオープンソース・ソフトウェアです。
|
||||
このガイドの他にも、QMK の学習に役立つリソースがいくつかあります。[シラバス](ja/syllabus.md)と[学習リソース](ja/newbs_learn_more_resources.md)のページにまとめました。
|
||||
|
@ -1,12 +1,12 @@
|
||||
# ファームウェアを書きこむ
|
||||
# ファームウェアを書き込む
|
||||
|
||||
<!---
|
||||
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
|
||||
original document: 0.9.44:docs/newbs_flashing.md
|
||||
git diff 0.9.44 HEAD -- docs/newbs_flashing.md | cat
|
||||
original document: 0.12.45:docs/newbs_flashing.md
|
||||
git diff 0.12.45 HEAD -- docs/newbs_flashing.md | cat
|
||||
-->
|
||||
|
||||
カスタムファームウェアは出来たので、キーボードに書き込みたくなるでしょう/フラッシュしたくなるでしょう。
|
||||
カスタムファームウェアは出来たので、いよいよキーボードへの書き込み(フラッシュ)です。
|
||||
|
||||
## キーボードを DFU (Bootloader) モードにする
|
||||
|
||||
@ -50,18 +50,22 @@ Finder またはエクスプローラーでファームウェアのファイル
|
||||
|
||||
Windows か macOS を使用している場合、現在のフォルダをエクスプローラーか Finder で簡単に開くためのコマンドがあります。
|
||||
|
||||
#### Windows
|
||||
<!-- tabs:start -->
|
||||
|
||||
#### ** Windows **
|
||||
|
||||
```
|
||||
start .
|
||||
```
|
||||
|
||||
#### macOS
|
||||
#### ** macOS **
|
||||
|
||||
```
|
||||
open .
|
||||
```
|
||||
|
||||
<!-- tabs:end -->
|
||||
|
||||
ファームウェアファイルは常に以下の命名形式に従っています:
|
||||
|
||||
```
|
||||
@ -117,11 +121,13 @@ QMK Toolbox の `Flash` ボタンをクリックします。次のような出
|
||||
|
||||
WARNING: This board's bootloader is not specified or is not supported by the ":flash" target at this time.
|
||||
|
||||
この場合、あなたは明示的にブートローダを指定する方法を使わなければなりません。詳細は、[ファームウェアのフラッシュ](ja/flashing.md) ガイドを参照してください。
|
||||
この場合、あなたは明示的にブートローダを指定する方法を使わなければなりません。詳細は、[ファームウェアのフラッシュ](ja/flashing.md)ガイドを参照してください。
|
||||
|
||||
## テストしましょう!
|
||||
|
||||
おめでとうございます! カスタムファームウェアがキーボードにプログラムされました!
|
||||
おめでとうございます!カスタムファームウェアがキーボードにプログラムされ、テストする準備ができました!
|
||||
|
||||
使ってみて、すべてがあなたの望むように動作するかどうか確認してください。
|
||||
この初心者ガイドを完全なものにするために [テストとデバッグ](ja/newbs_testing_debugging.md) を書いたので、ファームウェアの検証とカスタム機能のトラブルシューティング方法について学ぶには、こちらをご覧ください。
|
||||
少し運が良ければ全てが完璧に機能しますが、そうでない場合は何が問題なのかを理解するのに役立つ手順があります。
|
||||
通常、キーボードのテストは非常に簡単です。全てのキーをひとつずつ押して、期待するキーが送信されることを確認します。例え QMK で動作していない場合でも、[QMK Configurator](https://config.qmk.fm/#/test/) のテストモードを使用すると、キーボードをチェックできます。
|
||||
|
||||
まだ動作しませんか?詳細については FAQ トピックを参照するか、[Discord でチャット](https://discord.gg/Uq7gcHh)してください。
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user