Qmk键盘制作官方文档翻译第二部分常见问题解答

这真是愚蠢的教学。写得很详细。只是一个人

翻译/排版/制作:aialra

原始来源:docs.qmk.fm

*未经作者许可请勿商用

常见问题解答

主要问题

QMK是什么?


我不知道从哪里开始!

如果是这样,那么你应该从我们的Newbs指南开始。那里有很多很棒的信息,包括你需要准备的一切东西。

我如何建立并刷写键盘固件?

如果我有一个没有被人讨论过的问题呢?

这不是问题,请查阅我们GitHub中的开放问题,看看是否有人正在经历同样的事情(确保它不仅仅是相似的,而是相同的)。

如果你找不到任何相似的问题,那么请建立一个新的提问帖!

如果我发现了一个bug该怎么办?

请建立一个问题帖,如果你知道如何修复它,打开GitHub上的Pull(加入)请求并提供修复方案。

但是git和GitHub太吓人了!

不用担心,关于如何使用git和GitHub来简化开发,我们有一些很好的指导方针。

我有一个想要添加支持的键盘

太棒了!请为它打开一个Pull Request。我们将检查代码,如果合适无误,我们将会接纳它!

如果我想用QMK做品牌呢?

那太神奇了!我们很乐意帮助你!

如果你对此有任何疑问,就提出异议或进行辩论。

QMK和TMK之间有什么区别?

TMK最初是由Jun Wako设计和实现的。QMK最初是杰克·亨伯特为普朗克制造的基于TMK键盘的一个分支。一段时间后,杰克的分支与TMK有了很大的不同,2015年,杰克决定将他的分支改名为QMK。

从技术角度来看,QMK构建在TMK之上,添加了几个新功能。最值得注意的是,QMK扩展了可用键码的数量,并使用这些键码来实现一些高级特性,如S()LCTL(), 和 MO()。您可以在键码章节中看到这些键码的完整列表。

从项目和社区管理的角度来看,TMK自己维护所有官方支持的键盘,并提供一些社区支持,例如说有着独立存在的进行键盘维护的分支社区,或者可以为其他键盘提供设计的分支。在TMK中,默认情况下只有几个标准的键映射,因此用户通常不会彼此共享键映射。而QMK鼓励通过一个集中管理的存储库来共享键盘资料和键映射,并接受所有符合质量标准的Pull请求。这些主要是由社区维护的,但是QMK团队也在必要时提供帮助。

这两种方法各有优缺点,只要有必要,键盘所需的代码可以在TMK和QMK之间自由切换。

常见的构建编写问题

本页涵盖有关于构建QMK固件的问题。如果您还没有这样做,您应该阅读构建环境设置和制作固件的说明指南。

不能在Linux上编程?

一个在主控是ATMega32u4的情况下使用sudo的例子:

$ sudo dfu-programmer atmega32u4 erase –force

$ sudo dfu-programmer atmega32u4 flash your.hex

$ sudo dfu-programmer atmega32u4 reset

或者像这样:

$ sudo make <keyboard>:<keymap>:dfu

注意,使用sudo运行make通常不是一个好主意,并且如果需要运行的话,应该使用前一种方法。

Linux udev程序的使用规则

在Linux上,您需要适当的特权来访问MCU(Microcontroller Unit微控制单元)。您可以在刷新固件时使用sudo命令,也可以将这些文件放在/etc/ uddi /rules.d/中。一旦添加,运行效果如下:

sudo udevadm control –reload-rules

sudo udevadm trigger

/etc/udev/rules.d/50-atmel-dfu.rules:

# Atmel ATMega32U4

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”03eb”, ATTRS{idProduct}==”2ff4″, TAG+=”uaccess”, RUN{builtin}+=”uaccess”

# Atmel USBKEY AT90USB1287

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”03eb”, ATTRS{idProduct}==”2ffb”, TAG+=”uaccess”, RUN{builtin}+=”uaccess”

