德语变音符号:Windows 键 + a/o/u/s

德语变音符号:Windows 键 + a/o/u/s

我使用的是美式键盘布局,但偶尔需要输入德语变音符号。到目前为止,我使用了 .Xmodmap,其定义如下

keycode 133 = Mode_switch NoSymbol Mode_switch
keycode  38 = a A adiaeresis Adiaeresis aacute Aacute
keycode  39 = s S ssharp ssharp ssharp section

我可以通过 Windows 键加上 a/o/u/s 来输入变音符号和尖音 s。我怎样才能在新的 xkb 系统(配置文件)中实现完全相同的行为(真的习惯了……)/usr/share/X11/xkb/symbols/pc。它看起来比 Xmodmap 还要复杂。

我将不胜感激任何帮助。

答案1

在尝试添加我自己的本地 xkb/symbols 文件几次失败后(请参阅https://askubuntu.com/a/896298/883344https://askubuntu.com/a/896297/883344),我寻求解决方案https://stackoverflow.com/a/45042841/3852630. 通过运行

% setxkbmap -query

我看到我当前的布局是us。我把这个布局转储到我自己的文件中并复制一份

% mkdir $HOME/XKB
% cd $HOME/XKB
% xkbcomp -xkb $DISPLAY us.xkb
% cp us.xkb us-altgr-umlaut.xkb

并修改了副本,如下所示

% diff us.xkb us-altgr-umlaut.xkb
1224,1225c1224,1225
<         type= "ALPHABETIC",
<         symbols[Group1]= [               u,               U ]
---
>         type= "FOUR_LEVEL_ALPHABETIC",
>         symbols[Group1]= [               u,               U,      udiaeresis,      Udiaeresis ]
1232,1233c1232,1233
<         type= "ALPHABETIC",
<         symbols[Group1]= [               o,               O ]
---
>         type= "FOUR_LEVEL_ALPHABETIC",
>         symbols[Group1]= [               o,               O,      odiaeresis,      Odiaeresis ]
1244,1245c1244,1245
<         type= "ALPHABETIC",
<         symbols[Group1]= [               a,               A ]
---
>         type= "FOUR_LEVEL_ALPHABETIC",
>         symbols[Group1]= [               a,               A,      adiaeresis,      Adiaeresis ]
1248,1249c1248,1249
<         type= "ALPHABETIC",
<         symbols[Group1]= [               s,               S ]
---
>         type= "FOUR_LEVEL_SEMIALPHABETIC",
>         symbols[Group1]= [               s,               S,          ssharp,          ssharp ]

我编写了一个小的 shell 脚本,它位于我的搜索路径中的某个位置,其中包含以下行

xkbcomp -w 0 $HOME/XKB/us-altgr-umlaut.xkb $DISPLAY

每当我想切换到带有德语变音符号的布局时,我都会运行此脚本。我通过以下方式切换回默认键盘映射:

setxkbmap us

正如我在上面的评论中提到的,我现在使用 AltGr 将 a/o/u/s 切换为 ä/ö/ü/ß(决定重新编程我的大脑以使用 AltGr 而不是 Windows 键,后者似乎在 Gnome 3 桌面中有特殊含义)。如所述https://blog.florianheinle.de/englische-tastatur-umlaute(德语)可以使用 AltGr 进行切换,方法是启动gnome-tweaks,然后转到Keyboard&Mouse -> Additional Layout Options -> Key to choose the 3rd level,并选择right alt

当然,另一种方法是修改us中的文件/usr/share/X11/xkb/symbols,但下次更新时可能会被覆盖。无论如何,这将是diffus文件和旧文件(同名)之间的:

26c26
<     key <AD07> {  [     u,    U, udiaeresis, Udiaeresis ] };
---
>     key <AD07> {  [     u,    U       ]   };
28c28
<     key <AD09> {  [     o,    O, odiaeresis, Odiaeresis ] };
---
>     key <AD09> {  [     o,    O       ]   };
33,34c33,34
<     key <AC01> {  [     a,    A, adiaeresis, Adiaeresis ] };
<     key <AC02> {  [     s,    S, ssharp, ssharp ] };
---
>     key <AC01> {  [     a,    A       ]   };
>     key <AC02> {  [     s,    S       ]   };

相关内容