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

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

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

  • 要么从命令行

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

     xmodmap .xmodmaprc 

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

Alt和Super(Windows键)是修饰符,并且特别针对系统。 在重新映射其他任何内容之前,需要从修改器中取消映射键。 空格键被视为常规键。

取消映射修饰符

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

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

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

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

现在,您可以从相应的修改器中取消映射键所需的内容。 我假装我们正在使用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 

祝好运!