简体中文

Karabiner-Elements 能映射游戏手柄吗?

在 Mac App Store 下载 InputConfig这款应用完全免费。无需创建账户。没有订阅,没有麻烦的下载,也没有任何锁定的功能。针对 Apple 芯片优化。

部分可以,而且比大多数人需要的少。Karabiner-Elements 是 Mac 上最好的键盘自定义工具,免费且开源,围绕键盘和鼠标构建。从 2023 年 12 月发布的 14.13 版本起,它也能读取一些游戏手柄:它的发布说明写道,支持 DirectInput 设备,完全不支持 XInput 设备,后来的版本又增加了用手柄摇杆当指针的死区。所以你的手柄会不会出现,取决于手柄和它的模式。另一条常见的路,是能假装成键盘的手柄,比如键盘模式下的 8BitDo Zero 2,许多 Anki 用户就是这样设置的。如果你想让手柄在每个 App 里发送按键并移动鼠标,专为手柄做的映射工具,比如 InputConfig,是更短的路。

InputConfig 1.7 版预计于 2026 年 10 月发布,届时应用将完整支持简体中文。

步骤

  1. 安装 InputConfig,并允许“无障碍”权限。
  2. 像平常一样配对手柄。它仍然是手柄。
  3. 添加一行,点按 Scan,按一个按钮,然后选择它该发送的按键。
  4. 点按 Activate。它在每个 App 里都能用。

用手柄映射工具把手柄映射成按键

  • 你:安装 InputConfig,允许“无障碍”权限,像平常一样配对手柄。添加一行,点按 Scan,按一个按钮,然后选择它该发送的按键。
  • InputConfig:把手柄读取为手柄,并发送你选的按键。摇杆可以驱动鼠标或四个按键。
  • 检查:点按 Activate,然后在任何 App 里按这个按钮。按键就会到达那里。

专门针对 Anki,Anki 指南里有现成的布局。

InputConfig 的主窗口,选中了桌面导航预设,各行左边列出手柄的控件,右边是它发送的按键或点按。
Figure 1. InputConfig 的主窗口:每一行写出一个控件,以及它发送的按键或点按。

两个都用:一个管按键,一个管手柄

它们并不竞争。键盘用 Karabiner-Elements,比如把 Caps Lock 变成 Escape,手柄、MIDI 设备和额外的鼠标按钮用 InputConfig。

InputConfig 是给一个按键增加一项功能,而让这个按键自己的功能保留不变,所以它无法交换两个按键,这正是 Karabiner 的用途。它监听键盘,却不阻止或重新映射按键本身,而且每个键盘的按键都算作同一个键。

为键盘的工作选对工具

大多数搜索 Karabiner-Elements 替代品的人,想要的是更简单的东西,或者不安装驱动的东西。正确的答案取决于工作:

  • 交换 Caps Lock、Control、Option、Command 或 Globe。macOS 在“系统设置”的“键盘”的 Keyboard Shortcuts, Modifier Keys 里就能做到。不需要安装任何东西。
  • 在下次重启之前,把一个键变成另一个键。macOS 自带的 hidutil 命令,在终端里运行,如下所示。
  • Caps Lock 上的 Hyper 键。小巧的 Hyperkey App,或者一条 Karabiner-Elements 规则。
  • 带可视化编辑器的宏、热键和按 App 的规则。BetterTouchTool 或 Keyboard Maestro,两者都是付费的。
  • 带层的重新映射,写成配置文件。Kanata,免费且开源。在 Mac 上,它依赖 Karabiner-Elements 使用的同一个虚拟键盘驱动。
  • 给备用的按键、鼠标按钮、手柄或 MIDI 打击垫一个功能。InputConfig,我做的免费 App。它不安装驱动,擅长处理 F13 到 F19、按住的右侧修饰键,以及同一个键在每个 App 里有不同的功能。

终端:把 Caps Lock 换成 F18,直到下次重启。

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000006D}]}'

