使用 xmodmap 映射键会更改多个键

使用 xmodmap 映射键会更改多个键

我正在运行 Ubuntu 服务器 16.04。不确定这是否重要,但我正在使用将屏幕转发到浏览器XPRA

除了一些令人讨厌的组合键外,所有功能都运行得相当好。我使用的是 GB 键盘,其中 SHIFT 和 Z 键之间有一个带有backslashbar(管道)的键,我们将其称为“条键”。键盘的左上角有一个带有grave和 的键notsign,我们称其为“坟墓键”。

这些密钥在客户端操作系统以及使用 SSH 连接到服务器时都可以正常工作。然而,当我在任何转发的应用程序(例如 xterm)中使用它们时,它们会显示不正确的字符。

“栏键”显示“\”(正确)和“Ø”(不正确,应该是“|”)。

“grave key”显示坟墓“`”(正确)和 notsign“Ø”(正确)

所以我尝试了通常的xev&xmodmap组合来找出键码并映射它们。

当我运行 xev 时,我得到“bar key”的以下输出

backslash (\): keycode 94 
bar (|): keycode 49

以及以下“坟墓钥匙”

grave (`): keycode 49 
notsign (¬): keycode 49

看起来键码 49 上发生了很多事情,它映射到多个物理键。

为了检查事物映射到什么位置,我执行了以下命令

xmodmap -e "keycode 49 = 1 2 3 4 5 6"

当我输入各种键时我得到

\ = is still \ because we didn't remap 94
| = 2
` = 1
¬ = 2 (also 2 ... brilliant)

那么,如果 2 个字符映射到相同的键码/位置组合,我该如何重新映射呢? (我还有其他几个要重新映射,例如 @ key 输出 Q,但让我们先进行第一个)

这是一些额外的诊断信息

~$ setxkbmap -query
rules: evdev
mode: pc105
layout: gb

~$ localectl status
   System Locale: LANG=en_GB.UTF-8
                  LANGUAGE=en_GB:en
       VC Keymap: n/a
      X11 Layout: gb
       X11 Model: pc101

相关内容