aboutsummaryrefslogtreecommitdiff
path: root/docs/ja/reference_configurator_support.md
diff options
context:
space:
mode:
authorAkshay <[email protected]>2022-04-10 12:13:40 +0100
committerAkshay <[email protected]>2022-04-10 12:13:40 +0100
commitdc90387ce7d8ba7b607d9c48540bf6d8b560f14d (patch)
tree4ccb8fa5886b66fa9d480edef74236c27f035e16 /docs/ja/reference_configurator_support.md
Diffstat (limited to 'docs/ja/reference_configurator_support.md')
-rw-r--r--docs/ja/reference_configurator_support.md200
1 files changed, 200 insertions, 0 deletions
diff --git a/docs/ja/reference_configurator_support.md b/docs/ja/reference_configurator_support.md
new file mode 100644
index 000000000..83d6d648d
--- /dev/null
+++ b/docs/ja/reference_configurator_support.md
@@ -0,0 +1,200 @@
1# QMK Configurator でのキーボードのサポート
2
3<!---
4 original document: 0.13.15:docs/reference_configurator_support.md
5 git diff 0.13.15 HEAD -- docs/reference_configurator_support.md | cat
6-->
7
8このページは [QMK Configurator](https://config.qmk.fm/) でキーボードを適切にサポートする方法について説明します。
9
10
11## Configurator がキーボードを理解する方法
12
13Configurator がキーボードをどのように理解するかを理解するには、最初にレイアウトマクロを理解する必要があります。この演習では、17キーのテンキー PCB を想定します。これを `numpad` と呼びます。
14
15```
16|---------------|
17|NLk| / | * | - |
18|---+---+---+---|
19|7 |8 |9 | + |
20|---+---+---| |
21|4 |5 |6 | |
22|---+---+---+---|
23|1 |2 |3 |Ent|
24|-------+---| |
25|0 | . | |
26|---------------|
27```
28
29?> レイアウトマクロの詳細については、[QMK の理解: マトリックススキャン](ja/understanding_qmk.md?id=matrix-scanning) と [QMK の理解: マトリックスから物理レイアウトへのマップ](ja/understanding_qmk.md?id=matrix-to-physical-layout-map) を見てください。
30
31Configurator の API はキーボードの `.h` ファイルを `qmk_firmware/keyboards/<keyboard>/<keyboard>.h` から読み取ります。numpad の場合、このファイルは `qmk_firmware/keyboards/numpad/numpad.h` です:
32
33```c
34#pragma once
35
36#define LAYOUT( \
37 k00, k01, k02, k03, \
38 k10, k11, k12, k13, \
39 k20, k21, k22, \
40 k30, k31, k32, k33, \
41 k40, k42 \
42 ) { \
43 { k00, k01, k02, k03 }, \
44 { k10, k11, k12, k13 }, \
45 { k20, k21, k22, KC_NO }, \
46 { k30, k31, k32, k33 }, \
47 { k40, KC_NO, k42, KC_NO } \
48}
49```
50
51QMK は `KC_NO` を使って、スイッチマトリックス内のスイッチがない場所を指定します。デバッグが必要な場合に、このセクションを読みやすくするために、`XXX`、`___`、`____` を略記として使うこともあります。通常は `.h` ファイルの先頭近くで定義されます:
52
53```c
54#pragma once
55
56#define XXX KC_NO
57
58#define LAYOUT( \
59 k00, k01, k02, k03, \
60 k10, k11, k12, k13, \
61 k20, k21, k22, \
62 k30, k31, k32, k33, \
63 k40, k42 \
64 ) { \
65 { k00, k01, k02, k03 }, \
66 { k10, k11, k12, k13 }, \
67 { k20, k21, k22, XXX }, \
68 { k30, k31, k32, k33 }, \
69 { k40, XXX, k42, XXX } \
70}
71```
72
73!> この使用方法はキーマップマクロと異なります。キーマップマクロはほとんど常に`KC_NO`については`XXXXXXX` (7つの大文字の X) を、`KC_TRNS` については `_______` (7つのアンダースコア)を使います。
74
75!> ユーザの混乱を防ぐために、`KC_NO` を使うことをお勧めします。
76
77レイアウトマクロは、キーボードに17個のキーがあり、4列それぞれが5行に配置されていることを Configurator に伝えます。スイッチの位置は、0から始まる `k<row><column>` という名前が付けられています。キーマップからキーコードを受け取る上部セクションと、マトリックス内の各キーの位置を指定する下部セクションとが一致する限り、名前自体は実際には問題ではありません。
78
79物理的なキーボードに似た形でキーボードを表示するには、それぞれのキーの物理的な位置とサイズをスイッチマトリックスに結びつけることを Configurator に伝える JSON ファイルを作成する必要があります。
80
81## JSON ファイルのビルド
82
83JSON ファイルをビルドする最も簡単な方法は、[Keyboard Layout Editor](https://www.keyboard-layout-editor.com/) ("KLE") でレイアウトを作成することです。この Raw Data を QMK tool に入れて、Configurator が読み出して使用する JSON ファイルに変換します。KLE は numpad レイアウトをデフォルトで開くため、Getting Started の説明を削除し、残りを使います。
84
85レイアウトが望み通りのものになったら、KLE の Raw Data タブに移動し、内容をコピーします:
86
87```
88["Num Lock","/","*","-"],
89["7\nHome","8\n↑","9\nPgUp",{h:2},"+"],
90["4\n←","5","6\n→"],
91["1\nEnd","2\n↓","3\nPgDn",{h:2},"Enter"],
92[{w:2},"0\nIns",".\nDel"]
93```
94
95このデータを JSON に変換するには、[QMK KLE-JSON Converter](https://qmk.fm/converter/) に移動し、Raw Data を Input フィールド に貼り付け、Convert ボタンをクリックします。しばらくすると、JSON データが Output フィールドに表示されます。内容を新しいテキストドキュメントにコピーし、ドキュメントに `info.json` という名前を付け、`numpad.h` を含む同じフォルダに保存します。
96
97`keyboard_name` オブジェクトを使ってキーボードの名前を設定します。説明のために、各キーのオブジェクトを各行に配置します。これはファイルを人間が読みやすいものにするためのもので、Configurator の機能には影響しません。
98
99```json
100{
101 "keyboard_name": "Numpad",
102 "url": "",
103 "maintainer": "qmk",
104 "tags": {
105 "form_factor": "numpad"
106 },
107 "layouts": {
108 "LAYOUT": {
109 "layout": [
110 {"label":"Num Lock", "x":0, "y":0},
111 {"label":"/", "x":1, "y":0},
112 {"label":"*", "x":2, "y":0},
113 {"label":"-", "x":3, "y":0},
114 {"label":"7", "x":0, "y":1},
115 {"label":"8", "x":1, "y":1},
116 {"label":"9", "x":2, "y":1},
117 {"label":"+", "x":3, "y":1, "h":2},
118 {"label":"4", "x":0, "y":2},
119 {"label":"5", "x":1, "y":2},
120 {"label":"6", "x":2, "y":2},
121 {"label":"1", "x":0, "y":3},
122 {"label":"2", "x":1, "y":3},
123 {"label":"3", "x":2, "y":3},
124 {"label":"Enter", "x":3, "y":3, "h":2},
125 {"label":"0", "x":0, "y":4, "w":2},
126 {"label":".", "x":2, "y":4}
127 ]
128 }
129 }
130}
131```
132
133`layouts` オブジェクトにはキーボードの物理レイアウトを表すデータが含まれます。このオブジェクトには `LAYOUT` という名前のオブジェクトがあり、このオブジェクト名は `numpad.h` のレイアウトマクロの名前と一致する必要があります。`LAYOUT` オブジェクト自体には `layout` という名前のオブジェクトがあります。このオブジェクトにはキーボードの物理キーごとに 1つの JSON オブジェクトが以下の形式で含まれています:
134
135```
136 キーの名前。Configurator では表示されません。
137 |
138 | キーボードの左端からのキー単位での
139 | | キーの X 軸の位置。
140 | |
141 | | キーボードの上端(奥側)からのキー単位での
142 | | | キーの Y 軸位置。
143 ↓ ↓ ↓
144{"label":"Num Lock", "x":0, "y":0},
145```
146
147一部のオブジェクトには、それぞれキーの幅と高さを表す `"w"` 属性キーと `"h"` 属性キーがあります。
148
149?> `info.json` ファイルの詳細については、[`info.json` 形式](ja/reference_info_json.md) を参照してください。
150
151
152## Configurator がキーをプログラムする方法
153
154Configurator の API は、指定されたレイアウトマクロと JSON ファイルを使って、特定のキーに関連付けられた各ビジュアルオブジェクトを順番に持つキーボードのビジュアル表現を作成します:
155
156| レイアウトマクロのキー | 使用される JSON オブジェクト |
157:---: | :----
158| k00 | {"label":"Num Lock", "x":0, "y":0} |
159| k01 | {"label":"/", "x":1, "y":0} |
160| k02 | {"label":"*", "x":2, "y":0} |
161| k03 | {"label":"-", "x":3, "y":0} |
162| k10 | {"label":"7", "x":0, "y":1} |
163| k11 | {"label":"8", "x":1, "y":1} |
164| k12 | {"label":"9", "x":2, "y":1} |
165| k13 | {"label":"+", "x":3, "y":1, "h":2} |
166| k20 | {"label":"4", "x":0, "y":2} |
167| k21 | {"label":"5", "x":1, "y":2} |
168| k22 | {"label":"6", "x":2, "y":2} |
169| k30 | {"label":"1", "x":0, "y":3} |
170| k31 | {"label":"2", "x":1, "y":3} |
171| k32 | {"label":"3", "x":2, "y":3} |
172| k33 | {"label":"Enter", "x":3, "y":3, "h":2} |
173| k40 | {"label":"0", "x":0, "y":4, "w":2} |
174| k42 | {"label":".", "x":2, "y":4} |
175
176ユーザが Configurator で左上のキーを選択し、Num Lock を割り当てると、Configurator は最初のキーとして `KC_NLCK` を持つキーマップを作成し、同様にキーマップが作成されます。`label` キーは使われません; それらは `info.json` ファイルをデバッグする時に特定のキーを識別するためのユーザの参照のためだけのものです。
177
178
179## 問題と危険
180
181現在のところ、Configurator はキーの回転または ISO Enter などの長方形ではないキーをサポートしません。さらに、"行"から垂直方向にずれているキー、&mdash; 顕著な例として [TKC1800](https://github.com/qmk/qmk_firmware/tree/4ac48a61a66206beaf2fdd5f2939d8bbedd0004c/keyboards/tkc1800/) のような1800レイアウト上の矢印キー &mdash; は、 `info.json` ファイルの提供者によって調整されていない場合は、KLE-to-JSON コンバータを混乱させます。
182
183### 回避策
184
185#### 長方形ではないキー
186
187ISO Enter キーについては、QMK custom は幅 1.25u、高さ 2u の長方形のキーとして表示し、右端が英数字キーブロックの右端に揃うように配置されます。
188
189![](https://i.imgur.com/JKngtTw.png)
190*QMK Configurator によって描画される標準 ISO レイアウトの60%キーボード。*
191
192#### 垂直方向にずれたキー
193
194垂直方向にずれたキーについては、ずれていないかのように KLE で配置し、変換された JSON ファイルで必要に応じて Y 値を編集します。
195
196![](https://i.imgur.com/fmDvDzR.png)
197*矢印キーに適用される垂直方向のずれのない、Keyboard Layout Editor で描画された1800レイアウトのキーボード。*
198
199![](https://i.imgur.com/8beYMBR.png)
200*キーボードの JSON ファイルで矢印キーを垂直方向にずらすために必要な変更を示す、Unix の diff ファイル。*