From f067f4230538ee1efbeaebf13c92106f973ffe93 Mon Sep 17 00:00:00 2001 From: souvlakeeb <109096368+souvlakeeb@users.noreply.github.com> Date: Mon, 6 Mar 2023 12:24:56 -0700 Subject: [PATCH] [Docs] Discuss layout macro (#19803) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Ryan --- docs/feature_split_keyboard.md | 10 ++++++++++ docs/porting_your_keyboard_to_qmk.md | 2 ++ 2 files changed, 12 insertions(+) diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index 25f7473bda8..c095c8712fb 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -79,6 +79,16 @@ If you're using a custom transport (communication method), then you will also ne SPLIT_TRANSPORT = custom ``` +### Layout Macro + +Configuring your layout in a split keyboard works slightly differently to a non-split keyboard. Take for example the following layout. The top left numbers refer to the matrix row and column, and the bottom right are the order of the keys in the layout: + +![Physical layout](https://i.imgur.com/QeY6kMQ.png) + +Since the matrix scanning procedure operates on entire rows, it first populates the left half's rows, then the right half's. Thus, the matrix as QMK views it has double the rows instead of double the columns: + +![Matrix](https://i.imgur.com/4wjJzBU.png) + ### Setting Handedness By default, the firmware does not know which side is which; it needs some help to determine that. There are several ways to do this, listed in order of precedence. diff --git a/docs/porting_your_keyboard_to_qmk.md b/docs/porting_your_keyboard_to_qmk.md index e6a3a72cda2..b0213a6d700 100644 --- a/docs/porting_your_keyboard_to_qmk.md +++ b/docs/porting_your_keyboard_to_qmk.md @@ -150,6 +150,8 @@ In the above example, * It must conform to the [layout guidelines](hardware_keyboard_guidelines.md#ltkeyboard_namehgt) * `"matrix": [0, 0]` defines the electrical position +?> See also: [Split Keyboard Layout Macro](https://docs.qmk.fm/#/feature_split_keyboard?id=layout-macro) and [Matrix to Physical Layout](https://docs.qmk.fm/#/understanding_qmk?id=matrix-to-physical-layout-map). + ## Additional Configuration There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config.md). The following sections cover the process for when an `info.json` option is unavailable.