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

Bla*_*ock 8 keyboard keyboard-layout 12.04

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

pco*_*ley 10

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

Alt 和 Super(Windows 键)是修饰符,对系统有特殊的作用。在您可以重新映射其他任何东西之前,需要从它们的修饰符中取消映射键。空格键被视为常规键。

取消映射修改器

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

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

mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
Run Code Online (Sandbox Code Playgroud)

键码对应于物理键,并且可以(假设)因键盘而异。keysym 是键的“名称”。如果键是可打印字符,则名称对应于打印的字符。

现在您拥有了从对应的修饰符中取消映射键所需的条件。我将假装我们正在使用 Alt_R。

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

remove mod1 = Alt_R
Run Code Online (Sandbox Code Playgroud)

重新映射空格键

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

剧透警报:空格键被命名 space

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

keysym Alt_R = space
Run Code Online (Sandbox Code Playgroud)

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

keycode 0x6c = space
Run Code Online (Sandbox Code Playgroud)

祝你好运!