捕捉并更改mac sierra上的键盘以模拟neo2键盘布局

时间:2016-12-02 12:52:27

标签: c# swift keyboard-events macos-sierra

我正在使用优化的布局neo2:https://www.neo-layout.org/

不幸的是,mac版本基于karabiner(https://pqrs.org/osx/karabiner/),自Sierra更新以来一直停止工作。 有一个很有希望的新版本称为karabiner元素(https://github.com/tekezo/Karabiner-Elements),它有望解决这个问题。

由于我现在没有修复可以在mac sierra上运行,我正在寻找一个非通用的"快速和脏"解决方案,它只是将标准德语键盘映射到neo布局。

  1. 是否可以为mac系统范围内捕获键盘事件?
  2. 我必须使用哪种语言/框架才能实现此解决方法?

2 个答案:

答案 0 :(得分:1)

我建议使用KeyBindingsEditor创建/编辑您的密钥绑定文件,该文件应在此处找到/创建:{your user folder} /Library/KeyBindings/DefaultKeyBinding.dict

请注意,您的密钥绑定文件必须使用UTF-8编码,并且必须在对其进行修改后重新启动计算机才能生效。

此外,以下是您可能会发现有用的custom key bindings in macOS的更多信息。

答案 1 :(得分:0)

使用上面的解决方案,我能够让我的4. Layer返回一些较小的问题。

这就是我所做的:

步骤1:创建一个DefaultKeyBinding.dict文件(我错了,BindingsEditor有效)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"       "http://www.apple.com/DTDs/
<plist version="1.0">
<dict>
  <key>^a</key>
  <string>moveDown:</string>
  <key>^c</key>
  <string>deleteForward:</string>
  <key>^e</key>
  <string>moveForward:</string>
  <key>^i</key>
  <string>moveBackward:</string>
  <key>^l</key>
  <string>moveUp:</string>
  <key>^o</key>
  <string>moveToEndOfLine:</string>
  <key>^u</key>
  <string>moveToBeginningOfLine:</string>
  <key>^v</key>
  <string>deleteBackward:</string>
</dict>
</plist>

第2步:将Command_Right重新映射到ctrl_left

Settings in Karabiner-Elements

<强>问题

这种方法似乎并不适合每个程序。映射到cmd + *(我实际上想要它不起作用) 这只是我注意到的几个问题(可能是因为ctrl + *预映射的快捷方式):

  • 在聚光灯搜索中,左侧快捷键工作正常,但右侧快捷键始终位于行尾
  • 使用此快捷方式时,Microsoft Excel App完全疯狂
  • 我正在输入此编辑器的编辑器也使用其他快捷方式

<强>结论

首先,我还想提一下这篇博文:http://slongwell.github.io/articles/2016-09/karabiner-workaround

这种方法确实有一定的作用,在Karabiner解决问题之前肯定是一种选择。 但是,如果您找到更好的解决方案,请随时在此处发布。