2 个不稳定版本

0.2.0 2022 年 9 月 4 日
0.1.0 2022 年 8 月 28 日

#1774 in 硬件支持

MIT 许可证

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