我的一个朋友在他的 Windows 上使用德国字母和美国国际 Qwerty 键盘。 Arch Linux 有类似的东西吗?如果不存在,还有其他选择吗?
答案1
setxkbmap us -variant intl
在命令行中输入很好地解决了我的问题。
但谢谢你们的帮助。
答案2
以下是我在 Debian 上的做法(使用X
、xdm
和fvwm
,而不是 Wayland):
可能 X 下的键盘标识为“pc104/us/altgr-int”。
我有一个.Xmodmap
文件,其中内容包括
remove mod4 = Super_L Hyper_L
keysym Super_L = Mode_switch
keycode 34 = bracketleft braceleft adiaeresis Adiaeresis
keycode 35 = bracketright braceright udiaeresis Udiaeresis
keycode 51 = backslash bar odiaeresis Odiaeresis
keycode 21 = equal plus ssharp ssharp
keycode 47 = semicolon colon doublelowquotemark singlelowquotemark paragraph degree paragraph degree
keycode 48 = apostrophe quotedbl leftdoublequotemark leftsinglequotemark dead_acute dead_diaeresis dead_acute dead_diaeresis
这使我可以使用左侧的“Windows”键作为模式开关,以进入äüöÄÜÖß
通常位于德语键盘上的位置以及„“‚‘
中间行。
不需要Alt-Gr(当我尝试使用它时,我总是弄断手指),并且可以Shift按照变音符号的预期工作。
由会话登录时执行的文件中的.Xmodmap
命令读取。xmodmap $HOME/.Xmodmap
~/.xsession
xdm
有很多可能的变体;特别是 Arch Linux 和你朋友使用的显示管理器(无论他安装了什么,或者 Arch 默认使用什么)可能需要稍微不同的文件名或不同的设置。
答案3
Mosvy 的评论setxkbmap 'de(us)'
让我看到了 中的这个条目xkb/symbols/de
。
partial alphanumeric_keys
xkb_symbols "us" {
include "us"
name[Group1]="German (US, with German letters)";
key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
key <AC02> { [ s, S, ssharp, U1E9E ] };
key <AC10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
key <AC11> { [ apostrophe, quotedbl, adiaeresis, Adiaeresis ] };
key <AD03> { [ e, E, EuroSign, EuroSign ] };
key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
key <AD11> { [ bracketleft, braceleft, udiaeresis, Udiaeresis ] };
key <AE03> { [ 3, numbersign, section, section ] };
key <AE11> { [ minus, underscore, ssharp, question ] };
include "level3(ralt_switch)"
};
正如US, with German letters
我们include "us"
所展示的,从技术上讲,这实际上更多的是一种us(de)
布局。
这为您提供了元音变音/分音符号的两种选择:字母“aou”本身或原始位置;'[
。但仅在修饰符之后,此处ralt
.
为了在 qwerty 键盘上流畅地输入德语,变音符号必须位于冒号-引号-左括号键上。但这些也很重要,因此应该可以通过修饰符访问它们。除非你写的德语对话有很多双引号,否则这应该是最好的妥协。
然后是 Y 和 Z...
我宁愿拥有我所看到的,虽然我需要右侧的元音变音符,但左下角的 Z 对我的干扰要小于通常位置但标记为“Y”的 Z。
所以需要的是一些us(de)
(反之亦然),它基本上是标准的us
,但是冒号键直接生成 aö
等,对于冒号,您使用 AltGr (或其他修饰符)。
加上选项/变体us(de-YZ)
:交换这两个。对于想要以正常方式书写“zu”的人。
一个简单的setxkbmap de
实际上就足以获得元音变音。实际上,它可以让你得到一切,这就是问题所在。字母 A 到 X 和 Punkt und Komma 都可以,所以你可以写得很好,但其他一切都完全乱了。一旦你需要冒号、斜杠或破折号,你就会迷失方向。
对于Linux安慰此行“启用”A-Umlaute:
keycode 30 = +a A Control_a nul adiaeresis Adiaeresis
用于nul
使其匹配Alt
-Shift-Alt
取决于修饰符定义......
我的一个朋友使用德文字母
我真的很想知道以什么方式......听起来他经常使用它们。
答案4
这是一种对我有用的方法(我非常疯狂地改变了我的键盘设置,以便能够在英文键盘上编程,但将元音变音保持在ALT+ a(=ä) 或ALT+ SHIFT+ a(=ä) 上)。
检查键盘布局:
setxkbmap -print -verbose 10
$ setxkbmap -print -verbose 10 Setting verbose level to 10 locale is C Trying to load rules file ./rules/evdev... Trying to load rules file /usr/share/X11/xkb/rules/evdev... Success. Applied rules from evdev: rules: evdev model: pc105 layout: de,us,us variant: ,, Trying to build keymap using the following components: keycodes: evdev+aliases(qwertz) types: complete compat: complete symbols: pc+de+us:2+us:3+inet(evdev) geometry: pc(pc105) xkb_keymap { xkb_keycodes { include "evdev+aliases(qwertz)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+de+us:2+us:3+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
正常的美国键盘布局不起作用与“修饰键或 Mod 键”(键盘上具有特殊功能的键,如SHIFT、ALT、ALT-GR、 ...)。提到这一点的唯一来源:xmodmap - ArchWiki
要更改为“键盘布局 us(intl)”:
setxkbmap -layout 'us(intl)'
再次检查:
setxkbmap -print -verbose 10
Setting verbose level to 10 locale is C Trying to load rules file ./rules/evdev... Trying to load rules file /usr/share/X11/xkb/rules/evdev... Success. Applied rules from evdev: rules: evdev model: pc105 layout: us(intl) Trying to build keymap using the following components: keycodes: evdev+aliases(qwerty) types: complete compat: complete symbols: pc+us(intl)+inet(evdev) geometry: pc(pc105) xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us(intl)+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
现在您可以将更改应用到
.XModmap
您想要的内容(在我的示例中)...如果您没有执行步骤 1. 和 2.,则步骤 3 不会发生任何事情。... keycode 38 = a A a A adiaeresis Adiaeresis ...
要在 .XModmap 中“获取”(进行)更改(活动):
xmodmap .Xmodmap
这些变化不是永久性的。为了使它们永久存在,您必须在启动时执行它们。我使用的是 i3wm,所以我放入了 i3wm-config 文件
" permanent layout: us intl exec_always setxkbmap -layout 'us(intl)' " loading the custom-Xmodmap exec_always sh -c 'sleep 10 && xmodmap ~/.Xmodmap'
用普通的 gnome-ubuntu(而不是 i3wm)做同样的事情,
crone
可以做同样的工作。
PS 编辑帖子后,我意识到你在要求 Arch。我的答案适用于 Ubuntu...我想在 Arch 上也是一样的。