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


28

我在Mac上的VirtualBox中使用Ubuntu。当我频繁切换时,我想使用相同的快捷方式。请,有人知道如何在Ubuntu上拥有与Mac上相同的快捷方式吗?具体来说,我想复制,粘贴,全选... ...与Cmd + C,Cmd + V,Cmd + A,...(即使在终端中-无需Ctrl + Shift,仅按Ctrl)一起使用。

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


Cmd键是否可以替代Ctrl或Alt?
赛斯

如果我没记错的话,Cmd等于ctrl。
卡兹·沃尔夫

2
cmd等于Windows功能键(而cmd键位于空格键旁边)。大多数时间在ctrl和alt之间。
velop

Answers:


8

您不能添加自定义快捷方式吗?如果这不可能或不起作用,则可能需要更改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

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


2
这些是解决vmbox内部问题的解决方案。您可能可以通过在vmbox中设置键码交换表来交换某些键码,但我对vmbox没有任何经验
Akisame

这与我在Linux上获得Mac绑定所完成的工作非常接近。但是,将其xte 'key Home'绑定到.xbindkeysrc文件中的任何击键时,似乎都不起作用。我尝试过类似“ Shift + i”的变体。我也通过执行“ sleep 15 && xte'key Home”(切换到gedit并查看家庭作业)来看到它的工作。当我使用“ Alt + Left”进行家庭设置时,得到的最大反馈是闪烁对此有任何帮助吗? gist.github.com/Kikketer/658d89661a044121279afbba04a511fa
克里斯

8

无需使用xbindkeys即可在Ubuntu上实现类似于OSX的键盘映射。这是一个内置选项:

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

7
Keyboard Layout Settings在Ubuntu 14.0.4上看不到
chovy

这不适用于VirtualBox。当我尝试复制/粘贴时,我得到的只是一个缩小的窗口。
chovy

大声笑,在花了很多时间尝试所有其他解决方案之后,这个解决方案非常简单并且可以立即使用。(VirtualBox 5.0.4中的Ubuntu 14.04.3 LTS 64位)。谢谢
Allisone

在virtualbox上,这对我不起作用。
彼得·布鲁克斯

3
这个答案显然不再适用于较新版本的Ubuntu。无论2014年使用的是最新版本的Ubuntu,它都可以正常工作。
boulder_ruby

3

对于任何使用较新版本的Ubuntu困扰此问题的人,这是一个更新的答案。

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

这是我修复它的方法:

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

1
这有什么作用?例如,Macintosh上的控制键与普通键盘在同一位置。由于ctrl-c / v仍保留为系统默认的复制和粘贴命令,因此无法回答重新映射这些系统范围内的快捷方式的原始问题,因此它类似于Mac。
Coljac

2

我使用的是Ubuntu 16.04,VirtualBox 5.1.22,但这些答案对我都不起作用- 不幸的是,包括David Brower在内。

这是使我的OSX Command左键(永久!)起作用的方法:

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

警告词:除非您真的知道自己在做什么,否则我将避免通过xkb一次进行多个更改,因为同时错误地映射了几个键可能真是令人头疼!

完整感谢Radu Cotescu提供的xkb重新映射说明-适用于ubuntu 14.04,但适用于ubuntu 16.04。


在执行此操作之前,请确保已拍摄快照!幸运的是,我有另一个目的,这样做之后,Ubuntu无法正常启动。我回复了,它又开始工作了。我用的是18.04。
汤姆(Tom)

2

在搜索其他问题时,我发现此工具可将Ctrl映射到Macbook键盘CMD Left上,以执行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键

享受CMD + C or CMD + V使用Ubuntu-18 VM在OSX的VirtualBox。


工作了。<filler>
skwny

这使我失去了使用Win / Apple键的能力。相反,我做了步骤3和4如下:(3) Ctrl position, (4) Swap Left Win with Left Ctrl
Turgs

0

由于各种原因,我仍在运行Ubuntu 12.04,因此我不能再说以后的迭代了,但是尝试一下:

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

可以在VirtualBox本身的首选项中完成此操作(而不是在来宾计算机内部或作为任何特定于计算机的设置)。在打开VB应用程序(不是VM窗口)的情况下,选择VirtualBox-> Preferences-> Input,然后在“ Virtual Machine”字段/映射列表的开头选择主机密钥。

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

  1. 打开系统设置,然后选择键盘布局。
  2. 打开布局标签。
  3. 您可能只有一个条目-英语(美国)或类似名称。突出显示它,然后单击右下角的“选项”按钮。
  4. 打开“ Alt / Win Key行为”扩展器。
  5. 选择“控件已映射到Win键(和通常的Ctrl键)”。

您应该发现Mac命令键现在可以按命令-C,命令-V等使用。


0

对于带有Plasma 5的Kubuntu 18.04,对我有用的是(在系统设置/输入设备/键盘中)将硬件设置为“ 104键通用”,布局设置为“英语(macintosh)”


-1

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

我从未使用过VirtualBox,但我很确定您可以在VirtualBox的设置中执行此操作。

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.