当我在控制台(不是终端模拟器)中时(使用Ctrl+ Alt+后F_,AltGr+key组合不起作用。
我正在使用捷克语键盘布局(与许多布局一样)将各种特殊字符映射到AltGr+key组合(我相信有时称为死键)。例如,我可以|
通过输入AltGr+ w(AltGr是右Alt)来编写。
这在 DE(在我的例子中是 GNOME Shell)中完美运行,但在 Linux 控制台中不起作用。有什么建议如何修复它吗?捷克语布局缺少许多重要的键(例如>
),因此在终端中工作有点不可能。我使用带有最新更新的 Fedora 25。
编辑:我刚刚在我的第二台装有 Fedora 25 的电脑上尝试过(但从 F24 升级,仍然使用 X11 而不是 Wayland),它工作正常。
输出dumpkeys | grep -e 'AltGr\|Alt'
:
keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt
keycode 100 = AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr
keycode 119 = AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock AltGr_Lock
输出dumpkeys | grep -ie 'AltGr' | sed -n '1,5p; 50,55p'
:
altgr alt keycode 2 = Meta_one
shift altgr alt keycode 2 = Meta_exclam
altgr control keycode 4 = Escape
altgr alt keycode 4 = Meta_three
shift altgr alt keycode 4 = Meta_three
shift altgr alt keycode 52 = Meta_greater
altgr control keycode 53 = Delete
altgr alt keycode 53 = Meta_slash
shift altgr alt keycode 53 = Meta_question
altgr control keycode 59 = F1
altgr alt keycode 59 = Console_1
输出localectl status
:
System Locale: LANG=en_US.UTF-8
LC_NUMERIC=cs_CZ.UTF-8
LC_TIME=cs_CZ.UTF-8
LC_MONETARY=cs_CZ.UTF-8
LC_PAPER=cs_CZ.UTF-8
LC_MEASUREMENT=cs_CZ.UTF-8
VC Keymap: cz-us-qwertz
X11 Layout: cz,us
X11 Variant: ,
答案1
在切换到 Gnome 桌面后,我遇到了看起来同样的问题。但是像第一个答案中那样设置任何键盘映射都没有帮助。显然 Gnome 将 AltGr 映射到 Alt,这可以通过以下方式更改
gsettings set org.gnome.desktop.input-sources xkb-options "['mode_switch:ralt_rctrl']"
答案2
我的问题的解决方案是运行localectl --no-convert set-keymap cz
.
这会将 VC Keymap 从 cz-us-qwertz 更改为似乎没有定义AltGr这会将 VC Keymap 从 cz-us-qwertz 更改为所示,这里。
答案3
我在 KDE5 中使用波兰布局(这并不重要)并且遇到了同样的问题;使用左或右 alt (altrg) 作为修饰符来选择第三级,行为不一致:
$ plasmashell --version
plasmashell 5.27.6
$ kf5-config --version
Qt: 5.15.10
KDE Frameworks: 5.108.0
kf5-config: 1.0
我不得不取消选择“Meta 映射到 Win“系统设置中的高级键盘设置下的“Alt 和 Win 行为”下的选项。这对我的特殊情况有帮助。