如何在 macOS 和 Parallels Desktop 中的 Windows 无缝切换键盘?

对我来说 macOS 比 Windows 好用太多太多了,但是 macOS 的生态还不太完善,有些应用还是只能在 Windows 上使用,而一个 Windows 开发者更是离不开 Windows。而 Parallels Desktop 则能解决 macOS 相对 Windows 的不足,让你一台电脑可以无缝使用两个系统,真的牛逼🐂。

但 Windows 的键盘和 Mac 的键盘是有区别的,Windows 的 Ctrl 对应 Mac 中的 Control,Alt 对应 Option,而 Win 对应 Command。从这两个系统的快捷键来看,Ctrl 对应的就是 Command。因此 PD 提供了一些去键盘差异化的配置,虽然也可以自定义按键或快捷键映射,但有如下问题:

  • 不能具体到左修饰键还是右修饰键,如果你只想对右边的 Ctrl 或 Win 进行映射是不行的。
  • 所有修饰键映射后都对应左修饰键,如 Cmd 映射为 Ctrl ,则是将左的 Cmd 都映射为左 Ctrl。

一开始我想到的是以前在 Windows 上必用的热键脚本语言程序 AutoHotKey。但是经过一番尝试,发现其在这种 macOS 上虚拟机环境中似乎有时候会失效,比如将 Win + Tab 映射为 Ctrl + Tab 时好时坏!

最终在知乎中找到一款开源且微软维护的、支持按键映射的软件 Microsoft PowerToys | Microsoft Docs

Microsoft PowerToys 是一组实用工具,可帮助高级用户调整和简化其 Windows 体验,从而提高工作效率。

下面是我的macOS 和 Windows 无缝切换按键的配置:

  1. 在 PD 偏好设置中添加一个自己的快捷键配置,但不要配置或启用任何按键配置。

  2. 在 PowerToys 的键盘管理器中添加 Left Win to Left Ctrl 和 Left Ctrl to Left Win 的按键映射配置。

    因为使用 Rider 时,Ctrl 用的较多,所以后面我去掉了 Ctrl to Win 的映射。然后在使用 Windows 应用时,通过 Karabiner-Elements 将 right_option 映射为 right_command。

但以上方法存在几个问题:

  • 明明已经将 Win 映射为 Ctrl 了,但是按下 Command + G 、Command + L 执行的是 Win + G(屏幕录制)、Win + L(锁屏),按下 Cmd + Shift + F (JetBrains Rider Finder in Files 快捷键) 会无效。

    该问题可以通过 PowerToys 映射为其他快捷键来解决。但 Win + L 快捷键 PowerToys 是无法重新映射的,可以试试通过第一步在 PD 偏好设置的快捷键里面映射 Win + L 为 Ctrl + L,但我这里测试只会输出 l,最终我是通过 PowerToys 将 Alt + L 映射为 Ctrl + L 来解决的。

    后面还添加了:

    • Win(Right) + W to Alt(left) + F4
  • 明明已经将 Win 映射为 Ctrl 了,但重映射快捷键按下 Command + G 显示的 Win + G。

这样基本上在两个系统的按键基本上就是无缝了。
当然我还用了Karabiner-Elements 和 BetterTouchTool 来实现更多高效率的快捷键。

如何在 macOS 和 Parallels Desktop 中的 Windows 无缝切换键盘?

https://ganzhixiong.com/p/cd1d8f5b/

Author

干志雄

Posted on

2022-03-28

Updated on

2022-03-28

Licensed under

Comments