如何重新映射我的Ubuntu键盘快捷键以匹配OSX?

我在Mac上的VirtualBox中使用Ubuntu。 当我经常切换时,我想使用相同的快捷方式。 请问,有没有人知道如何在Ubuntu上使用相同的快捷方式,因为它们在Mac上? 具体来说,我想复制,粘贴,全选,…使用Cmd + C,Cmd + V,Cmd + A,…(即使在终端 – 没有Ctrl + Shift,只需Ctrl)。

我试图将键盘布局更改为Apple笔记本电脑,但这没有帮助。

你不能添加自定义快捷方式?? 如果那是不可能或不起作用,您可能想要更改vmbox的键绑定。 您需要执行以下操作:

安装xbindkeys

sudo apt-get install xbindkeys 

Xbindkeys是一个非常通用的程序,可以让您轻松地重新映射密钥。 它使用配置文件(我的默认位于您的主目录中)将键绑定更改为某些命令。

要创建默认配置文件,请使用以下命令:

 xbindkeys --defaults 

其中打印默认配置文件。 因此,如果要创建包含默认值的文件,请使用:

 xbindkeys --defaults > $HOME/.xbindkeysrc 

它将默认值打印到位于主页的名为.xbindkeysrc的隐藏文件中。

现在要实际更改键的绑定,我们首先需要知道这些键的名称或键是什么。 xbindkeys允许我们使用-k句柄来查找键或键组合的名称。 跑:

 xbindkeys -k 

现在按ctrl(cmd)并检查输出

尝试按ctrl + c(使用此探索的第二部分在终端中禁用该快捷方式后)

它会告诉您键/键组合的名称。

现在我们需要告诉linux在按下ctrl时调用cmd。

为此我们需要一个额外的软件,因为xbindkeys不支持它自己。 我知道我们可以使用的两个程序,xdotool和xte。 我更喜欢xte所以我打算用它。

安装它:

 sudo apt-get install xautomation 