# Atmel ATMega32U2

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”03eb”, ATTRS{idProduct}==”2ff0″, TAG+=”uaccess”, RUN{builtin}+=”uaccess”

/etc/udev/rules.d/54-input-club-keyboard.rules:

# Input Club keyboard bootloader

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”1c11″, ATTRS{idProduct}==”b007″, TAG+=”uaccess”, RUN{builtin}+=”uaccess”

/etc/udev/rules.d/55-caterina.rules:

# ModemManager should ignore the following devices

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”2a03″, ATTRS{idProduct}==”0036″, TAG+=”uaccess”, RUN{builtin}+=”uaccess”, ENV{ID_MM_DEVICE_IGNORE}=”1″

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”2341″, ATTRS{idProduct}==”0036″, TAG+=”uaccess”, RUN{builtin}+=”uaccess”, ENV{ID_MM_DEVICE_IGNORE}=”1″

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”1b4f”, ATTRS{idProduct}==”9205″, TAG+=”uaccess”, RUN{builtin}+=”uaccess”, ENV{ID_MM_DEVICE_IGNORE}=”1″

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”1b4f”, ATTRS{idProduct}==”9203″, TAG+=”uaccess”, RUN{builtin}+=”uaccess”, ENV{ID_MM_DEVICE_IGNORE}=”1″

注意:旧的版本(在1.12之前)的ModemManager(调制解调管理器),过滤只在不严格模式下才能工作,使用以下命令可以更新设置:

printf ‘[Service]\nExecStart=\nExecStart=/usr/sbin/ModemManager –filter-policy=default’ | sudo tee /etc/systemd/system/ModemManager.service.d/policy.conf

sudo systemctl daemon-reload

sudo systemctl restart ModemManager

/etc/udev/rules.d/56-dfu-util.rules:

# stm32duino

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”1eaf”, ATTRS{idProduct}==”0003″, TAG+=”uaccess”, RUN{builtin}+=”uaccess”

# Generic stm32

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0483″, ATTRS{idProduct}==”df11″, TAG+=”uaccess”, RUN{builtin}+=”uaccess”

/etc/udev/rules.d/57-bootloadhid.rules:

# bootloadHID

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”16c0″, ATTRS{idProduct}==”05df”, TAG+=”uaccess”, RUN{builtin}+=”uaccess”

在Linux上的引导加载程序模式中没有检测到串行设备?

请确保您的内核支持您的设备。如果您的设备使用USB ACM,例如Pro Micro (Atmega32u4),请确保包含CONFIG_USB_ACM=y。其他设备可能需要USB_SERIAL和它的某一些子选项。

DFU引导装载程序检测到未知设备

当Windows上的键盘灯闪烁时遇到的问题通常是因为引导装载程序安装了错误的驱动程序,或者根本没有安装驱动程序而导致的。

USB VID(VendorID 生产商ID)和PID(ProductID 产品ID)

在编辑config.h时,你可以使用任何ID。使用任何未使用过的ID都不会有问题,除非与其他产品的ID发生了碰撞,但这种情况发生的概率非常低。

QMK中的大多数的开发板使用0xFEED作为供应商ID。您需要查看其他的键盘ID,以确保您选择了唯一的产品ID。

当然你也可以通过以下网址购买真正独特的PID或者UID,但是不建议个人用户采用此方法。

page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1

AVR单片机的BOOTLOADER_SIZE

*注意,Teensy2.0++引导加载程序的大小是2048字节。有些生成文件可能会有错误的注解。

如下:

# Boot Section Size in *bytes*

#   Teensy halfKay   512

#   Teensy++ halfKay 2048

#   Atmel DFU loader 4096       (TMK Alt Controller)

#   LUFA bootloader  4096

#   USBaspLoader     2048

OPT_DEFS += -DBOOTLOADER_SIZE=2048

