背景:在过去五年左右的时间里,在使用符合人体工程学键盘的典型 PC 硬件上使用 Gnu/Linux 多年后,我一直在使用 Mac 硬件(大部分是高端 MacBook Pro 笔记本电脑)和软件。更重要的是,作为 Emacs 的重度用户,切换到 Mac 是痛苦的,Apple 标准的短键盘既令人抓狂又不可避免。我使用Karabiner防止了RSI发作工具进行了两个小但非常重要的更改:1)更改大写锁定键以在单独按下时生成一个菜单(f13)键,并在与另一个键按下时生成一个控制键修改键码;2)以类似的方式更改返回键,单独按下时返回,当与另一个键按下时,控制键修改了键码。对 Apple 最近在硬件和软件方面的决定感到失望,我现在回到 Gnu/Linux(如果重要的话是 Ubuntu),但坚持使用 Mac 笔记本电脑。
问题:由于 Karabiner 是一个仅适用于 OS X 的工具,没有现成的 Gnu/Linux 对应工具,看起来我必须编写和/或修改一些代码来实现大写锁定和返回键的双重功能行为 Karabiner 启用。Karabiner 作者写道,xbindkeys 和 rbindkeys 会重新映射键,但乍一看,它们似乎无法处理双重功能行为。现在我正在努力移植 Karabiner 或完全创建一个新工具。毫无疑问,可能还有其他方法。所以我的问题是:你会建议什么编程建议来解决这个问题?尤其是可以在数小时、数天或数周内而不是数月内开发的产品。
备注:
1) 存在涉及行为变化的不同方法,例如交换控制键和命令键。许多人都以不同程度的满意进行了尝试。Karabiner 的双重功能方法是,恕我直言,最有效的方法是它在键盘主行上提供控制键对称性,并且适用于所有应用程序!
2) 也可能建议使用不同的硬件。我尝试过戴尔、惠普、联想、宏碁系统并查看了更多。没有一款能与 Apple 高端产品的综合功率、尺寸、手感和风格相媲美,尽管价格较高。例如,Dell Precision 7510 体积庞大,触控板感觉像砂纸;Lenovo X1(一个非常好的系统)没有 Thunderbolt 端口;等等
3)由于笔记本电脑的要求,外接键盘也是不可启动的;飞机或火车上没有外接键盘。