在 Xorg 下,我~/.Xmodmap
为了能够分别使用右键Ctrl
和a
, u
, o
(以及Shift
大写字母)输入德语变音符号(即 äüö):
remove Control = Control_R
keycode 105 = Mode_switch
keysym e = e E EuroSign
keysym c = c C cent
keysym a = a A adiaeresis Adiaeresis
keysym o = o O odiaeresis Odiaeresis
keysym u = u U udiaeresis Udiaeresis
keysym s = s S ssharp
我还没有找到一种方法可以在 Wayland 下使用xkb
.到目前为止,我只设法将键盘变体设置为altgr-intl
,然后我可以使用右Alt
+q
来获得 ä。
由于我也在使用 Sway,因此我不能使用Alt
+ Shift
+q
作为大写版本,因为在 Sway 中这是关闭窗口的快捷方式 - 而且我不想重新映射它。
那么,我该如何将元音符号分别放在右侧 - Ctrl
+ a
、u
、o
,就像我之前在 Xorg 下使用过的那样?
答案1
此解决方案由 GitHub 用户 RedSoxFan 提供使用Alt Gr和/或Caps lock制作变音符号并在 Wayland / Sway 下工作。您将获得大写变音符号Shift。解决方案是使用自定义键盘布局:
将以下内容保存到$HOME/.config/xkb/symbols/us-german-umlaut
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us(altgr-intl)"
include "level3(caps_switch)"
name[Group1] = "English (US, international with German umlaut)";
key <AD03> { [ e, E, EuroSign, cent ] };
key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
key <AC02> { [ s, S, ssharp ] };
};
然后在你的 sway 配置中,使用input type:keyboard xkb_layout us-german-umlaut
答案2
我不知道如何实现你的目标精确的请求,但您可以将“撰写”键分配给 R-Ctrl,从而获得类似的结果。
在 Gnome 中,您可以使用 gnome-tweaks 工具来做到这一点。我不记得肉桂,但我确信有办法,因为我也用过它。 (我不确定其他 DE,而且 - 和你一样 - 我对 Wayland 不太熟悉)。
然后您可以输入R-Ctrl
"
A
以获得 ä 等。请注意,这是一个序列,而不是和弦:您输入R-Ctrl
,然后 "
,然后 A
。
它不像您以前的解决方案那么方便快捷,但它更灵活,并且可以让您访问许多其他奇特字符,例如 ø æ ⋄ → € ° · … ´ ≠
答案3
这实际上在所有“普通”Linux 风格下都非常简单。
找到您当前键盘正在使用的“符号”文件。
我最近刚刚购买了一台 Dell Insipiron 3780,并与美国国际键盘一起订购 - 该键盘的 5 上有欧元符号。我还使用无线 Logitech 无线 KB/鼠标组合型号 Y-R0042。 5 上有欧洲键(位于 5 的右下角),但其他方面看起来就像普通的美式键盘。
我选择了“英语(美国、欧元 5)“ 键盘布局。
这个布局基本上是在文件中定义的/usr/share/X11/xkb/symbols/us
您可以看到该文件的语法依赖于继承(由于缺乏更好的词)已定义的键盘的能力,因此在我的例子中,“英语(美国,欧元为 5)继承自“英语(美国)”,其中直接在其上方定义。
在该定义中,您可以看到所有“正常”字母通过它们在键盘上的位置被定义(或者可能被识别为更好的单词)。
我所做的就是编辑实际重要的四行,并将 ä,ü,ö,ẞ 添加到相应的键中,在我看来,这些键是现有的键 a,u,o,s
然后,通过按住“right-alt”(或可能的“Alt Gr”)键并输入对应的英文字母来访问这些内容。
因此,这是我对四行所做的编辑的结果(我向每行添加了最后两个元素(例如 udiaeresis、Udiaeresis),之前它们是空的):
key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
key <AC02> { [ s, S, U00DF, NoSymbol ] };
您必须通过“sudo”(以 root 身份)编辑它。保存后,您将必须重新加载键盘,我只是注销并重新登录,然后 Shazam !
这是迄今为止我见过的最简单的解决方案。我建议您先备份原始文件。