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

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

我在 Mac 上的 VirtualBox 中使用 Ubuntu。由于我经常切换,所以我想使用相同的快捷方式。请问有人知道如何在 Ubuntu 上使用与 Mac 相同的快捷方式吗?

具体来说,我想要复制、粘贴、全选......使用Cmd+ CCmd+ VCmd+ A、......(即使在终端中 - 没有Ctrl+ Shift,只有Ctrl)。

我尝试将键盘布局更改为 Apple Laptop,但没有帮助。

答案1

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

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

答案2

在搜索其他问题时,我发现这个工具可以将 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 键`

CMD + C or CMD + V使用 ubuntu-18 VM 在您的 OSX VirtualBox 中尽情享受。

答案3

您无法添加自定义快捷键吗?如果这不可能或不起作用,您可能需要更改 vmbox 的键绑定。您需要执行以下操作:

安装 xbindkeys

sudo apt-get install xbindkeys

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

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

xbindkeys --defaults

这将打印默认配置文件。因此,如果您想要创建包含默认值的文件,则可以使用:

xbindkeys --defaults > $HOME/.xbindkeysrc

将默认值打印到位于 home 中的名为 .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

答案4

我在 Ubuntu 16.04、VirtualBox 5.1.22 上,这些答案都不适合我 - 包括大卫·布劳尔的很遗憾。

以下是使我的左侧 OSX 命令键正常工作(持续!)的方法:

  1. 首先你需要确保 VirtualBox 没有使用左 ⌘ 作为主机密钥
    • 在 VM 窗口的顶部菜单栏中选择Input > Keyboard > Keyboard Settings..
    • 在设置列表中,找到主机组合键,并将快捷键更改为左⌘以外的其他键(我只是使用了右⌘,因为我从来没有用过它)。
  2. 现在您可以在 VM 环境中使用左 ⌘,使用 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 一次进行多个更改,除非你真的知道自己在做什么,否则同时错误映射几个键可能会让人非常头疼!

全部功劳拉杜·科特斯库对于 xkb 重新映射说明 - 它们适用于 ubuntu 14.04,但它们适用于 ubuntu 16.04。

相关内容