基于錯(cuò)誤驅(qū)動(dòng)的翻譯模板自動(dòng)獲取 QMK鍵盤制作官方文檔 翻譯 第三部分 配置
日期:2023-03-11 12:39:36 / 人氣: 641 / 發(fā)布者:成都翻譯公司
本頁(yè)面描述在QMK配置器中構(gòu)建固件的步驟。json文件是用QMK配置器生成的,那您可能是遇到了一個(gè)bug。常規(guī)鍵映射模板支持所有不需要支持C語言的QMK鍵值代碼。鍵盤維護(hù)人員可以提供他們自己的自定義模板來啟用更多的功能。要構(gòu)建JSON文件,*簡(jiǎn)單的方法是在鍵盤布局編輯器(“KLE”)中構(gòu)建布局,我們將從中將原始數(shù)據(jù)輸入QMK工具,該工具將該數(shù)據(jù)轉(zhuǎn)換為可讓配置器讀取和使用的JSON。這真是一種傻瓜式的教學(xué)。文筆很詳細(xì),就個(gè)人而言。
翻譯/排版/制作:AIALRA
原始來源:docs.qmk.fm
*未經(jīng)作者許可請(qǐng)勿商業(yè)化
配置
概述
QMK 配置器
QMK 配置概覽:
QMK Configurator()是一個(gè)在線用戶圖形界面,可以生成QMK固件的十六進(jìn)制文件。
QMK Configurator 與 Chrome 或 Firefox 瀏覽器的兼容性*好。
觀看此視頻教程 ()。很多人發(fā)現(xiàn)這個(gè)視頻的內(nèi)容足以讓他們開始編寫自己的鍵盤。
*注意:來自其他工具(例如 KLE 鍵盤布局編輯器)的文件會(huì)使鍵盤固件與 QMK 配置器不兼容。不要嘗試加載或?qū)胨鼈?。QMK Configurator 是一個(gè)完全不同的工具。
請(qǐng)一步一步按照本教程進(jìn)行操作:#/configurator_step_by_step
QMK 配置器:分步教程
本頁(yè)面介紹了在 QMK Configurator 中構(gòu)建固件的步驟。
·第一步:選擇鍵盤
單擊下拉框并選擇要為其創(chuàng)建鍵映射的鍵盤。
*如果您的鍵盤有多個(gè)版本,請(qǐng)確保選擇正確的一個(gè)。
我重復(fù)一遍,因?yàn)檫@很重要:
*確保您選擇正確的版本!
如果你買的鍵盤的促銷有說明是QMK驅(qū)動(dòng)的,但是版本不在列表中,很可能是開發(fā)者還沒拿到,或者我們還沒有機(jī)會(huì)合并。如果沒有活動(dòng)的 Pull Request 彈出窗口來申訴該請(qǐng)求,請(qǐng)?jiān)?qmk_firmware() 上提交此問題以請(qǐng)求對(duì)該型號(hào)鍵盤的支持。一般來說,鍵盤廠商在自己的GitHub賬號(hào)中也有QMK供電的鍵盤,請(qǐng)仔細(xì)查看。
· 第 2 步:選擇您的鍵盤布局
選擇*能代表您要?jiǎng)?chuàng)建的鍵映射的布局。某些鍵盤沒有足夠的布局或尚未定義正確的布局。將來,他們將得到支持。
有時(shí),沒有一種布局可以支持您想要的配置。在這種情況下,選擇 LAYOUT_all。
· 第 3 步:命名您的鍵盤映射
隨意調(diào)用此鍵盤映射。
如果您在編譯過程中遇到問題,您可能需要更改此名稱,因?yàn)樗拿Q可能已經(jīng)存在于 QMK 固件 repo(報(bào)告)中。
第 4 步:定義鍵映射
可以通過以下三種方法之一進(jìn)行鍵碼輸入:
1、拖放
2、點(diǎn)擊布局上的空白處,然后點(diǎn)擊你想要的鍵碼
3、點(diǎn)擊布局上的空白處,然后按下鍵盤上的物理鍵
您可以將鼠標(biāo)指針懸停在某個(gè)鍵上,簡(jiǎn)要介紹將告訴您該鍵代碼的作用。詳細(xì)說明請(qǐng)參考:
基本鍵碼參考:#/keycodes_basic
高級(jí)鍵碼參考:#/feature_advanced_keycodes
*如果您選擇的布局與您的物理按鍵不匹配,請(qǐng)將未使用的按鍵留空。如果您不確定使用哪個(gè)鍵,例如,您有一個(gè)退格鍵,但 LAYOUT_all 中有兩個(gè)鍵,那么在兩個(gè)位置放置相同的退格鍵代碼。
第 5 步:保存鍵映射以備將來更改
當(dāng)您對(duì)鍵盤映射感到滿意或想稍后處理它時(shí),請(qǐng)按導(dǎo)出鍵盤映射按鈕。它會(huì)將您的鍵映射保存到您的計(jì)算機(jī)。然后,您可以在將來通過按“導(dǎo)入鍵盤映射”按鈕加載此 .json 文件。
*注意:這與任何其他工具使用的 .json 文件類型不同。如果你嘗試在這些工具中使用它基于錯(cuò)誤驅(qū)動(dòng)的翻譯模板自動(dòng)獲取,或者在這些工具中使用 .json 和 QMK 配置器,你會(huì)遇到問題。
第六步:編譯固件文件
按綠色編譯按鈕。
編譯完成后,您將可以按下綠色的下載固件按鈕。
下一步:刷新您的鍵盤固件
請(qǐng)參考如何刷固件:#/newbs_flashing
配置故障排除
我的 .json 文件不起作用
如果 .json 文件是使用 QMK 配置器生成的,那么您可能遇到了錯(cuò)誤。qmk_configurator() 中提到了此錯(cuò)誤的解決方案。
如果它不是錯(cuò)誤,您可以查看是否錯(cuò)過了頂部的粗體提示:不要使用其他 .json 文件
我的布局中有多余的空間嗎?我該怎么辦?
如果您指的是帶有三個(gè)空格鍵的位置,*佳做法是用空格條形碼填充它們。退格鍵和 Shift 鍵也可以做同樣的事情。
關(guān)鍵代碼是什么?
請(qǐng)參閱:
基本鍵碼參考:#/keycodes_basic
高級(jí)鍵碼參考:#/feature_advanced_keycodes
編譯無法進(jìn)行
請(qǐng)仔細(xì)檢查密鑰圖的其他層,以確保沒有亂序的密鑰。
問題和缺陷
我們始終接受所有客戶請(qǐng)求和錯(cuò)誤報(bào)告。請(qǐng)將它們提交到 qmk_configurator()
QMK API(Application Programming Interface,應(yīng)用程序編程接口)
如果你不明白這個(gè),你可以跳過它
概述
QMK API
QMK API 提供了異步 API。Web 和 GUI 工具可以使用此 API 為 QMK 支持的任何鍵盤編譯任何鍵映射。常規(guī)鍵映射模板支持所有不需要支持C語言的QMK鍵值代碼。鍵盤維護(hù)者可以提供自己的自定義模板來啟用更多功能。
應(yīng)用程序開發(fā)人員
如果你是一個(gè)應(yīng)用開發(fā)者,打算在你的應(yīng)用中使用這個(gè) API,請(qǐng)參考這篇文章:#/api_docs。
鍵盤維護(hù)員
如果你想在 QMK 編譯器 API 中增強(qiáng)你的鍵盤支持,請(qǐng)參考這篇文章:#/reference_configurator_support。
后端開發(fā)人員
如果您對(duì) API 本身感興趣,您應(yīng)該從設(shè)置開發(fā)環(huán)境開始。請(qǐng)參考以下兩篇文章。
設(shè)置開發(fā)環(huán)境:#/api_development_environment
HackingonAPI:#/api_development_overview
API基本信息
QMK API
本頁(yè)面介紹如何使用 QMK API。如果您是應(yīng)用程序開發(fā)人員,則可以使用此 API 為任何 QMK 鍵盤編譯固件。
概述
此服務(wù)是用于編譯自定義鍵映射的異步 API??梢园l(fā)布一些JSON(JavaScript Object Notation,一種基于JavaScript語言的輕量級(jí)數(shù)據(jù)交換格式)到API中,定期查看狀態(tài)。固件編譯完成后,可以下載固件和源代碼(如果需要)
JSON 負(fù)載(有效負(fù)載)的示例:
{
“鍵盤”:“線索板/66/rev2”,
"keymap": "my_awesome_keymap",
"layout": "LAYOUT_all",
“層”:[
["KC_GRV"、"KC_1"、"KC_2"、"KC_3"、"KC_4"、"KC_5"、"KC_6"、"KC_7"、"KC_8"、"KC_9"、"KC_0"、"KC_MINS"、" KC_EQL"、"KC_GRV"、"KC_BSPC"、"KC_PGUP"、"KC_TAB"、"KC_Q"、"KC_W"、"KC_E"、"KC_R"、"KC_T"、"KC_Y"、"KC_U"、"KC_I" ,"KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G"," KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z"、"KC_X"、"KC_C"、"KC_V"、"KC_B"、"KC_N"、"KC_M"、"KC_COMM"、"KC_DOT"、"KC_SLSH"、"KC_RO"、"KC_RSFT"、"KC_UP" ,"KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT" ,"KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL"," MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],KC_M”、“KC_COMM”、“KC_DOT”、“KC_SLSH”、“KC_RO”、“KC_RSFT”、“KC_UP”、“KC_LCTL”、“KC_LGUI”、“KC_LALT”、“KC_MHEN”、“KC_SPC”、“KC_SPC” ,"KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],KC_M”、“KC_COMM”、“KC_DOT”、“KC_SLSH”、“KC_RO”、“KC_RSFT”、“KC_UP”、“KC_LCTL”、“KC_LGUI”、“KC_LALT”、“KC_MHEN”、“KC_SPC”、“KC_SPC” ,"KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],,"KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL ","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN" ,"KC_RIGHT"],,"KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL ","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],"KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN" ,"KC_RIGHT"],"KC_DOWN","KC_RIGHT"],"KC_DOWN","KC_RIGHT"],
[“KC_ESC”、“KC_F1”、“KC_F2”、“KC_F3”、“KC_F4”、“KC_F5”、“KC_F6”、“KC_F7”、“KC_F8”、“KC_F9”、“KC_F10”、“KC_F11” KC_F12","KC_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","___","KC_TRNS","KC_P "KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNSTR","KK_C_NS", KC_TRNS”、“KC_TRNS”、“KC_TRNS”、“KC_PGUP”、“KC_TRNS”、“KC_TRNS”、“KC_TRNS”、“KC_TRNS”、“KC_TRNS”、“KC_TRNS”、“KC_TRNS”、“KC_TRNS”、“KC_TRNS” ,"MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS" ,"KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNSTR","KK_C_NS",","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS" "KC_TRNS","KC_TRNSTR","KK_C_TRNS",","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS", ","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNSTR","KK_C_NS", KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS" ,"KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS", "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNSTR","KC_TRNS",","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"," KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNSTR","KK_C_NS",","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS" ,"KC_TRNS","KC_TRNS"]," ,"KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]," ,"KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
]
}
如您所見,有效載荷描述了創(chuàng)建和生成鍵盤固件所需信息的所有方面。每一級(jí)布局都是一個(gè)與鍵盤布局宏長(zhǎng)度相同的QMK鍵碼列表。如果鍵盤支持多個(gè)布局宏,您可以指定要使用的宏。
編譯項(xiàng)目
要將鍵映射編譯為固件,只需將 JSON 發(fā)布到 /v1/compile 端點(diǎn)。在下面的示例中,我們將 JSON 負(fù)載放入名為 json_data 的文件中:
$ curl -H "Content-Type: application/json" -X POST -d "$(
{
“入隊(duì)”:真的,
"job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6"
}
檢查狀態(tài)
提交您的鍵盤映射后,您可以使用簡(jiǎn)單的 HTTP GET 調(diào)用來檢查狀態(tài)是否正確:
例如:
$卷曲
{
"created_at": "2017 年 8 月 19 日星期六 21:39:12 GMT",
"enqueued_at": "2017 年 8 月 19 日星期六 21:39:12 GMT",
"id": "f5f9b992-73b4-479b-8236-df1deb37c163",
“狀態(tài)”:“正在運(yùn)行”,
“結(jié)果”:空
}
這向我們表明項(xiàng)目文件已通過隊(duì)列并正在運(yùn)行。在這種情況下有 5 種可能的狀態(tài):
·Failure:部分編譯服務(wù)損壞。
·Complete:編譯完成,需要查看結(jié)果才能看到結(jié)果。
· Queue:鍵映射正在等待編譯服務(wù)器可用。
· 運(yùn)行:編某在進(jìn)行中,應(yīng)該很快就會(huì)完成。
·未知:發(fā)生了嚴(yán)重錯(cuò)誤,您應(yīng)該嘗試提交此錯(cuò)誤。
檢查完成結(jié)果
編譯作業(yè)完成后,需要檢查“result”鍵。這個(gè)鍵的值是一個(gè)包含幾個(gè)鍵信息的散列:
Firmware_binary_url:可以刷固件的URL列表(URL Uniform Resoure Locator:Uniform Resoure Locator,url為批量)
compware_keymap_url:keymap.c 的 URL 列表
firmware_source_url:完整固件源代碼的 URL 列表
output:: 本次編譯作業(yè)的stdout和stderr,這里可以查看發(fā)生的錯(cuò)誤
鍵盤支持
在 QMK 配置器中支持您的鍵盤
本頁(yè)面介紹如何正確啟用 QMK 配置器支持您的鍵盤。
配置器如何與鍵盤兼容
要了解配置器如何與鍵盤兼容,您必須首先了解布局宏。下面是一個(gè)示例,以幫助您更好地理解。在這個(gè)例子中,我們將想象一個(gè) 17 鍵的 numpad(數(shù)字鍵)PCB,我們將其稱為 numpad。
|--------------------|
|NLk| / | * |-|
|-----+---+---+----|
| 7|8 |9| + |
|-----+---+---+----|
|4 | 5 | 6| |
|-----+---+---+----|
|1 |2 |3 |Ent|
|-----------+---| |
|0 |。| |
|---------------------|
有關(guān)宏的更多信息,請(qǐng)參閱 QMK:矩陣掃描 (#/understanding_qmk?id=matrix-scanning) 和
QMK:矩陣到物理布局映射(#/understanding_qmk?id=matrix-to-physical-layout-map)。
配置器的 API 從 qmk_firmware/keyboards//.h 中讀取鍵盤 .h 文件。對(duì)于我們的小鍵盤,這個(gè)文件就是qmk_firmware/keyboard/numpad/numpad.h,內(nèi)容如下:
#pragma once
#定義布局(
k00, k01, k02, k03,
k10, k11, k12, k13,
k20, k21, k22,
k30, k31, k32, k33,
k40, k42
) {
{k00, k01, k02, k03 },
{k10, k11, k12, k13 },
{k20, k21, k22, KC_NO },
{k30, k31, k32, k33 },
{k40, KC_NO, k42, KC_NO}
}
QMK 使用 KC_NO 指定鍵盤矩陣中未設(shè)置鍵的位置。有時(shí),XXX、___ 或 ____ 的形式可以使該值在需要調(diào)試時(shí)更具可讀性。這通常定義在 .h 文件的開頭:
例如:
#pragma once
#define XXX KC_NO
#定義布局(
k00, k01, k02, k03,
k10, k11, k12, k13,
k20, k21, k22,
k30, k31, k32, k33,
k40, k42
) {
{k00, k01, k02, k03 },
{k10, k11, k12, k13 },
{k20, k21, k22, XXX },
{k30, k31, k32, k33 },
{k40, XXX, k42, XXX}
}
*此方法的使用方式通常與鍵映射宏不同,通常用XXXXXXX(7個(gè)大寫X)表示KC_NO,用_________(七個(gè)下劃線)表示KC_TRNS。
*為了防止用戶混淆,*好使用KC_NO。
在這個(gè)例子中,布局宏告訴配置器我們的鍵盤有 17 個(gè)鍵,排列成 5 行 4 列。我們的key位置被命名為k并且從0開始計(jì)數(shù)。名字本身其實(shí)并不重要,只要頂部(從key map中接收key code)匹配底部(它指定每個(gè)key在矩陣中的位置) )。
為了以類似于物理鍵盤的方式顯示鍵盤,我們需要構(gòu)建一個(gè) JSON 文件,該文件告訴配置器如何將鍵的物理位置和大小綁定到鍵矩陣。
構(gòu)建 JSON 文件
要構(gòu)建JSON文件,*簡(jiǎn)單的方法是在鍵盤布局編輯器(“KLE”)中構(gòu)建布局,從中我們將原始數(shù)據(jù)輸入到QMK工具中,該工具將數(shù)據(jù)轉(zhuǎn)換為配置器以讀取和使用JSON . 因?yàn)镵LE打開時(shí)會(huì)顯示默認(rèn)的小鍵盤布局,所以我們只需要?jiǎng)h除默認(rèn)的布局,剩下的就可以使用了。
一旦布局符合您的要求,請(qǐng)移至 KLE 的 Raw Data 選項(xiàng)卡并復(fù)制內(nèi)容如下(以上面的小墊為例):
[“數(shù)字鍵盤(的第一個(gè)鍵”,”/”,”*”,”-”],
["7 Home","8 ↑","9 PgUp",{h:2},"+"],
["4 ←","5","6 →"],
["1 End","2 ↓","3 PgDn",{h:2},"Enter"],
[{w:2},"0 Ins",". Del"]
要將這些數(shù)據(jù)轉(zhuǎn)換為我們的 JSON,請(qǐng)轉(zhuǎn)到 QMKKLE-JSON() 轉(zhuǎn)換器基于錯(cuò)誤驅(qū)動(dòng)的翻譯模板自動(dòng)獲取,將原始數(shù)據(jù)粘貼到輸入?yún)^(qū)域,然后單擊轉(zhuǎn)換按鈕。稍后,我們的 JSON 數(shù)據(jù)將出現(xiàn)在輸出區(qū)域中。將內(nèi)容復(fù)制到一個(gè)新的文本文檔中,將文檔命名為info.json,*后保存在numpad.h所在的文件夾中。
您可以使用 keyboard_name 來設(shè)置鍵盤的名稱。出于說明目的,我們將把每個(gè)關(guān)鍵標(biāo)準(zhǔn)放在自己的行上。這只是為了使文件更易于閱讀,不會(huì)影響配置器的功能。
例如:
{
"keyboard_name": "數(shù)字鍵盤",
"網(wǎng)址": "",
"維護(hù)者": "qmk",
“標(biāo)簽”:{
“form_factor”:“小鍵盤”
},
“寬度”:4,
“高度”:5,
“布局”:{
“布局”: {
“布局”: [
{"label":"Num Lock", "x":0, "y":0},
{“標(biāo)簽”:“/”,“x”:1,“y”:0},
{“標(biāo)簽”:“*”,“x”:2,“y”:0},
{“標(biāo)簽”:“-”,“x”:3,“y”:0},
{“標(biāo)簽”:“7”,“x”:0,“y”:1},
{“標(biāo)簽”:“8”,“x”:1,“y”:1},
{“標(biāo)簽”:“9”,“x”:2,“y”:1},
{“標(biāo)簽”:“+”,“x”:3,“y”:1,“h”:2},
{“標(biāo)簽”:“4”,“x”:0,“y”:2},
{“標(biāo)簽”:“5”,“x”:1,“y”:2},
{“標(biāo)簽”:“6”,“x”:2,“y”:2},
{“標(biāo)簽”:“1”,“x”:0,“y”:3},
{“標(biāo)簽”:“2”,“x”:1,“y”:3},
{“標(biāo)簽”:“3”,“x”:2,“y”:3},
{“標(biāo)簽”:“輸入”,“x”:3,“y”:3,“h”:2},
{“標(biāo)簽”:“0”,“x”:0,“y”:4,“w”:2},
{“標(biāo)簽”:“?!?,“x”:2,“y”:4}
]
}
}
}
布局(層)包含表示鍵盤物理布局的數(shù)據(jù)。其中一部分是 LAYOUT,它需要與我們?cè)?numpad.h 中的布局宏的名稱相匹配。LAYOUT 本身有一個(gè)名為 layout 的部分,它使鍵盤上的每個(gè)物理鍵都包含一個(gè) JSON 對(duì)象,格式如下(示例同上):
密鑰的名稱。不顯示在配置器中。
|
| 關(guān)鍵點(diǎn)的 X 軸位置,以關(guān)鍵點(diǎn)為單位
| | 鍵盤的左邊緣。
| |
| | 鍵的 Y 軸位置,以鍵單位從
| | | 鍵盤的頂部(朝后)邊緣。
↓ ↓ ↓
{"label":"Num Lock", "x":0, "y":0},
一些對(duì)象還包含“w”和“h”鍵,分別代表鍵的寬度和高度。
有關(guān) json 文件的更多信息,請(qǐng)參閱下面的這篇文章。(#/Reference_info_json)
如何對(duì)配置器的鍵進(jìn)行編程
配置器的 API 使用布局宏和我們提供的 JSON 文件來創(chuàng)建可視鍵盤。這個(gè)鍵盤中的每個(gè)視覺對(duì)象都按順序綁定到一個(gè)特定的鍵,例如:
如圖所示
當(dāng)用戶在配置器中選擇左上鍵并為其分配Num Lock時(shí),配置器將構(gòu)建一個(gè)以KC_NLCK為第一個(gè)鍵的鍵映射文件,依此類推。事實(shí)上,鍵盤構(gòu)造并沒有使用標(biāo)簽鍵;它們僅在用戶調(diào)試信息或識(shí)別特定鍵時(shí)用作 info.json 文件。
問題和風(fēng)險(xiǎn)
目前,配置器不支持旋鈕鍵或非矩形鍵形狀,例如 ISO 配置中的 Enter。另外,偏離垂直線的鍵——比如TKC1800布局上的方向鍵就是一個(gè)典型的例子——如果這些信息的提供者不調(diào)整它們,會(huì)使KLE-to-JSON轉(zhuǎn)換器無法理解信息.json 文件。
*TCK1800 視頻參考和數(shù)據(jù)文件:
解決方案
非矩形鍵
對(duì)于ISO配置輸入key,QMK的自定義程序會(huì)將其顯示為一個(gè)寬1.25u、高2u的矩形key,其右邊緣與字母數(shù)字鍵塊的右邊緣對(duì)齊。
* 60% 的帶鍵盤的標(biāo)準(zhǔn) ISO 布局,由 QMK 配置器提供。
垂直偏移鍵
對(duì)于有垂直偏移的key,請(qǐng)?jiān)跊]有偏移時(shí)按原樣放在KLE中,然后根據(jù)需要編輯轉(zhuǎn)換后的JSON文件中的y值
*鍵盤布局編輯器中顯示的 1800 布局鍵盤沒有應(yīng)用于箭頭鍵的垂直偏移。
*一個(gè) Unix 差異文件,向我們展示了鍵盤 JSON 文件中箭頭鍵所需的垂直偏移更改。
- 上一條翻譯碩士復(fù)試聯(lián)系導(dǎo)師模板 22考研初試前要不要聯(lián)系導(dǎo)師?附6個(gè)考研復(fù)試聯(lián)系導(dǎo)師郵件模板!
- 下一條兼職翻譯求職簡(jiǎn)歷模板范文 英語翻譯個(gè)人簡(jiǎn)歷模板匯
相關(guān)閱讀Relate
熱門文章 Recent
- 高考文言文翻譯模板 高考文言文翻譯示范課2023-03-11
- 近畿大學(xué)學(xué)位證書翻譯模板 近畿大學(xué)計(jì)劃2022年4月開設(shè)“信息學(xué)部”,目標(biāo)培養(yǎng)尖端IT人才2023-03-11
- 美國(guó)州務(wù)卿認(rèn)證書翻譯模板 美國(guó)加州公司注冊(cè)證書公證認(rèn)證2023-03-11
- 大學(xué)生英文簡(jiǎn)歷模板翻譯 大學(xué)生英語翻譯個(gè)人簡(jiǎn)歷模板2023-03-11
- 英語求職信格式模板加翻譯 2020年9月英語六級(jí)作文范文:為求職信2023-03-11
- 加拿大簽證營(yíng)業(yè)執(zhí)照翻譯模板 你是網(wǎng)簽嗎?2023-03-11
- 澳洲簽證翻譯件模板 2016年澳大利亞出入境卡范本,澳洲入境卡填寫樣本2023-03-11
- 四級(jí)英語作文模板帶翻譯 大學(xué)英語四級(jí)翻譯模擬訓(xùn)練及答案2023-03-11
- 翻譯實(shí)踐模板 翻譯類個(gè)人簡(jiǎn)歷自我評(píng)價(jià)2023-03-11
- 戶口本和身份證中英文翻譯模板2023-03-11