问题描述
谁能告诉我如何将Super
(左)键重新映射到Ctrl
键?
我的意思是Super
(左)应该用作Ctrl
键。
最佳方案
要对键盘进行重大更改(包括重新映射字符和更改修饰符),您需要使用xmodmap实用程序-请参见man xmodmap
。有两种方法可以执行更改:
-
从命令行
xmodmap -e "your commands"
-
或将命令写入
.xmodmaprc
之类的文件,然后在您的登录项或.bashrc中执行xmodmap .xmodmaprc
如果您将文件命名为
~/.xmodmap
,它将在登录时自动执行。
现在的命令
您要做的是一个two-step进程。首先,从其修改器取消映射Super,然后将其映射到控件。
-
在终端窗口中运行
xmodmap -pm
以获取绑定修饰符的列表。在我的机器(可能是您的机器)上,Super称为mod4
。Super_L
和Super_R
是单独的键,它们输出相同的修饰符。现在,您可以从中取消映射修改器。运行xmodmap命令(使用上述方法之一)
remove mod4 = Super_L
现在,物理密钥在内部仍称为Super_L,但它没有任何作用。
-
现在,只需重新映射即可。运行xmodmap命令:
add control = Super_L
如果要稍后撤消此操作,只需使用适当的参数运行相同的命令。
没有Super_R?
xmodmap -pm的输出可能会给您几个名为Super_L的键,但没有一个名为Super_R的键。如果是这样,您现在将有几个额外的键分配给Control,但没有一个分配给Super。您必须重命名一个密钥。 (注意:它可能会给您几个Super_L和至少一个Super_R。这很好。)
表中的键名旁边都有一个十六进制数字。该数字是键盘上按键的物理键码(可能因型号而异)。如果您需要将一个Super_L更改为Super_R,请首先找到要与Super_R关联的键码(不确定哪个是正确的键吗?运行xev
,然后点按两次正确的Super。在输出迷宫中的某个位置是“键码= 133”(具有不同的数字)。运行xmodmap命令
keycode 133 = Super_R
重命名密钥,然后
add mod4 = Super_R
分配给超级
次佳方案
命令行:
xmodmap -e "remove mod4 = Super_L"
xmodmap -e "add control = Super_L"
或放入~/.Xmodmap
以在启动时激活:
remove mod4 = Super_L
add control = Super_L
第三种方案
在Ubuntu上,您可以编辑/etc/default/keyboard
并设置:
XKBOPTIONS = “altwin:ctrl_win”
哪一个:
Ctrl is mapped to Win keys (and the usual Ctrl keys)
阅读man 5 keyboard
了解更多信息。通过执行以下操作,可以找到系统上所有可能的选项组合:
grep alt /usr/share/X11/xkb/rules/evdev.lst | grep win
第四种方案
如果要使用GUI:
-
安装/打开Gnome调整
-
点击
Keyboard & Mouse
-
点击
Additional Layout Options
-
展开
Ctrl position
-
选择
Swap Left Win with Left Ctrl