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次
515KB
1K SLoC
ch57x-keyboard-tool 宏键盘配置工具
目录
这是什么?
此键盘配置工具用于编程小型键盘,如下所示
此类宏键盘在AliExpress上很受欢迎,卖家通常包括编程软件,但
- 它需要Windows
- 它非常丑陋且不方便
- 它一次只能编程一个按键
- 它没有公开所有键盘功能
此类键盘有几种修改版本,按钮和旋钮数量不同(见支持的键盘照片),且有/无蓝牙。
支持有线和无线键盘。
⚠️ 然而,在编程时,键盘必须通过USB线连接到计算机。
支持的键盘
此工具已被报告可以与以下
- 3×4带2个旋钮(蓝牙版本)
- 3×3带2个旋钮
- 3x2带1个旋钮
- 3x1带1个旋钮,有限制
所有这些键盘都共享相同的厂商/产品ID:1189:8890
(十六进制)。您可以覆盖使用的厂商/产品ID,但通常是不必要的。使用此实用程序在类似外观但厂商/产品ID不同的键盘上。
有关更多详细信息,请参阅支持的宏键盘部分。
⚠️ 覆盖厂商/产品ID的能力并不意味着您可以使用此实用程序来编程任意键盘!
安装
下载键盘实用程序有两种方法:获取预构建版本或自行构建。
预构建版本
直接从GitHub下载最新版本:GitHub最新版本。
自行构建
- 使用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
- Brew:
- 执行
cargo install ch57x-keyboard-tool
。
使用方法
注意:Windows用户需要先安装USBDK。
- 使用USB线将键盘连接到计算机。
- 根据提供的example-mapping.yaml创建配置文件。
- 示例配置文件内部有详细的文档。
- 验证配置文件。
- 将配置上传到键盘。
- 完成!🎉
命令和选项
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。
- 选择一个您不常用的和弦(例如
alt-ctrl-shift-1
)。 - 将和弦分配给一个键。
- 使用第三方自动化工具监听这个和弦,并让它执行所需操作。
- 完成!🎉
能否实现 ... 功能?
我没有这些键盘的详细数据表。因此,我只能在你展示给我任何可以做到的软件之前说能否实现。然后理论上可以复制行为。
然而,这样做需要我手中确切的键盘型号,或者你需要进行逆向工程。
备注
层数数量
我看到的所有键盘都有三层(三层可以切换的键配置)。但是,如果你的键盘不支持层切换,只需在配置文件中保持单个层。
自定义键盘布局
如果你使用自定义键盘布局,如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设备的列表以及keyboard
和mouse
监控工具的输出。
如何查找和列出连接的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
监控生成的键盘和鼠标事件
监控键盘和鼠标事件的最简单和跨平台的方法是使用keyboard
和mouse
Python模块。
监控键盘
pip3 install keyboard
sudo python3 -m keyboard
监控鼠标
- 最新发布的'mouse'模块不支持macOS,因此请使用GitHub上的最新版本
git clone https://github.com/boppreh/mouse
cd mouse
python3 -m mouse
支持的宏键盘
- 产品ID:0x8890,0x8840
- 供应商ID:0x1189(Trisat Industrial Co., Ltd.)
- amazon.co.jp/dp/B0CF5L8HP3
支持的键盘的照片
3x2带1个旋钮 | 3x2带1个旋钮 | 3x1带有1个旋钮 | 3×3带2个旋钮 |
---|---|---|---|
4x3带有3个旋钮 | |||
依赖关系
~12MB
~220K SLoC