我的空格键按钮不再工作,所以我想将其行为更改为另一个键来模拟空格按钮按下,那么如何将空格按钮映射到右边的 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/sh
tab 键作为空格,我就能做到这一点。