如何将键盘上的一个键映射到另一个键?

如何将键盘上的一个键映射到另一个键?

我的空格键按钮不再工作,所以我想将其行为更改为另一个键来模拟空格按钮按下,那么如何将空格按钮映射到右边的 alt/windows 键???

答案1

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

  • 通过命令行

    xmodmap -e "your commands"
    
  • 或者将命令写入 .xmodmaprc 之类的文件,然后在登录项或 .bashrc 中使用以下命令执行它

    xmodmap .xmodmaprc
    

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

Alt 和 Super(Windows 键)是修饰键,对系统有特殊作用。您需要先取消这些键的修饰键映射,然后才能重新映射其他键。空格键被视为常规键。

取消映射修饰符

打开一个终端窗口(Ctrl-Alt-T如果您不熟悉的话)。

运行该命令xmodmap -pm以获取系统上的修饰键列表。在输出中,最左边的列是系统可用的修饰键列表。其他列按 列出与这些修饰键绑定的键keysym (keycode)。例如,我的输出中有一行是

mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)

键码对应于物理键,并且(假设)不同键盘之间可能不同。键符是键的“名称”。如果键是可打印字符,则名称对应于打印的字符。

现在,您已经了解了取消键与相应修饰键映射所需的一切。我假设我们正在使用 Alt_R。

运行 xmodmap 命令(通过顶部的方法之一)

remove mod1 = Alt_R

重新映射空格键

接下来我们需要知道空格键是什么。xmodmap -pke在终端窗口中运行。这将打印出键盘上每个键的映射。四五个屏幕中的某个地方是对空格键的引用。我们需要它的名称才能将键映射到它。

剧透警告:空格键被命名为space

我们仍然有一个名为 Alt_R 的键,但它没有任何作用。我们可以使用它的名称将其重新映射到空格键。运行此 xmodmap 命令:

keysym Alt_R = space

测试这些时可能会发生这种情况,您已经更改了 Alt_R 的名称。也许您不小心将其重新映射到字母“a”。您不想将“a”重新映射到其他内容,因为您仍然需要具有该名称的键之一。如果您最终遇到这种情况,您仍然可以通过其键码引用 Alt_R。请记住,在我的键盘上这是 0x6c。对您来说可能有所不同。您可以使用此 xmodmap 命令来更改它:

keycode 0x6c = space

祝你好运!

答案2

pconley 的答案很有用,但只有在解决了无法生成空格字符的直接问题之后才有用。六个月后回到墨西哥的家后,我发现 b、v、z、空格和引号键没有响应,于是输入 ,然后使用/?in/shtab 键作为空格,我就能做到这一点。

相关内容