2 个不稳定版本
0.2.0 | 2022 年 9 月 4 日 |
---|---|
0.1.0 | 2022 年 8 月 28 日 |
#1774 in 硬件支持
15KB
267 行
macroboard
Linux 系统上通过 libinput 将任何键盘转换为宏键盘的工具。
功能
-
创建单键或键组合快捷键
-
支持无限数量的键盘
-
区分所有键盘
-
在快捷键的按下和释放时运行闭包
-
在 Linux 上运行!(Wayland 和 X.Org[^1]都支持)
-
在使用宏键盘时保留键盘功能
-
无付费许可证,一切都是免费软件!
[^1]: 到目前为止,只测试了开发中的 Wayland。
已知问题/贡献机会
-
指定的键码映射到键上,就像布局是 QWERTY 一样。如果你使用不同的布局,你可以调整你的键码,以便它们正确映射(修复此问题的 PR 将非常受欢迎)。
-
键组合检测算法对于宏键盘来说足够好,但有点粗糙。我可能会再花点时间,PRs 欢迎! :)
关于 Windows 支持
Windows API 是垃圾,没有好的方法可以在 Windows 上作为开源软件实现此项目的功能。
如果你需要在 Windows 上使用 macroboard
创建宏键盘,请设置一台 Linux 机器,将你的键盘连接到该机器。然后,通过网络将 Linux 机器与 Windows 机器连接起来,将事件从 Linux 发送到 Windows。我知道,这很令人沮丧。
lmao 为什么?
操作系统要有效地支持 macroboard
,有两个主要要求
- 提供一种区分来自不同键盘的键盘输入的方法。好消息,Windows 有一个低级 API 可以做到这一点:RawInput。
- 提供一种阻止来自宏键盘的输入的方法。好消息是,Windows 提供了一种非常低效但足够的方法:全局钩子。
不错。只有一个小问题:这些是两个不同的 API,它们不能以可靠的方式协作。唯一的选择是编写一个自定义驱动程序,在 Windows NT 内核中实现类似 Linux 的功能,这很难以安全的方式完成,并且由于认证要求,发布时需要花费数百美元。我不会这样做。
在这段经历之前,我对 Windows 平台有不错的印象。现在,我想引用 Torvalds 对 Nvidia 的名言,并将其针对 Microsoft。
依赖项
~1.4-2.3MB
~39K SLoC