如何在Mac应用程序的“远程桌面连接”中将Mac CMD重新映射到CTRL键?


58

有时,我必须使用Mac的Microsoft远程桌面连接才能从运行MacOS X 10.6.6(雪豹)的iMac远程访问Windows 7计算机。

使精神开关使用控制键CTRL代替Command键的CMD同时在远程桌面窗口(如CTRL- C复制,而不是CMD- C)是一种痛苦和不断的错误的根源。

我希望能够映射CMD密钥以CTRL在Mac上输出密钥,但是当访问用于Mac的Microsoft远程桌面连接应用程序时才可以。远程桌面连接使您可以通过其“首选项”映射许多其他键。。。但不是CMD密钥。

即在任何其他Mac应用程序中,其CMD行为都类似于CMD。但是,在Mac的Microsoft远程桌面连接中,其CMD作用类似于CTRL


1
嗯,该死。提交问题10分钟后,我自己找到了答案。名为KeyRemap4MacBook的程序可以完全满足远程桌面连接客户端的需求。
Greg R.

您如何映射cmd + space用于切换语言?
dmiandre

dmiandre,我没有,因为我不需要切换语言。抱歉。
Greg R.

Answers:


45

回答我自己的问题。:-P

发布后不久,我在一个名为Karabiner的应用程序中进行了谷歌搜索,该应用程序恰好完成了我需要它执行的工作(除了很多其他工作)。

具体来说,您可以将左右Command键映射为仅远程桌面连接和VM中的Control键。


1
天哪,非常感谢。这是我为Karabiner 设置的功能,用于在Messages应用程序中为换行符启用Shift + Enter快捷键。
DanSkeel 2015年

2
我在使用Karabiner-Elements的Mac Sierra上,甚至我将Ctrl映射到Cmd并将Cmd映射到Ctrl,Microsoft Remote Desktop仍然将Ctrl注册为Windows键,将Cmd注册为Ctrl键。任何想法 ?
Dio Phung

2
转到“复杂修改”选项卡,单击底部的“添加规则”,单击“从Internet导入更多规则”,单击“特定于应用程序”,找到显示“远程桌面”的内容,然后单击“导入”。导入后,您将在列表中看到它,然后单击“启用”。立即为我工作,仅在完美的远程桌面应用程序中工作。甚至不必重启应用程序或其他任何东西。
本·巴伦

23

Microsoft远程桌面beta添加了对Cmd+ X/ C/ V以及Ctrl+ X/ C/的支持,V以在远程会话中剪切/复制/粘贴。(注意:剪贴板重定向将在以后的更新中提供。)


您还可以通过导航到应用程序内容内的Resources / Keyboard目录并ClipboardActionTransformations.xml在纯文本编辑器中打开文件来添加自定义映射。

<layout name="default">
<transformations>
    <!-- Command+X to Control+X -->
    <transform>
        <from command="1" key="X" />
        <to control="1" key="X" />
    </transform>
    <!-- Command+C to Control+C -->
    <transform>
        <from command="1" key="C" />
        <to control="1" key="C" />
    </transform>
    <!-- Command+V to Control+V -->
    <transform>
        <from command="1" key="V" />
        <to control="1" key="V" />
    </transform>
    <!-- Command+Z to Control+Z -->
    <transform>
        <from command="1" key="Z" />
        <to control="1" key="Z" />
    </transform>
</transformations>
</layout>

更新资料

您只需在“偏好设置” /“常规”部分中设置此复选框即可:

MS远程桌面客户端(测试版)首选项常规


更新2

尽管作者是“ Microsoft远程桌面”,但有些人还是怀疑hockeyapp网站。microsoft.com上的TechNet博客文章宣布了beta应用程序,并提供了相同的hockeyapp URL。


1
“应用程序内容中的Resources / Keyboard目录” ...在哪里?
克里斯

2
@Chris,也可以在GUI:“首选项”-“常规”中完成。复选框“使用Mac快捷方式进行剪切,复制和粘贴”
表格

2
另外,不要像我一样将“ Microsoft Remote Desktop Beta ”仅误认为“ Microsoft Remote Desktop ”。

Beta是。只是想向其他读者指出,非Beta版本并未添加对Cmd + X / C / V的支持。您需要测试版。
克里斯

只是按照指示编辑了该文件。添加了对L,T(chrome新标签,W close),S-Save,D-(我的删除行intellij)的支持。
user895861 2016年

18

安装应用程序Karabiner

安装完成后,打开Karabiner:

  • 在“更改键”选项卡上,展开“对于应用程序”部分

  • “仅在远程桌面连接客户端上启用”小节

  • 选中“将命令键更改为RDC中的控制键”

现在,当您使用新的RDP应用程序时,可以继续使用Cmd而不是Ctrl。


1
gh,

在Sierra上,尝试使用Karabiner-Elements,它是Karabiner的简单版本。但是,在Microsoft远程桌面下,Ctrl键被识别为Windows键,Cmd键被识别为Ctrl键。
Dio Phung 2016年

Microsoft Remote Desktop的最新版本无法将Ctrl键识别为Windows键,而将Cmd键识别为Ctrl键(我正在使用8.0.36版)
George Filippakos

我仅在Teamviewer应用程序中成功设置了键盘映射开关。很棒:forum.keyboardmaestro.com/t/switching-command-and-control-keys/…–
Mau,

1

像以前的答案一样,我也使用Karabiner。最优秀的应用程序!

我所做的不同之处在于,添加了一个自定义键映射,以减轻终端机中的MAC命令与控制按钮的冲突。

在我的情况下,我使用的是Logitech键盘,没有Apple Command键。

本质上,我所做的是将MAC Command键映射到Control键。 我的理由是我想保留MAC映射到Command-Key序列的通用Ctrl-Key序列(即Ctrl-F,以进行查找)。另外,我需要保留真正的 Control序列,例如Ctrl-C for SIGINT。基本上,我们多路复用Control键。

安装Karabiner之后,我无法获得Ctrl-c来最初发送Unix(SIGINT)。但是,一旦修改了private.xml,就可以正常工作。

脚步:

  1. 从以下位置下载Karabiner .dmg文件:https : //pqrs.org/osx/karabiner/
  2. 双击.dmg文件进行安装。
  3. 安装Karabiner后,调出按键映射。
    3.1 不要将Command_L或Command_R映射到任何东西。取消选中它们。
    3.2将Control_L和Control_R映射到各自的Command_L和Command_R。
  4. 接下来,编辑private.xml文件。有用的链接:https : //pqrs.org/osx/karabiner/document.html#privatexml
    4.1添加以下代码段:

    <item>
         <name>MAC2Unix Hacks</name>
         <identifier>private.app_terminal_command2_to_ctrl</identifier>
         <appendix>Map Command+C to Ctrl+C For Terminal</appendix>
         <only>TERMINAL</only>
         <autogen>__KeyToKey__ KeyCode::C, VK_COMMAND, KeyCode::C, VK_CONTROL</autogen>     
    </item>
    
  5. 点击重新加载按钮,您应该会很好。
  6. 请注意,在“终端”窗口中,如果要复制/粘贴文本,则可以使用鼠标或其他方式选择它。但是,现在要将其复制到剪贴板,您将需要使用rt-click-> copy。记住,我们重新映射了Ctrl-C(以前是“副本”),现在是SIGINT。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.