为什么我对 xkb 的修改不起作用?

Spa*_*awk 7 kde xorg keyboard-layout internationalization xkb

精简版

目前,AltGr+-产生 ¥。我希望它产生一个破折号。在 中/usr/share/X11/xkb/symbols/us,我用“endash”替换了所有出现的“yen”并重新启动,但这没有任何区别。

作为记录:

$ setxkbmap -query
rules:      evdev
model:      pc104
layout:     us
variant:    altgr-intl
options:    lv3:ralt_switch_multikey,numpad:pc
Run Code Online (Sandbox Code Playgroud)

更长的版本

我最初是从查看 开始的/usr/share/X11/xkb/symbols/us,其中包含一个标记为 的部分xkb_symbols "altgr-intl" {。本节包含include "us(intl)"include "level3(ralt_switch)",但没有提及AE11(这是 的键码-)。

标记为xkb_symbols "intl" {contains的部分key <AE11> { [ minus, underscore, yen, dead_belowdot ] };,因此我yen将 AltGr 位置中的here修改为endash. 我重新启动,这没有什么区别,所以我做了上面的蛮力方法(然后重新启动)。

更多疑难解答

如果我设置了setxkbmap -layout us -variant macAltGr+-会按预期产生一个短划线(并在本xkb_symbols "mac" {节中定义)。

我也尝试在和部分中交换q和,但是重新启动后此更改没有做任何事情。我也尝试选择布局,但这也没有效果。wxkb_symbols "basic" {xkb_symbols "intl" {setxkbmap -layout usbasic

Spa*_*awk 9

解决办法是删除缓存的xkb配置/var/lib/xkb/*.xkm,然后重启。

有些人抱怨他们无法“在 X 下一次启动时(但只有一次)”使用他们的键盘,尽管我完全没有这样的问题。

感谢 KDE 论坛上的 bcooksley提供了答案