(要拨打单键,请按: xte 'key keyName'

要调用组合键: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

有关更多信息,请阅读手册man xte

让我们打开你之前创建的配置文件:(使用xbindkeys --defaults > $HOME/.xbindkeysrc的配置文件xbindkeys --defaults > $HOME/.xbindkeysrc

gedit .xbindkeysrc

你会得到这样的东西:

 # # A list of keys is in /usr/include/X11/keysym.h and in # /usr/include/X11/keysymdef.h # The XK_ is not needed. # # List of modifier: # Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock), # Mod3 (CapsLock), Mod4, Mod5 (Scroll). # # The release modifier is not a standard X modifier, but you can # use it if you want to catch release events instead of press events # By defaults, xbindkeys does not pay attention with the modifiers # NumLock, CapsLock and ScrollLock. # Uncomment the lines above if you want to pay attention to them. #keystate_numlock = enable #keystate_capslock = enable #keystate_scrolllock= enable # Examples of commands: 

之前您提取了键/组合键。 既然您知道模拟按键的命令,您可以从xbindkeys脚本中调用它,如下所示:

“xte’ctrl’”Cmd(或类似的东西取决于xbindkeys给你的名字)

将此添加到您的xbindkeys脚本并保存。

你会注意到它还没有用。 那是因为xbindkeys尚未运行。 使用以下命令启动它。

 xbindkeys 

你的命令现在应该工作。 如果它不起作用,您可能想尝试向复制和粘贴等组合键添加命令。 如果这不起作用,或者有另一种选择,但这是相当多的写作。 您也可以尝试xmodmap或xkeycaps。

我想指出xbindkeys和xte并不总能很好地协同工作。

至于您的终端快捷方式:您可以通过打开终端并单击顶部栏中的编辑来更改它们。 然后单击键盘快捷键并将标题“编辑”下的复制和粘贴值更改为ctrl(或在您的情况下为cmd)+ c和ctrl + v

没有必要使用xbindkeys在Ubuntu上实现类似OSX的键盘映射。 这是一个内置选项:

  1. 进入你的Ubuntu设置
  2. 导航到键盘键盘布局设置
  3. 添加英语(Macintosh)

对于那些在更新版本的Ubuntu中遇到此问题的人来说,这是一个更新的答案。

我刚刚通过VirtualBox安装了Ubuntu 16.04.1 ,无法获得与我的MacBook相匹配的键盘设置。

这是我做的修复它:

  1. 导航到“ 系统设置”
  2. 选择文本输入 (即不是 键盘 )。
  3. 在列表下方标题为要使用的输入源:有加号和减号 – 单击加号。
  4. 在您需要的键盘布局中选择输入源类型下的文本框中(在我的情况下,我选择英语(英国,macintosh)。
  5. 使用向上箭头使其成为Ubuntu上的默认键盘布局。
  6. 删除其他键盘布局。 直到我删除其他布局才更改生效。

我正在使用Ubuntu 16.04,VirtualBox 5.1.22,这些答案都不适合我 – 包括David Brower不幸。

这是让我的左OSX Command键工作(持续!)的原因:

  1. 首先,您需要确保VirtualBox不使用左⌘作为主机密钥
    • 在VM窗口的顶部菜单栏中,选择Input > Keyboard > Keyboard Settings..
    • 在设置列表中,找到主机密钥组合 ,并将快捷方式更改为除左以外的其他内容(我刚使用右⌘,因为我从不使用它)。
  2. 现在您可以在VM环境中使用Left⌘,使用XKB重新映射密钥:
    • 打开并(仔细)编辑: /usr/share/X11/xkb/symbols/pc
    • 我只是简单地交换了 ,所以它看起来像这样:
    • key { [ Super_L ] };
    • key { [ Control_L ] };
  3. 现在清除xkb缓存中的旧映射:
    • rm -rf /var/lib/xkb/*
  4. 重新启动ubuntu以使更改生效。

警告:我不会一次通过xkb进行多次更改,除非你真的知道自己在做什么,同时错误映射的几个键可能真的很头疼!

完全归功于Radu Cotescu的xkb重新映射说明 – 它们适用于ubuntu 14.04,但它们适用于ubuntu 16.04。

由于各种原因,我仍在运行Ubuntu 12.04,所以我不能代表以后的迭代,但试试这个:

好的,首先,您可能希望将VB主机密钥设置为特定的内容,例如正确的命令或正确的alt密钥……您不能正常使用的东西。 我认为默认是左命令键,这将干扰大多数人的操作。

这可以在VirtualBox本身的首选项中完成(而不是在客户机内部或作为任何特定于机器的设置)。 打开VB应用程序(不是VM窗口),选择VirtualBox-> Preferences-> Input,然后选择“虚拟机”字段/映射列表头部的主机密钥。

好的,在那之后,在Ubuntu客户机内部:

  1. 打开系统设置,然后选择“键盘布局”。
  2. 打开“布局”选项卡。
  3. 您可能只有一个条目 – 英语(美国)或某些条目。 突出显示此项并单击右下方的“选项”按钮。
  4. 打开“Alt / Win Key Behavior”扩展器。
  5. 选择“控制映射到Win键(和通常的Ctrl键)”。

您应该会发现您的Mac命令键现在可以按命令-C,命令-V等运行。

在其他问题中搜索我发现这个工具将Ctrl映射到Macbook键盘CMD左边做CMD + C或CMD + V或其他:

安装gnome-tweaks应用程序:

sudo apt-get install gnome-tweaks

打开应用程序应用Applications -> Gnome Tweaks并将CTRL映射到WIN(与Mac中的CMD相同)执行此操作:

  1. 键盘和鼠标
  2. 其他布局选项(左超级)
  3. Alt / Win键行为
  4. Ctrl被映射到Win和常用的Ctrl键

使用ubuntu-18 VM在OSX VirtualBox中享受CMD + C or CMD + V

在使用Plasma 5的Kubuntu 18.04的情况下,对我有用的是(在系统设置/输入设备/键盘中)将硬件设置为’104-key generic’,并将布局设置为’english(macintosh)’

这取决于您用于运行虚拟机的软件。 例如,我使用VMWare Fusion在我的Mac上运行Ubuntu并实现你想要的,我去VMWare Fusion的“设置”并在特定的虚拟机中设置我想要的键映射(我可以有多个设置,一个对于每个VM)。

我从未使用VirtualBox,但我很确定你可以在VirtualBox的设置中做到这一点。