如何在 Ubuntu 上创建像 macOS 一样的键盘快捷键?

如何在 Ubuntu 上创建像 macOS 一样的键盘快捷键?

我已经看到很多关于这个问题的问题,但它们似乎都重映射按键,而不是实际的 macOS 行为。

我的主要用例是“拆分”快捷方式:例如,我希望使用Super+C复制文本,使用Ctrl+C向当前程序发送 SIGINT。

在这种情况下,简单的重新映射或交换SuperCtrl将不起作用。

我发现 Mac 的行为非常实用,因为所有最常见的快捷键都使用Super,而著名的复制捷径不重叠著名的信号情报捷径。

大多数终端应用程序都会对Ctrl-* 快捷键做出反应,而且它们大多与“标准”快捷键重叠。在 GNOME 终端中,我们必须按Ctrl+ Shift+C才能复制文本,而在 Firefox 等其他应用程序中,则使用Ctrl+ 。与+C相比,这相当麻烦且不一致。SuperC

答案1

Ubuntu 20.04,2020 年 6 月

在花了大量时间尝试如何在 Ubuntu 上使用类似 MacOS 的快捷方式后,我发现金头。只需按照指示,对于我使用 Apple 铝制键盘的 20.04 来说,它运行完美。CMD-C/V 可在任何地方复制和粘贴,CTRL-C 等可在终端中使用。

答案2

您可以使用 xmodmap 命令实现:

remove mod4 = Super_L
keysym Super_L = Control_L
add Control = Control_L

将以上行保存为super_as_ctrl.xmodmap。通过执行进行测试

xmodmap super_as_ctrl.xmodmap

要使更改永久生效(重新登录/重启后仍然生效),只需将文件重命名为主.Xmodmap文件夹即可。

(在 Ubuntu 14.x 上测试)

PS:您也可以使用其他窗口按钮。不确定该怎么做。

答案3

要创建新的快捷方式并删除旧的快捷方式,只需转到系统设置>>键盘>>快捷键。您可以在那里查看所有快捷方式,编辑、删除它以及创建新的快捷方式。

答案4

以下内容位于我的 中$HOME/.uxSwapCapsLock-and-Ctrl。每当我登录并在给定系统上的 shell 内启动交互式会话时,它都会有效地交换任何 Linux 系统上使用的任何 shell 的 CapsLock 和 Ctrl 键的功能。我相信您可以了解您尝试修改的相关键名,并通过 xmodmap 引用这些键名,以获得所需的功能。每次我登录并通过 .profile 进行交互式会话时,都会启动此代码,但出于此目的,它位于 .ps1 文件中。

#!bin/bash
xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "remove Control = Control_L"
xmodmap -e "keysym Control_L = Caps_Lock"
xmodmap -e "keysym Caps_Lock = Control_L"
xmodmap -e "add Lock = Caps_Lock"
xmodmap -e "add Control = Control_L"
#End script

这是为了进行交换而进行的 .profile 检查:

if [ -f  "$HOME/.uxSwapCapsLock-and-Ctrl" ]; then
   .  $HOME/.uxSwapCapsLock-and-Ctrl
fi

相关内容