【问题标题】:Catch and change keyboard on mac sierra to emulate neo2 keyboard layout在 mac sierra 上捕捉和更改键盘以模拟 neo2 键盘布局
【发布时间】:2017-04-17 09:24:56
【问题描述】:

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

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

由于我现在不知道何时修复适用于 mac sierra,我正在寻找一种非通用的“快速而肮脏”的解决方案,它只是将标准德语键盘映射到 neo 布局。

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

【问题讨论】:

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


    【解决方案1】:

    我建议使用KeyBindingsEditor 创建/编辑您的键绑定文件,该文件应位于/创建在这里:{您的用户文件夹}/Library/KeyBindings/DefaultKeyBinding.dict

    请注意,您的键绑定文件必须使用 UTF-8 编码,修改后必须重新启动计算机才能生效。

    此外,这里还有一些关于 custom key bindings in macOS 的更多信息,您可能会觉得有用。

    【讨论】:

    • 程序生成的配置文件不起作用。但是通过提供的链接,我能够进行一些基本的重新映射。这看起来像是一个可能的选择。我将尝试重新映射箭头键。
    • 你使用这种方法有没有成功?
    【解决方案2】:

    使用上面的解决方案,我能够解决一些小问题。

    这是我所做的:

    第 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

    问题

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

    • 在聚光灯搜索中,左侧快捷方式运行良好,但右侧快捷方式始终位于行尾
    • 使用此快捷方式时,Microsoft Excel 应用程序变得非常疯狂
    • 我正在输入的这个编辑器也使用其他快捷方式

    结论

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

    这种方法在一定程度上确实有效,并且在 Karabiner 解决问题之前绝对是一种选择。 但是,如果您找到更好的解决方案,请随时在此处发布。

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多