如何在 Mac OS X 中重新映射“上下文菜单”键?

Posted

技术标签:

【中文标题】如何在 Mac OS X 中重新映射“上下文菜单”键?【英文标题】:How to remap "Context Menu" key in Mac OS X? 【发布时间】:2010-11-03 05:39:41 【问题描述】:

我有一个罗技键盘(确切地说是 Ultra-Flat Keyboard Dark Shine),它在窗口中间有上下文菜单键和 alt 键,这很烦人。

这是关键所在位置的屏幕截图:

http://freshlog.com/grabs/ff532-How_do_I_remap_the_context_menu_key_in_Mac_OS_X

我可以在默认的键盘系统偏好设置面板下重新映射窗口和 alt 键,但似乎没有办法重新映射上下文菜单键。

有什么想法吗?

【问题讨论】:

【参考方案1】:

您可以使用Karabiner将App映射到Command+Option

然后您可以使用 Keyboard Maestro 映射 Command+Option+Letter,其中 Letter 是一个键表示一个应用程序,用于聚焦应用程序:

例如,然后您可以执行 App+C 聚焦 Chrome,App+T 聚焦终端、App+S 用于聚焦 Slack 等(如果应用尚未打开,Keyboard Maestro 将首先打开它)。

如果您使用的是通用键盘,那么您有一个专用的应用键:

如果您使用的是 Apple 键盘,则必须按住 CommandOption,但它们彼此相邻,并且出现在空格键的两侧:

请记住,OS X 已经使用 Command+Option+Esc 来打开 Force Quit Applications对话,因此您现在可以为此使用 App+Esc 。同样,OS X 使用 Command+Option+W 来关闭焦点应用程序中的所有窗口(Chrome 中的选项卡)。

注意事项:

Karabiner 是一个开源内核扩展,用于修改 OS X 处理键盘输入的方式。 Keyboard Maestro 是用于在 OS X 中创建键盘快捷键的专有应用程序。它提供 30 天免费试用,售价 36 美元。

【讨论】:

键盘大师改变了我的生活!自动化一切!【参考方案2】:

Karabiner Elements 12.1 提供最新的 MacOS 版本。 键对键重新映射在Simple Modifications 选项卡中完成,并在 2 行下拉菜单中方便地选择(参见:屏幕截图)。

此首选项面板选项卡中的Complex Modifications 必须通过从 Internet(Karabiner-E. 的站点)或用户的 ~/.config/karabiner/assets/ complex_modifications 文件夹中导入来添加。 来自网络的“复杂”实际上也被复制到那里并在标签中“打开”(= [+ Enable])。

所有修改最终都存储(并因此“激活”)在~/.config/karabiner/karabiner.json

一个实用的程序(也有助于避免在自己编写复杂模块时出错)是复制、重命名和更改一个“导入”模块。 一旦您有经验(例如:不同的括号类型),直接编辑 json 文件可能会更容易......

不再像其他一些功能一样将重新映射限制到特定窗口(可以通过 osascript AppleScript 模拟)。 非 Element 版本的 Karabiner 正在开发中。

获取信息和问题(已回答)的两个网站——但请搜索以前的“双打”!:

github.com >> Karabiner-Elementsgroups.google.com/forums/ osx-karabiner

【讨论】:

【参考方案3】:

很遗憾,最新的 macOS Sierra 还不支持Karabiner。一个简单的解决方案是将capslock 密钥转换为command 密钥。

【讨论】:

我目前使用 Keyboard Maestro 来解决 Karabiner Elements 的限制。我使用 KM 将我的 App 键映射到 F18,然后在 KM 中使用 this macro 使 F18 成为新的修饰键。 Karabiner Elements 在 Sierra 工作。应用程序(或上下文菜单)键可以作为“应用程序”找到,并且可以映射到例如“right_option”在我的例子中使我的 Microsoft Ergo 键盘与我的 MacBook 笔记本电脑的布局相匹配。【参考方案4】:

使用KeyRemap4MacBook(Karabiner 用于 osx 10.9、10.10)。正如 Mecki 指出的那样,XML .keylayouts / Ukelele 无法解决您的问题。

尽管有这个名字,但 KeyRemap4MacBook 可以在任何 Mac(OS X 10.4 或更高版本)上运行。

您需要的设置位于“对于 PC 用户”»“更改 PC 应用程序密钥”下。

【讨论】:

使用@David 的建议,将其映射到Option_L 为什么要将它映射到 command-L?要快速转到浏览器中的地址栏吗? @avernet 当 Karabiner 说“Command_L”时,它表示左命令键。 Karabiner 是否需要保持运行才能正常工作? @SamanthaCatania - 有点像。当您不主动配置 Karabiner 时,您可以完全关闭 Karabiner GUI。 Karabiner 本身是一个内核扩展,因此它始终在后台运行。【参考方案5】:

KeyRemap4MacBook

Entry: For PC Users -> Change PC Application Key -> Application Key to Option_L

【讨论】:

【参考方案6】:

使用KeyRemap4Macbook。像这样编辑private.xml 文件:

<item>
    <name>Change Windows context menu key to Right option key</name>
    <identifier>private.win_context_menu_option_key</identifier>
    <autogen>--KeyToKey-- KeyCode::PC_APPLICATION, KeyCode::OPTION_R</autogen>
</item>

此代码会将右选项键重新映射到上下文菜单键。

【讨论】:

以上是关于如何在 Mac OS X 中重新映射“上下文菜单”键?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Delphi XE2 中将菜单项添加到 Mac OS Finder

在 OS X 的停靠栏上下文菜单中显示图标?

重新映射 qwidget 上的上下文菜单调用

如何完全卸载 Node.js,然后从头重新安装(Mac OS X)

如何在Mac OS X Yosemite上安装 jdk 1.6 开发环境

在Mac OS X上重新启动apache