在MacOS上出现的:内部编译器错误:中止陷阱:6(程序cc1)【avr-gcc: internal compiler error: Abort trap: 6 (program cc1)】

这是在brew更新时出现的问题,导致avr-gcc所依赖的符号链接被破坏。

解决方案是删除并重新安装所有受影响的模块。

如下:

brew rm avr-gcc avr-gcc@8 dfu-programmer dfu-util gcc-arm-none-eabi arm-gcc-bin@8 avrdude qmk

brew install qmk/qmk/qmk

brew link –force avr-gcc@8

brew link –force arm-gcc-bin@8

avr-gcc和LUFA

如果你更新你的avr-gcc,你看到错误涉及到LUFA框架,例如:

lib/lufa/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h:380:5: error: ‘const’ attribute on function returning ‘void’

现在,您需要在Homebrew中将avr-gcc回滚到8。

如下:

brew uninstall –force avr-gcc

brew install avr-gcc@8

brew link –force avr-gcc@8

我只是刷写了一下键盘,它就什么也做不了了/或者按键都不触发-这是ARM 的问题

基于EEPROM(Electrically Erasable Programmable read only memory 带电可擦可编程只读存储器)ARM的芯片环境下工作的原理,你先前保存的设置会变得无效。这个问题会影响默认的层,在部分情况下,可能会导致键盘无法使用。解决这问题的办法是重置EEPROM。

Planck的rev6复位EEPROM可用于强制EEPROM复位。在刷新这个图像之后,重新刷写一遍您的正常固件,不出意外您的键盘将会恢复正常。Preonic rev3也是用来复位EEPROM的


调试常见问题解答

这个页面详细介绍了人们对键盘故障调试时的遇见的各种常见问题。

调试控制台:

hid_listen无法识别设备

当你的设备的调试控制台没有准备好,你会看到这样的语句:

Waiting for device:………

一旦设备被插入,hid_listen就会找到它,你便会得到这条语句:

Waiting for new device:……………………. 

Listening:

如果你不能得到这个“listen:”消息,请尝试在生成文件(makefiles)中使用CONSOLE_ENABLE=yes去构建

在Linux这样的操作系统上,您可能需要权限来访问该设备。

·尝试以下sudo hid_listen

无法在控制台获得消息

检查:

·确保hid_listen能够找到你的设备,见上文。

·尝试使用’ print ‘函数而不是调试打印功能,详情请见common/ print.h。

·断开其他具有控制台功能的设备,详见问题# 97。


Linux或UNIX之类的系统需要超级用户特权?

您只需使用’ sudo ‘特权执行hid_listen即可:

$ sudo hid_listen

或者您可以为TMK设备添加一个udev规则,并在rules目录中放置一个文件。不同系统上的目录可能不同。

例如:

File: /etc/udev/rules.d/52-tmk-keyboard.rules(Ubuntu)

命令如下:

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”feed”, MODE:=”0666″


杂项

安全注意事项

你可能不想让你的键盘变砖,意思是不能够再给其刷写固件。下面是一些来说明哪些事情风险太大(或者可能不太危险),不推荐做的例子。

·如果您的键盘映射不包括复位键,那么,要进入DFU模式,您将需要按下PCB上的复位按钮,这需要拧开底部。

·使用tmk_core / common文件可能会导致键盘无法操作

·十六进制文件太大是一个很麻烦的问题。使用make dfu会擦除块,测试一下大小(oops, wrong order!),这个问题会让你无法刷写固件,只能让它在保持在dfu模式。

*为此,请注意,Planck上的最大的十六进制文件大小是7000h (28672 decimal 十进制数)

如下:

Linking: .build/planck_rev4_cbbrowne.elf                                                            [OK]

Creating load file for Flash: .build/planck_rev4_cbbrowne.hex                                       [OK]

Size after:

   text    data     bss     dec     hex filename

      0   22396       0   22396    577c planck_rev4_cbbrowne.hex

·上述文件的大小为22396/577ch,小于28672/7000h

