重新分配系统修饰键

重新分配系统修饰键

在 macOS 中,“系统修饰键”(用于复制、粘贴等全系统操作系统快捷键的键)是cmd,它与 键是分开的ctrl。这意味着cmd键可用于打开新的浏览器选项卡和全系统复制/粘贴等操作,而 键ctrl可用于以 emacs 样式导航文本(例如,ctrl-a转到操作系统中任何位置的行首)。

自从切换到 Debian 后,我就因为没有这种分离而感到非常沮丧。这意味着我的肌肉记忆ctrl-a会转到行首,而不是选择所有文本(就像cmd-a在 Mac 上一样)。

有没有办法将ctrl按键的功能重新分配给其他按键?这并不意味着重新映射ctrl到键盘上的其他按键;我仍然希望ctrl它存在,但我不想将它用于复制/粘贴之类的操作,我希望使用其他修饰键来执行此操作,并让其ctrl自由用于 emacs 样式的命令。

我知道在所有情况下这可能都很困难,但即使我能让它在 Chrome、终端和一些 IDE 中运行,那就足够了。

答案1

过去几天我发现可以适应这种用例的一件事是自动键。它允许您(除其他外)在特定组合键上运行 Python 脚本来修改其操作。这可用于在 Linux 中模拟 macOS 键盘(其中ctrl是其自己的键,cmd在这种情况下可以被视为alt或 的同义词win)。

例如,为了更改ctrl-a为转到行首(emacs 样式),并用于alt-a全选,我编写了以下脚本:

import re

if re.match('.*Gnome-terminal', window.get_active_class()):
  keyboard.send_keys("<ctrl>+a")
else:
  keyboard.send_keys("<home>")

这允许ctrl-a在终端中保留其行为,但所有其他程序(例如 Chrome 和 IntelliJ)都会转到行首。在 AutoKey 中,它与ctrl-a按下该快捷键绑定,并在按下时运行。

另一个示例是使用alt-w关闭标签页(例如在 Chrome、IntelliJ 和终端中)。可以使用绑定到以下脚本来完成此操作alt+w

import re

if re.match('.*(Gnome-terminal|jetbrains-clion)', window.get_active_class()):
  keyboard.send_keys("<ctrl>+<shift>+w")
else:
  keyboard.send_keys("<ctrl>+w")

答案2

  • Command + 空格
  • 搜索键盘(您也可以从设置->键盘进入)
  • 选择子选项卡 - 键盘
  • 点击修饰键
  • 随意更改。希望这有帮助。这是修饰键的屏幕截图!!

修饰键

相关内容