如何将超级(左)键重新映射到控制键

San*_*ndy 35 keyboard-layout

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

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

pco*_*ley 34

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

现在命令

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

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

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

    remove mod4 = Super_L
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    add control = Super_L
    
    Run Code Online (Sandbox Code Playgroud)

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

没有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
Run Code Online (Sandbox Code Playgroud)

重命名密钥,然后

add mod4 = Super_R
Run Code Online (Sandbox Code Playgroud)

将其分配给 Super。


小智 20

命令行:

xmodmap -e "remove mod4 = Super_L"
xmodmap -e "add control = Super_L"
Run Code Online (Sandbox Code Playgroud)

或者~/.Xmodmap在启动时输入激活:

remove mod4 = Super_L
add control = Super_L
Run Code Online (Sandbox Code Playgroud)


Mit*_*tar 5

在 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
Run Code Online (Sandbox Code Playgroud)


Ric*_*ich 5

如果您想使用 GUI:

  1. 安装/打开 Gnome Tweaks
  2. 点击 Keyboard & Mouse
  3. 点击 Additional Layout Options
  4. 扩张 Ctrl position
  5. 选择 Swap Left Win with Left Ctrl