·只要你有合适的十六进制替代品文件,你可以重试一次,重新加载那个替代品

·你在键盘的(Makefile)生成文件中指定的一些选项会消耗额外的内存;注意BOOTMAGIC_ENABLE、MOUSEKEY_ENABLE、EXTRAKEY_ENABLE、CONSOLE_ENABLE、API_SYSEX_ENABLE这几个

·DFU工具允许你向引导加载程序中写入(除非您添加了其他杂七杂八的选项选项),因此几乎可以说是没有风险。

·EEPROM大约有100000个写入周期。你不应该重复不断地刷写固件;这最终会让EEPROM损坏。


NKRO(N-Key Rollover 全键无冲)不起作用

首先,你必须在生成文件(makefiles)中使用NKRO_ENABLE这个构建选项编译固件。

当NKRO仍然不能工作时,尝试一下Magic N命令(默认情况下是LShift+RShift+N)。你可以使用这个命令来临时切换NKRO和6KRO(六键无冲)模式。在某些情况下,NKRO无法工作,您需要切换到6KRO模式,特别是你在BIOS中的时候。

如果你的固件是用BOOTMAGIC_ENABLE构建的,你需要通过BootMagic N命令(默认为Space+N)打开它的开关。此设置存储在EEPROM中,并在电源供电周期中保存。


TrackPoint(小红点 IBM/联想)需要复位电路(支持PS/2鼠标)

有时候小红点如果没有复位电路,就会由于硬件初始化不当而导致输出结果不一致。参见TPM754电路原理图。

不能读取矩阵超过16列的键码

当你的键盘阵列超过16列时使用[matrix.h]中的1UL<<16 instead of 1<<16 in read_cols()。

在C语言中,1意味着在AVR环境中的一个16位的int,所以你不能移动超过15列。当你表达1<<16时,你会意外地得到0。所以您必须使用1UL(无符号长整型1)的[unsigned long]类型来表示。

特殊的功能键不工作(系统,音频控制键)

您需要在rules.mk中定义EXTRAKEY_ENABLE以便于在QMK中使用它们:

EXTRAKEY_ENABLE = yes          # Audio control and System control

睡眠唤醒没有用

你需要对Windows检查中-允许此设备唤醒设备管理器和电源管理属性选项卡中-计算机设置中的选项进行修改。还要检查BIOS中的唤醒设置。

*注意,在睡眠期间按任何键都应该能够唤醒主机。

使用Arduino开发板?

注意Arduino 引脚的命名与实际芯片不同。例如Arduino引脚D0就不是PD0。请在自己用电路图之前检查电路。

Arduino Leonardo和micro都有ATMega32U4,可以用于TMK,不过Arduino bootloader有时可能会有问题。


使JTAG(Joint Test Action Group,联合测试工作组)保持开启

默认情况下,一旦键盘启动,JTAG调试接口就被禁用。JTAG-capable MCU与JTAGEN保险丝是一家工厂生产的,它接管了某些引脚的MCU,这块板子可能用于开关矩阵,led等。

如果您想让JTAG保持启用状态,只需在config.h中添加以下内容:

#define NO_JTAG_DISABLE

USB 3.0兼容性问题

有些人的USB 3.0接口会有问题,请试试USB 2.0接口。

Mac的兼容性

OS X 10.11和Hub

BIOS (UEFI)/恢复(睡眠和唤醒)/电源周期有问题

一些人反馈说,他们的键盘在BIOS和/或恢复(电源周期)后就停止工作了。

到目前为止,这个问题的的根源还不清楚,但一些构建选项似乎是相关的。在Makefile中尝试禁用这些选项,如CONSOLE_ENABLE, NKRO_ENABLE, SLEEP_LED_ENABLE和/或其他试试看。

按键映射常见问题解答


我可以使用哪些键码?


默认的键码是什么?

