You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
3.6 KiB

  1. # Introduction
  2. 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.
  3. ## Structure de base de QMK
  4. QMK est un fork du projet [tmk_keyboard](https://github.com/tmk/tmk_keyboard) créé par [Jun Wako](https://github.com/tmk). 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`.
  5. ### Structure du Userspace
  6. 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](feature_userspace.md) pour plus d'information.
  7. ### Structure du projet clavier
  8. 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`.
  9. A l'intérieur, vous trouverez la structure suivante:
  10. * `keymaps/`: différentes keymaps qui peuvent être compilées
  11. * `rules.mk`: Ce fichier définit les options "make" par défaut. Ne modifiez pas ce fichier directement, utilisez à la place un `rules.mk` spécifique à la keymap.
  12. * `config.h`: Ce fichier définit les options de compilation par défaut. Ne modifiez pas ce fichier directement, utilisez à la place un `config.h` spécifique à la keymap.
  13. * `info.json`: Le fichier utilisé pour définir les options de layout de QMK Configurator. Voyez [Support Configurator](reference_configurator_support.md) pour plus d'information.
  14. * `readme.md`: une brève description du clavier.
  15. * `<keyboardName>.h`: Ce fichier définit le layout du fichier par rapport à la matrice de commutation.
  16. * `<keyboardName>.c`: Ce fichier définit du code custom pour le clavier.
  17. Pour plus d'information sur la structure du projet, voyez [Directives clavier QMK](hardware_keyboard_guidelines.md).
  18. ### Structure d'une Keymap
  19. 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.
  20. * `config.h`: les options de configuration de votre keymap
  21. * `keymap.c`: tout le code de votre keymap, requis
  22. * `rules.mk`: les features de QMK qui sont activées
  23. * `readme.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.
  24. # Le fichier `config.h`
  25. Le fichier `config.h` peut être mis à 3 endroits:
  26. * keyboard (`/keyboards/<keyboard>/config.h`)
  27. * userspace (`/users/<user>/config.h`)
  28. * keymap (`/keyboards/<keyboard>/keymaps/<keymap>/config.h`)
  29. 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.
  30. ```
  31. #pragma once
  32. ```
  33. Ensuite, pour surcharger l'option du fichier `config.h` précédent, vous devez `#undef` puis `#define` l'option à nouveau.
  34. Voici à quoi l'ensemble du code ressemble une fois regroupé:
  35. ```
  36. #pragma once
  37. // overrides go here!
  38. #undef MY_SETTING
  39. #define MY_SETTING 4
  40. ```