我的键盘配置在哪里/如何真正定义?

我的键盘配置在哪里/如何真正定义?

简洁版本

<alt>-<KEY>是什么决定了在带有 openbox(即没有 KDE、GNOME 等)的 Debian 10 (buster) 上打印哪个符号?


长版

当我输入序列时

<q>
<shift>-<q>
<alt>-<q>
<shift>-<alt>-<q>

我得到输出(例如,在 xterm 或 gvim - firefox 中,只给出 qQqQ)

qQñÑ

现在我对输出特别感兴趣ñÑ,因为我找不到任何定义此行为的配置文件或命令:

$ setxkbmap -print
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us+inet(evdev)+level3(ralt_switch)+terminate(ctrl_alt_bksp)"    };
    xkb_geometry  { include "pc(pc105)" };
};

xkb_symbols行似乎表明符号文件"pc+us+inet(evdev)+level3(ralt_switch)+terminate(ctrl_alt_bksp)"构成了我的布局。然而,这些甚至都不包含ntildeor Ntilde。事实上, 中的符号文件都不/usr/share/X11/xkb/symbols/包含这些字符。我在<alt>-<KEY>和级别上的大多数按键也是如此<shift>-<alt>-<KEY>


附加信息

类似地, 的输出xmodmap -pke就是:

[...]
keycode  24 = q Q q Q
keycode  25 = w W w W
keycode  26 = e E e E
[...]

等等。所以它<alt>-<q>与和分别<shift>-<alt>-<q>给出的观察结果不一致。ñÑ

有趣的是,当我编辑文件/usr/share/X11/xkb/symbols/us(进行备份后)以包含以下内容时:

key <AD01> { [ q, 1, 2, 3]}; 

然后通过 重新加载此配置setxkbmap us,我从序列中得到

<q>
<shift>-<q>
<alt>-<q>
<shift>-<alt>-<q>

输出

q1ñ±

即,<shift>-<KEY>级别受到尊重并且<shift>-<alt>-<q>打印与 相同<alt>-<1>,而<alt>-<q>不受影响。


我尝试过的

# dpkg-reconfigure keyboard-configuration locales

我已经浏览了 xkbcomp、setxkbmap 和许多相关的手册页以及网络上的以下资源(以及其他资源):

  1. https://wiki.archlinux.org/index.php/Xorg/Keyboard_configuration
  2. https://web.archive.org/web/20170825051821/http://madduck.net:80/docs/extending-xkb/
  3. https://www.linuxquestions.org/questions/linux-software-2/what-is-the-difference- Between-mode_switch-and-iso_level3_switch-4175465999/
  4. https://www.in-ulm.de/~mascheck/X11/xmodmap.html

我尝试过 xkbcomp 和 co 的许多组合。 (如我的部分概述在另一个论坛提问)让我假设 xkb 之外的某些程序似乎会覆盖 Shift 和 Alt-Shift 级别上的键盘配置。但我不知道它可能是什么,并且完全陷入困境,并且非常感谢有关此事的任何帮助。


我为什么关心?

我偶然发现这一点的原因是,我想自定义我的键盘布局,以便us轻松访问德语元音变音 (äöü)。以前在 openSuSE 上我可以通过简单地编辑文件来实现这一点/usr/share/X11/xkb/symbols/us

相关内容