Add outboards docs

This commit is contained in:
Manna Harbour 2024-03-06 11:18:25 +11:00
parent 42ba4d71b6
commit 9a95f410d7

View File

@ -202,24 +202,75 @@ Multiple space separated modules can be specified.
For no changes, leave as ~default~.
** Supported Keyboards
In-tree keyboards are maintained as part of ZMK. See the [[https://zmk.dev/docs/hardware/][ZMK Supported Hardware]] documentation for details.
Supporting an in-tree keyboard in Miryoku ZMK requires only adding the [[#keyboard-keymaps][keyboard keymap]] and [[#mapping-macros][mapping]] files.
Out-of-tree keyboards are *not* maintained as part of ZMK or Miryoku ZMK. Keyboard definitions for out-of-tree keyboards are located in separate repositories. Some keyboards also require a fork of ZMK. Keyboard definitions and ZMK forks are maintained by the maintainers of those repositories.
Out-of-tree keyboards are *not* maintained as part of ZMK or Miryoku ZMK. Keyboard definitions for out-of-tree keyboards are located in separate repositories. Some keyboards also require ZMK forks or external modules. Keyboard definitions, ZMK forks, and external modules are maintained by the maintainers of those repositories.
To build an out-of-tree keyboard the repositories need be checked out and used appropriately. For [[#local-builds][local builds]] these steps must be performed manually. For [[#workflow-builds][workflow builds]] the Miryoku ZMK build workflows perform these steps automatically at build time.
To build an out-of-tree keyboard the repositories need be checked out and used appropriately. For [[#local-builds][local builds]] these steps must be performed manually. For [[#workflow-builds][workflow builds]] the Miryoku ZMK build workflows perform these steps automatically at build time using [[#Outboards][outboards]].
Supporting an out-of-tree keyboard in Miryoku ZMK requires adding the keymap and mapping files, and references to the repositories for use by workflow builds.
Supporting an out-of-tree keyboard in Miryoku ZMK requires adding the keymap, mapping, and outboards files.
See the Test All Controllers, Boards, and Shields [[#workflow-builds][workflow files]] for lists of supported keyboards.
See [[.github/workflows/outboards]] for details of supported out-of-tree keyboards.
See outboards for details of supported out-of-tree keyboards.
See https://github.com/manna-harbour/miryoku/discussions/81 for available and supported in-tree and out-of-tree keyboards and current maintenance status.
See https://github.com/manna-harbour/miryoku/discussions/81 for available and supported in-tree and out-of-tree keyboards.
*** Outboards
Outboards are files containing out-of-tree board and shield definition metadata.
Files are at [[.github/workflows/outboards]]. Outboards for boards and shields are contained in the corresponding subdirectories. Files are named after the board or shield.
Outboards contain Bourne shell variable assignments. Supported variables are described below. See the files for samples.
**** Repository and Symlink Variables
Board or shield definitions stored in an external repository are cloned and symlinked at build time according to the following variables. All are required.
***** outboard_repository
The repository containing the board or shield definition. For GitHub repositories, the ~https://github.com/~ prefix can be omitted.
***** outboard_ref
The name of the branch containing the board or shield definition.
***** outboard_from
The path to the directory containing the board or shield definition.
***** outboard_to
The path to the directory below ~config/~ where the board or shield definition should be located.
**** outboard_branches
Specify if the board or shield requires or is defined in one or more ZMK forks. Use is the same as for the workflow [[#branches][branches]] option.
If the board or shield definition is contained in a specified branch, [[#Repository-and-Symlink-Variables][repository and symlink variables]] are not required.
If branches are also specified via the workflow ~branches~ option or in other outboards, all branches will be used.
**** outboard_modules
Specify if the board or shield requires or is defined in one or more external modules. Use is the same as for the workflow [[#modules][modules]] option.
If the board or shield definition is contained in a specified module, [[#Repository-and-Symlink-Variables][repository and symlink variables]] are not required.
If modules are also specified via the workflow ~modules~ option or in other outboards, all modules will be used.
*** Notes