会发生什么:Caps Lock 现在发送 F18,InputConfig 可以把它读取为输入。重启会让 Caps Lock 恢复。右 Command 和 Option 键那一页有更多可以粘贴的命令。

如果你的 8BitDo 没有出现在 Karabiner-Elements 里

按这个顺序一步步来,先从最小的一步开始:

  1. 检查模式。Karabiner-Elements 的发布说明说,它的手柄支持只涵盖 DirectInput 设备,所以处于其他模式的手柄可能不会出现。
  2. 使用键盘模式。带键盘模式的 8BitDo,比如 Zero 2 或 Micro,在那个模式下会显示为键盘。
  3. 允许“输入监控”。Karabiner-Elements 需要“输入监控”权限才能看到键盘模式的遥控器。
  4. 改为把它当手柄用。InputConfig 能读取 8BitDo 连接页面上列出的那些模式下的 8BitDo 手柄。

简短总结

  • 键盘。用 Karabiner-Elements,或者 macOS 自带的修饰键设置和 hidutil。
  • 手柄。用 InputConfig 这样的手柄映射工具。
  • 同一台 Mac 上两者都用。它们并不竞争。

Karabiner 改变一个键是什么,而 InputConfig 给一个控件分配功能。

常见问题

Karabiner-Elements 支持 Xbox 或 PS5 手柄吗?

不是作为手柄映射工具。它的发布说明说它读取 DirectInput 游戏手柄,而不读取 XInput 的,所以取决于手柄和它的模式。像 InputConfig 这样的手柄映射工具,直接读取 Xbox 和 PS5 手柄。

我能把 8BitDo 手柄和 Karabiner-Elements 一起用吗?

可靠地用,只有能切换到键盘模式的型号,比如 8BitDo Zero 2。在它的正常模式下,它是游戏手柄,InputConfig 直接读取它。

如何用 Karabiner-Elements 在 Mac 上设置 Anki 遥控器?

在键盘模式下配对遥控器,给 Karabiner-Elements 授予“输入监控”权限,然后写一条规则,把遥控器发送的每个键变成空格、1、2 或 4。更简单的办法,是在手柄模式下配对,改用映射工具。Anki 遥控器那一页两种都有。

为什么我的 8BitDo 没有出现在 Karabiner-Elements 里?

Karabiner-Elements 是为键盘和鼠标设计的,它的发布说明说它的手柄支持只涵盖 DirectInput 设备,所以处于其他模式的手柄可能不会出现。带键盘模式的 8BitDo,比如 Zero 2 或 Micro,在那个模式下会显示为键盘。想改为把它当手柄用,InputConfig 直接读取它。

有不需要驱动的 Karabiner-Elements 替代品吗?

交换修饰键,用 macOS 自己的“系统设置”的“键盘”的 Keyboard Shortcuts, Modifier Keys。在重启之前把一个键变成另一个键,用内置的 hidutil 命令。给备用按键、鼠标按钮和手柄分配功能,用 InputConfig,它不安装驱动,是给按键增加功能,而不是替换它。

更多中文页面

详细指南(英文)

作者说明。Ryleigh Newman 开发了 InputConfig,因为双手活动不便,每天都用手柄操作自己的 Mac。本页译自英文。Mac 的语言设为简体中文时,App 的主要按钮和菜单显示为中文,本页使用这些名称,并在括号中附上英文名称。App 的其他部分和网站的其他页面都是英文。

本页的其他语言版本: English, Čeština, Dansk, Deutsch, Español, Suomi, Français, עברית, Magyar, Bahasa Indonesia, Italiano, 日本語, Norsk, Nederlands, Polski, Português, Русский, Slovenčina, Svenska, ไทย, Türkçe, Українська, Tiếng Việt

在 Mac App Store 下载 InputConfig免费。macOS 14 或更高版本。无需账户,数据不会离开你的 Mac。 源代码在 GitHub 上.