如何重新映射Super(左)键来控制键

谁能告诉我如何将我的超级 (左)键重新映射到Ctrl键?

我的意思是Super (左)应该作为Ctrl键。

要对键盘进行重大更改(包括重新映射字符和更改修饰符),您需要使用xmodmap实用程序 – 请参阅man xmodmap 。 有几种方法可以执行更改:

  • 要么从命令行

     xmodmap -e "your commands" 
  • 或者将命令写入.xmodmaprc文件,然后在登录项或.bashrc中执行

     xmodmap .xmodmaprc 

    如果您将文件命名为~/.xmodmap ,它将在登录时自动执行。

现在的命令

你想要做的是一个两步的过程。 首先从修改器中取消映射Super,然后将其映射到控件。

  1. 在终端窗口中运行xmodmap -pm以获取绑定修饰符的列表。 在我的机器上(可能是你的机器)Super被称为mod4Super_LSuper_R是输出相同修饰符的单独键。

    现在您可以从中取消映射修改器。 运行xmodmap命令(使用上述方法之一)

     remove mod4 = Super_L 

    现在,物理密钥在内部仍被称为Super_L,但它没有做任何事情。

  2. 现在只需重新映射它。 运行xmodmap命令:

     add control = Super_L 

如果您想稍后撤消此操作,只需使用适当的参数运行相同的命令。

没有Super_R?

xmodmap -pm的输出可能会给你几个名为Super_L但没有名为Super_R的键。 如果是这样,您现在有几个额外的键分配给Control,但没有分配给Super。 您必须重命名一个密钥。 (注意:它可能会给你几个Super_L和至少一个Super_R。这很好。)

表中的键名在它们旁边的括号中都有一个hex数。 此数字是键盘上键的物理键码(可能因​​型号而异)。 如果你需要将一个Super_L更改为Super_R,首先要找到你想要与Super_R关联的键码(不确定哪个是正确的?运行xev然后点击右边的Super几次。输出迷宫中的某个地方是“keycode = 133”(使用不同的数字))。 运行xmodmap命令

 keycode 133 = Super_R 

然后重命名密钥

 add mod4 = Super_R 

将它分配给Super。

命令行:

 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被映射到Win键(和通常的Ctrl键)

阅读man 5 keyboard了解更多信息。 您可以通过执行以下操作找到系统上所有可能的选项组合:

 grep alt /usr/share/X11/xkb/rules/evdev.lst | grep win 

试试这个:

 clear Control clear mod4 remove Control = Control_L Control_R remove mod4 = Super_L Super_R add Control = Super_L 

将上面的行放在~/.Xmodmap并执行xmodmap ~/.Xmodmap