目前世界上有三种标准的键盘布局——ANSI、ISO和JIS。北美主要使用ANSI,欧洲和非洲主要使用ISO,日本使用JIS。未提及的地区通常使用ANSI或ISO。对应于这些布局的关键代码你可以通过查阅网络来得到。


如何为复杂的键码自定义名称?

有时,为了提高可读性,一些人会为一些关键代码定义自定义名称。人们经常使用#define来定义自定义名称。例如:

#define FN_CAPS LT(_FL, KC_CAPSLOCK)

#define ALT_TAB LALT(KC_TAB)

这将允许您在键映射中使用FN_CAPS和ALT_TAB,使其更具有可读性。


我的一些键位被调换了或者不能用了

QMK有两个功能,Bootmagic和Command,允许你在运行中改变键盘的行为。这包括但不限于,交换Ctrl/Caps,禁用Gui,交换Alt/Gui,交换退格/反斜杠,禁用所有键,以及其他行为修改。

快速解决方案是,尝试按住空格+退格键。这意味着当你插入你的键盘,系统将重置您的键盘上存储的设置,返回这些被修改的键位到正常键位。如果这不起作用,请看这里:


菜单键不工作

在大多数现代键盘上,位于KC_RGUI和KC_RCTL之间的键实际上叫做KC_APP。这是因为当这个键被发明出来的时候,在相关的标准中已经有一个名为MENU的键,所以MS选择称之为APP键。


截图键不工作

请使用键码(KC_PSCREEN或KC_PSCR)而不是KC_SYSREQ来打印屏幕。“Alt +打印屏幕”组合键被识别为一个“系统请求”。

具体细节详见:


电源键不工作

有些令人困惑的是,QMK中有两个“Power”键码:在键盘/小键盘HID中使用页面的KC_POWER和在消费者页面中的KC_SYSTEM_POWER(或KC_PWR)。

前者只在macOS上被识别,而后者KC_SLEP和KC_WAKE被所有三大操作系统支持,所以建议使用它们。在Windows下,这些键按下即会立即生效,但是在macOS上,它们必须被按住直到出现对话框。

一个小案例:

修改键(层切换)/层卡住了

修改键或层有时可能被卡住,除非层的切换被重新正确配置。对于修改键和层的操作,你必须将KC_TRANS放在目标层的相同位置,以防止触发修改键或在释放时返回到前一层。

具体可见:

机械锁轴开关

#define LOCKING_SUPPORT_ENABLE

#define LOCKING_RESYNC_ENABLE

启用此特性后,请在键映射中使用键码KC_LCAP、KC_LNUM和KC_LSCR。

老式的机械键盘部分会有锁开关,但现代的键盘没有。在大多数情况下,您不需要这个功能,只需使用键码KC_CAPS、KC_NLCK和KC_SLCK。


输入ASCII以外的特殊字符,如“Cédille ‘Ç”

Fn键在macOS上的运用

不像大多数的Fn键,苹果键盘上的fn个实际上有它自己的键码…它代替了基本的6KRO HID报告中的第六个按键代码——所以一个苹果键盘实际上只有5KRO。

让QMK发送此键值在技术上是可行的。但是,这样做需要修改报告格式以添加Fn键的状态。更麻烦的是,除非键盘的VID和PID与真正的苹果键盘匹配,否则电脑无法识别它。QMK官方明白该功能可能产生的法律问题,所以基本不会允许这种现象发生。

支持Mac OSX的按键

从源代码中你可以知道OSX支持哪些键码。

usb_2_adb_keymap数组映射键盘/键盘页使用ADB扫描代码(OSX内部键码)。

而IOHIDConsumer::dispatchConsumerEvent负责处理消费者页面使用。


日配JIS配列在Mac OSX上的应用

日本JIS键盘的特定键像:無変換(Muhenkan),変換(Henkan)ひらがな(平假名)对OSX并不认可。您可以使用Seil来启用这些键值,请尝试以下选项。

