* [Docs] recurse-submodules option is need now * [Docs] `tmk_core` folder is correct * [Docs] fix typo * [Docs] package scope has changed * [Docs] Fix menu differences * Update docs/arm_debugging.md Co-Authored-By: fauxpark <fauxpark@gmail.com> * Update docs/arm_debugging.md Co-Authored-By: fauxpark <fauxpark@gmail.com> * fix typo Co-authored-by: fauxpark <fauxpark@gmail.com>
3.6 KiB
Introduction
Le but de cette page est d'expliquer les informations de base qui vous serons nécessaire pour travailler sur le projet QMK. Il a pour pré-requis que vous soyez familier à la navigation à l'aide d'un shell Unix, mais ne s'attend pas à ce que vous soyez familier avec C ou la compilation en utilisant make.
Structure de base de QMK
QMK est un fork du projet tmk_keyboard créé par Jun Wako. Le code originel de TMK, avec quelques modifications, se trouve dans le dossier tmk_core
. Les additions que QMK amène au projet se trouvent dans le dossier quantum
. Les projets de clavier se trouvent dans les dossiers handwired
et keyboard
.
Structure du Userspace
Dans le dossier users
se trouve un répertoire pour chaque utilisateur. C'est un endroit où les utilisateurs peuvent mettre du code qui serait partagé entre plusieurs claviers. Merci de lire la documentation Fonctionnalité Userspace pour plus d'information.
Structure du projet clavier
Dans le dossier keyboards
, son sous-dossier handwired
et ses sous-dossiers pour les revendeurs et fabriquants (par exemple clueboard
) se trouve un répertoire pour chaque projet clavier. Par exemple qmk_firmware/keyboards/clueboard/2x1800
.
A l'intérieur, vous trouverez la structure suivante:
keymaps/
: différentes keymaps qui peuvent être compiléesrules.mk
: Ce fichier définit les options "make" par défaut. Ne modifiez pas ce fichier directement, utilisez à la place unrules.mk
spécifique à la keymap.config.h
: Ce fichier définit les options de compilation par défaut. Ne modifiez pas ce fichier directement, utilisez à la place unconfig.h
spécifique à la keymap.info.json
: Le fichier utilisé pour définir les options de layout de QMK Configurator. Voyez Support Configurator pour plus d'information.readme.md
: une brève description du clavier.<keyboardName>.h
: Ce fichier définit le layout du fichier par rapport à la matrice de commutation.<keyboardName>.c
: Ce fichier définit du code custom pour le clavier.
Pour plus d'information sur la structure du projet, voyez Directives clavier QMK.
Structure d'une Keymap
Dans chaque dossier keymap, vous allez trouver les fichiers suivants. Seul le fichier keymap.c
est nécessaire, et si le reste des fichiers n'existent pas, les options par défaut seront choisies.
config.h
: les options de configuration de votre keymapkeymap.c
: tout le code de votre keymap, requisrules.mk
: les features de QMK qui sont activéesreadme.md
: une description de votre keymap, comment d'autres l'utiliseront, et des explications des fonctionnalités. Uploadez les images vers un service comme imgur.
Le fichier config.h
Le fichier config.h
peut être mis à 3 endroits:
- keyboard (
/keyboards/<keyboard>/config.h
) - userspace (
/users/<user>/config.h
) - keymap (
/keyboards/<keyboard>/keymaps/<keymap>/config.h
)
Le système de compilation cherche automatiquement les fichiers de configuration dans l'ordre au-dessus. Si vous souhaitez surcharger une configuration définie par un config.h
précédent, vous devrez d'abord ajouter le code suivant.
#pragma once
Ensuite, pour surcharger l'option du fichier config.h
précédent, vous devez #undef
puis #define
l'option à nouveau.
Voici à quoi l'ensemble du code ressemble une fois regroupé:
#pragma once
// overrides go here!
#undef MY_SETTING
#define MY_SETTING 4