10个稳定版本

1.4.2 2024年6月5日
1.4.0 2024年3月24日
1.2.4 2024年2月15日
1.2.1 2023年9月30日
0.1.0 2023年1月17日

#66硬件支持

每月下载 23次

MIT/Apache

515KB
1K SLoC

ch57x-keyboard-tool 宏键盘配置工具

Last Commit Shields.io Release Workflow Badge

目录

这是什么?

此键盘配置工具用于编程小型键盘,如下所示

Picture of keyboard-12-2

此类宏键盘在AliExpress上很受欢迎,卖家通常包括编程软件,但

  • 它需要Windows
  • 它非常丑陋且不方便
  • 它一次只能编程一个按键
  • 它没有公开所有键盘功能

此类键盘有几种修改版本,按钮和旋钮数量不同(见支持的键盘照片),且有/无蓝牙。

支持有线和无线键盘。
⚠️ 然而,在编程时,键盘必须通过USB线连接到计算机。

支持的键盘

此工具已被报告可以与以下

  • 3×4带2个旋钮(蓝牙版本)
  • 3×3带2个旋钮
  • 3x2带1个旋钮
  • 3x1带1个旋钮,有限制

所有这些键盘都共享相同的厂商/产品ID:1189:8890(十六进制)。您可以覆盖使用的厂商/产品ID,但通常是不必要的。使用此实用程序在类似外观但厂商/产品ID不同的键盘上。

有关更多详细信息,请参阅支持的宏键盘部分。

⚠️ 覆盖厂商/产品ID的能力并不意味着您可以使用此实用程序来编程任意键盘!

安装

下载键盘实用程序有两种方法:获取预构建版本或自行构建。

预构建版本

直接从GitHub下载最新版本:GitHub最新版本

自行构建

  1. 使用rustup安装cargo实用程序。
    • Brew: brew install rustup-init && rustup-init
    • Linux: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    • Windows: 下载并运行rustup-init.exe
  2. 执行cargo install ch57x-keyboard-tool

使用方法

注意:Windows用户需要先安装USBDK

  1. 使用USB线将键盘连接到计算机。
  2. 根据提供的example-mapping.yaml创建配置文件。
    • 示例配置文件内部有详细的文档。
  3. 验证配置文件。
  4. 将配置上传到键盘。
  5. 完成!🎉

命令和选项

ch57x-keyboard-tool [OPTIONS] <COMMAND>

命令及其描述

命令 描述
show-keys 显示所有支持按键和修饰符的列表
validate 从stdin验证按键映射配置
upload 将stdin中的按键映射上传到设备
led 选择LED背光模式
help-h--help 打印此消息或给定子命令的帮助信息

选项及其描述

选项 描述 备注
--vendor-id<VENDOR_ID> 键盘的厂商ID 默认:4489
--product-id<PRODUCT_ID> 键盘的产品ID 默认:34960
--address<ADDRESS> 键盘的地址

验证配置文件

./ch57x-keyboard-tool validate < your-config.yaml

将配置上传到键盘

./ch57x-keyboard-tool upload < your-config.yaml

如果得到“访问被拒绝(权限不足)”,请使用’sudo’

sudo ./ch57x-keyboard-tool upload < your-config.yaml

更改LED配置

如果您的键盘支持,您可以更改LED配置

# Turn off the LED
./ch57x-keyboard-tool led 0

# Set the LED to the first mode (likely "Steady on")
./ch57x-keyboard-tool led 1

Windows / PowerShell

使用Get-Content进行输入重定向

Get-Content your-config.yaml | ./ch57x-keyboard-tool validate

常见问题解答

如何在按键时执行...?

一个常见的问题/请求是关于自动化,例如“如何运行脚本?”、“模拟多个按键”或“如何通过按键触发操作?”

此工具只做一项工作:将你的快捷键写入键盘,然后退出。
它不会监听按键。基于按键的自动化不属于本工具的功能范围。

如果您需要自动化,请使用第三方自动化工具,如BetterTouchTool

  1. 选择一个您不常用的和弦(例如 alt-ctrl-shift-1)。
  2. 将和弦分配给一个键。
  3. 使用第三方自动化工具监听这个和弦,并让它执行所需操作。
  4. 完成!🎉

能否实现 ... 功能?

我没有这些键盘的详细数据表。因此,我只能在你展示给我任何可以做到的软件之前说能否实现。然后理论上可以复制行为。

然而,这样做需要我手中确切的键盘型号,或者你需要进行逆向工程。

备注

层数数量

我看到的所有键盘都有三层(三层可以切换的键配置)。但是,如果你的键盘不支持层切换,只需在配置文件中保持单个层。

自定义键盘布局

如果你使用自定义键盘布局,如Dvorak,你需要在配置文件中写入键盘键的扫描码(不是产生的字符)。

因此,使用你想要按下的键盘键的QWERTY字母。

3x1键+1旋钮键盘限制

此修改仅支持序列中第一个键的键修饰符(如 ctrl-alt-cmd-)。

因此,你可以使用:ctrl-alt-del,1,2,但不能使用ctrl-alt-del,alt-1,2

macOS与Windows键盘键的区别

友情提示:一些键在macOS和Windows上的名称不同。
这些键在两个平台上都有别名,你可以互换使用。

键名 macOS键 Windows键
命令 / Windows cmd win
选项 / Alt opt alt

诊断

在报告问题时,请包括诊断信息,例如附加USB设备的列表以及keyboardmouse监控工具的输出。

如何查找和列出连接的USB设备

macOS

system_profiler SPUSBDataType

ioreg -w0 -l -p IOUSB

Linux

lsusb -v

Windows

Get-PnpDevice | Where-Object { $_.Class -eq 'USB' } | Format-Table Name, DeviceID, Manufacturer, Status, Description -AutoSize

监控生成的键盘和鼠标事件

监控键盘和鼠标事件的最简单和跨平台的方法是使用keyboardmouse Python模块。

监控键盘

pip3 install keyboard
sudo python3 -m keyboard

监控鼠标

  • 最新发布的'mouse'模块不支持macOS,因此请使用GitHub上的最新版本
git clone https://github.com/boppreh/mouse
cd mouse
python3 -m mouse

支持的宏键盘

支持的键盘的照片

3x2带1个旋钮 3x2带1个旋钮 3x1带有1个旋钮 3×3带2个旋钮
keyboard-6-1 keyboard-6-1 keyboard-3-1 keyboard-12-2
4x3带有3个旋钮
keyboard-4-3

依赖关系

~12MB
~220K SLoC