78 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # `info.json`
 | |
| 
 | |
| <!---
 | |
|   original document: 0.10.33:docs/reference_info_json.md
 | |
|   git diff 0.10.33 HEAD -- docs/reference_info_json.md | cat
 | |
| -->
 | |
| 
 | |
| このファイルは [QMK API](https://github.com/qmk/qmk_api) によって使われます。このファイルは [QMK Configurator](https://config.qmk.fm/) がキーボードの画像を表示するために必要な情報を含んでいます。ここにメタデータを設定することもできます。
 | |
| 
 | |
| このメタデータを指定するために、`qmk_firmware/keyboards/<name>` の下の全てのレベルで `info.json` を作成することができます。これらのファイルは結合され、より具体的なファイルがそうではないファイルのキーを上書きします。つまり、メタデータ情報を複製する必要はありません。例えば、`qmk_firmware/keyboards/clueboard/info.json` は `manufacturer` および `maintainer` を指定し、`qmk_firmware/keyboards/clueboard/66/info.json` は Clueboard 66% についてのより具体的な情報を指定します。
 | |
| 
 | |
| ## `info.json` の形式
 | |
| 
 | |
| `info.json` ファイルは設定可能な以下のキーを持つ JSON 形式の辞書です。全てを設定する必要はなく、キーボードに適用するキーだけを設定します。
 | |
| 
 | |
| * `keyboard_name`
 | |
|    * キーボードを説明する自由形式のテキスト文字列。
 | |
|    * 例: `Clueboard 66%`
 | |
| * `url`
 | |
|    * キーボードの製品ページ、[QMK.fm/keyboards](https://qmk.fm/keyboards) のページ、あるいはキーボードに関する情報を説明する他のページの URL。
 | |
| * `maintainer`
 | |
|    * メンテナの GitHub のユーザ名、あるいはコミュニティが管理するキーボードの場合は `qmk`
 | |
| * `width`
 | |
|    * キー単位でのキーボードの幅
 | |
| * `height`
 | |
|    * キー単位でのキーボードの高さ
 | |
| * `layouts`
 | |
|    * 物理的なレイアウト表現。詳細は以下のセクションを見てください。
 | |
| 
 | |
| ### レイアウトの形式
 | |
| 
 | |
| `info.json` ファイル内の辞書の `layouts` 部分は、幾つかの入れ子になった辞書を含みます。外側のレイヤーは QMK レイアウトマクロで構成されます。例えば、`LAYOUT_ansi` あるいは `LAYOUT_iso`。各レイアウトマクロ内には、`width`、 `height`、`key_count` のキーがあります。これらは自明でなければなりません。
 | |
| 
 | |
| * `width`
 | |
|    * オプション: キー単位でのレイアウトの幅
 | |
| * `height`
 | |
|    * オプション: キー単位でのレイアウトの高さ
 | |
| * `key_count`
 | |
|    * オプション: このレイアウトのキーの数
 | |
| * `layout`
 | |
|    * 物理レイアウトを説明するキー辞書のリスト。詳細は次のセクションを見てください。
 | |
| 
 | |
| ### キー辞書形式
 | |
| 
 | |
| レイアウトの各キー辞書は、キーの物理プロパティを記述します。<https://keyboard-layout-editor.com> の Raw Code に精通している場合、多くの概念が同じであることが分かります。可能な限り同じキー名とレイアウトの選択を再利用しますが、keyboard-layout-editor とは異なって各キーはステートレスで、前のキーからプロパティを継承しません。
 | |
| 
 | |
| 全てのキーの位置と回転は、キーボードの左上と、各キーの左上を基準にして指定されます。
 | |
| 
 | |
| * `x`
 | |
|    * **必須**: 水平軸でのキーの絶対位置(キー単位)。
 | |
| * `y`
 | |
|    * **必須**: 垂直軸でのキーの絶対位置(キー単位)。
 | |
| * `w`
 | |
|    * キー単位でのキーの幅。`ks` が指定された場合は無視されます。デフォルト: `1`
 | |
| * `h`
 | |
|    * キー単位でのキーの高さ。`ks` が指定された場合は無視されます。デフォルト: `1`
 | |
| * `r`
 | |
|    * キーを回転させる時計回りの角度。
 | |
| * `rx`
 | |
|    * キーを回転させる点の水平軸における絶対位置。デフォルト: `x`
 | |
| * `ry`
 | |
|    * キーを回転させる点の垂直軸における絶対位置。デフォルト: `y`
 | |
| * `ks`
 | |
|    * キー形状: キー単位で頂点を列挙することでポリゴンを定義します。
 | |
|    * **重要**: これらはキーの左上からの相対位置で、絶対位置ではありません。
 | |
|    * ISO Enter の例: `[ [0,0], [1.5,0], [1.5,2], [0.25,2], [0.25,1], [0,1], [0,0] ]`
 | |
| * `label`
 | |
|    * マトリックス内のこの位置につける名前。
 | |
|    * これは通常 PCB 上でこの位置にシルクスクリーン印刷されるものと同じ名前でなければなりません。
 | |
| 
 | |
| ## メタデータはどのように公開されますか?
 | |
| 
 | |
| このメタデータは主に2つの方法で使われます:
 | |
| 
 | |
| * Web ベースの configurator が動的に UI を生成できるようにする。
 | |
| * 新しい `make keyboard:keymap:qmk` ターゲットをサポートする。これは、このメタデータをファームウェアにバンドルして QMK Toolbox をよりスマートにします。
 | |
| 
 | |
| Configurator の作成者は、JSON API の使用に関する詳細について、[QMK Compiler](https://docs.api.qmk.fm/using-the-api) ドキュメントを参照することができます。
 | 