在PC键盘上启用NFER键

在PC键盘上启用XFER键

启用PC键盘上的片假名键


RN-42蓝牙无法与Karabiner(mac键位修改器)兼容

Esc和’在一个键上的问题

在Mac OSX上的EJCT弹出

KC_EJCT键码在OSX上工作。但是似乎Windows 10忽略了这些代码,Linux/Xorg倒是可以识别,但是默认没有映射。

实际上不是很确定在苹果键盘上什么键码对应EJCT。HHKB在Mac模式下使用F20作为弹出键(Fn+f20),但这可能与苹果的弹出键代码不一样。

action_util.c中的weak_mods和real_mods是什么

*此词条需要被改进

real_mods的目的是保留真实/物理修改键的状态,而weak_mods保留虚拟或临时修改键的状态,这不会影响真实状态的修改键。

例子:假设你按下物理左shift键用weak_mods输入ACTION_MODS_KEY(LSHIFT, KC_A)

1)按住左shift键:real_mods |= MOD_BIT(LSHIFT)

(2)按ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods |= MOD_BIT(LSHIFT)

(3)释放ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods &= ~MOD_BIT(LSHIFT) real_mods仍然保持有修改键的状态。

当没有weak_mods

(1)按住左shift键:real_mods |= MOD_BIT(LSHIFT)

(2)按ACTION_MODS_KEY(LSHIFT, KC_A): real_mods |= MOD_BIT(LSHIFT)

3)释放ACTION_MODS_KEY(LSHIFT, KC_A): real_mods &= ~MOD_BIT(LSHIFT)这里real_mods丢失的状态为物理左移。


QMK术语表

ARM ARM处理器(Advanced RISC Machine)

一条负责许多公司32位MCU(Microcontroller Unit 微控制单元)生产的流水线,这些公司有Atmel, Cypress, Kinetis, NXP, ST,TI等

AVR AVR处理器

一条由 Atmel公司生产的8位MCU生产线. AVR是 TMK支持的原始平台

AZERTY 法语键盘布局

标准的法语键盘布局,由这配列的前六个键命名

Backlight 背光

键盘上照明灯的通用术语. 背光一般就是通过一组键帽或者轴体发光的led灯,但也不是都是这样

Bluetooth 蓝牙

一种短距离点对点的无线协议,是最常见的键盘无线协议

Bootloader 引导程序

一个特殊的程序,它被写入在MCU一个受保护的区域,它允许MCU通过USB等接口升级自己的固件

Bootmagic 系统切换器

允许动态改变各种键盘表现的功能,例如交换或者禁用常用键

C C语言

一种适用于系统代码的低级编程语言,大多数QMK代码是基于C语言编写的

Colemak 一种英文系人体工学键盘布局

一种越来越受欢迎的键盘布局/配列

Compile 编译

把人类可读的代码转化为单片机可以运行的机器语言的过程

Dvorak 德沃夏克配列

这是由Mr. August Dvorak 在20世纪30年代创造的一种键盘布局,一种简化键盘的缩写形式(德沃夏克)

Dynamic Macro 动态宏

一种记录在键盘上的宏,当键盘不插电或者计算机重启时这个宏会被丢失

Eclipse 一款IDE软件

一个在C语言开发中很常用的IDE(Integrated Development Environment 集成开发环境)软件

Firmware 固件

控制你MCU的软件

git 一款分布式版本控制器

在命令行中使用的版本控制软件

GitHub 网站

这个网站承载了QMK项目的大部分内容。它提供了与git的集成、问题跟踪和其他帮助我们运行QMK的功能。

ISP  系统内编程(In-System Programming)

系统内编程,一种使用外部硬件和JTAG引脚编程AVR芯片的方法

hid_listen 交互接口(Human Interface Device)

从键盘接收调试消息的接口,你可以使用QMK Flasher或者PJRC的hid_listen查看此类消息

Keycode 键码

Key Down 按下按键

