如何在 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 无缝切换按键的配置:
在 PD 偏好设置中添加一个自己的快捷键配置,但不要配置或启用任何按键配置。
在 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 无缝切换键盘?