如何在Ubuntu上制作键盘快捷键(如macOS)?


12

我已经看到很多与此有关的问题,但它们似乎都对键进行了重新映射,而不是实际的macOS行为。

我的主要用例是“分割”快捷方式:例如,我想要Super+ C复制文本,并Ctrl+ C将SIGINT发送到当前程序。

在这种情况下,无法进行简单的重新映射或交换SuperCtrl

我发现mac的行为非常实用,因为所有最常见的快捷方式都使用Super,而著名的复制快捷方式并不与著名的SIGINT快捷方式重叠。

大多数终端应用程序会对Ctrl-*快捷方式做出反应,并且它们大多与“标准”快捷方式重叠。在GNOME Terminal中,我们必须按Ctrl+ Shift+ C复制文本,而在其他应用程序(如Firefox)中,则使用Ctrl+ C。与Super+ 相比,这非常麻烦且不一致C


想指出关于askubuntu的另一个答案:askubuntu.com/questions/521202/…–
Gautam,

Answers:


0

您可以使用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:您还可以使用其他Windows按钮。不知道该怎么做。


这使得Ctrl-C和Super-C都发送^C到外壳。我希望其中之一表现得像复制。测试在基本操作系统
贝努瓦Duffez

0

要创建新的快捷方式并删除旧的快捷方式,只需进入系统设置>>键盘>>快捷方式。在这里,您可以看到所有的快捷方式,进行编辑,删除和创建新的快捷方式。


0

以下生活在我的生活中$HOME/.uxSwapCapsLock-and-Ctrl。每当我登录并在给定系统上的Shell中启动交互式会话时,它都会有效地将CapsLock和Ctrl键的功能交换给任何Linux系统上正在使用的Shell。我确定您可以了解要修改的相关键名,并获得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
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.