按下键盘按键时发生的时间,但在释放键之前完成

Key Up 释放按键

当一个键被释放时发生的事件

Keymap 键映射

映射到物理键盘布局的数码数组,在按键按下和释放时进行处理

Layer 层

一种抽象的概念,作用是让一个键用于多种用途,通过不同的触发方式来达到目的,最高的活动层优先

Leader Key 领导键

一种功能,在你按下领导键后再按顺序按下某些指定按键可以实现按键激活或者其他的量子功能

LED 发光二极管

发光二极管,键盘上最常用的指示设备

Make 一种软件包

用来编译所有源文件的软件包,也可以选用各种的选项来运行make来编译键盘固件

Matrix 矩阵

一种行与列的布线方式,可以使MCU检测具有较少引脚数目的按键来判断触发,矩阵通常包含二极管,以达到NKRO全键无冲的目的

Macro 宏

一个能让你按一个键就发送多个按键事件(hid报告)的功能

MCU 微控制单元(Microcontroller Unit)

微控制单元,键盘的核心处理器,是支持键盘运作的关键器件

Modifier 修饰键

在键入另一个键同时按下的键,用于修改按键的操作,常见的包含:shift,alt,control,mousekeys等

Mousekeys 鼠标键

这个功能可以让你控制你的鼠标光标和从键盘上点击

N-Key Rollover (NKRO) 全键无冲

这个功能可以同时报告任意按键数量的键同时被触发

Oneshot Modifier 粘滞键

一个修饰键,作用是你按下它,它会保持触发直到另一个键被释放,所以你可以按下一个mod并按下这个键,如果按住mod同时按下它,它就被称为粘滞键或者死键

ProMicro 一种开发板

一个低成本的AVR开发板,这种设备的仿制品一般在ebay上以非常便宜的价格出售,但是人们很少使用promicro开发板去刷写固件

Pull Request 提供代码

一个向QMK提供代码的请求,QMK官方欢迎所有用户贡献他们的个人代码或者按键映射

QWERTY 标准英语键盘布局

标准的英语键盘布局,通常是其他语言标准键盘的快捷方式,是以键盘上的前六个字母命名的

QWERTZ 标准德式键盘布局

标准的德式键盘布局,以键盘上的前六个字母命名

Rollover 按键同时按下,覆盖冲突

表示一个键按下的同时仍然按下另一个键的术语,通常包含2KRO,6KRO和NKRO

Scancode 扫描码

一个一字节的数字,被作为一个HID报告的一部分通过USB发送的的一个单一的密钥,这些数字被记录在USB-IF发布的HID使用表中

Space Cadet Shift  空格后补shift

一组特殊的shift键,允许您单击一次或多次来达到键入各种类型符号的作用

Tap 按

按住并释放一个键,在某些情况下,你要区分上下键的不同事件,tap总是同时指两者

Tap Dance 多键码共键

一种功能,可以让你按照按动某个键的次数把很多个键码分配给一个键

多键码共键文档:

Teensy 一种开发板

一种低成本的AVR开发板,通常用于自制有线键盘构建,尽管要多花点钱,但是其的halfkay bootloader非常容易刷写固件,所以很多人都会考虑

Underlight 底光

位于PCB底部发光二极管的总称,用于照明板子的底部,这些LED通常从键盘底部向表面发光

Unicode 一种编码方案

在更大的计算机世界里,Unicode适用于表示任何语言中字符的一种编码方案。它在本文档中与QMK有关,意味着它使用各种操作系统方案来发送码点而不是扫描点

Unit Testing 单元测试

针对QMK运行自动化测试的框架,单元测试帮助我们确信我们的操作不会损坏任何东西

USB 通用串行总线(Universal Serial Bus) 

通用串行总线,键盘最常用的有线接口

USB Host (or simply Host) USB主机

USB主机意味着任何插入键盘的主机本体

找不到你需要术语吗?

资源下载: