我有一台带有法语 azerty 键盘的笔记本电脑,当我安装 Ubuntu 时,我选择使用 azerty 布局,但除此之外,整个系统都以英文设置。
然后我尝试插入我的外接键盘,即 qwerty 键盘。我尝试添加英语美国国际输入源。当我切换到该输入源时,使用新布局可以正确输入普通文本,但是对于至少 2 个非常重要的应用程序(vscode 和 intellij idea),键盘快捷键会使用 azerty 布局进行解释。键盘快捷键在 chrome 和 Firefox 中可以正确解释
我尝试在 gnome GUI 中更改输入源的顺序,但快捷方式始终是英文的!
基本上,看起来 intellij 和 vscode 以及其他一些应用程序中的快捷方式始终只在第一个布局上,并且不受布局更改的影响。
感觉就像存在不同层的输入布局或不同的方式来监听应用程序的击键,而 gnome 输入源切换器“忘记”更改其中一个层/方法...
以下是我的“地区和语言”部分:
这是语言支持对话框:
/etc/vconsole.conf
尽管我认为内容无关紧要
KEYMAP=fr
内容/etc/default/keyboard
(在我看来是正确的)
XKBLAYOUT=fr,us
BACKSPACE=guess
XKBVARIANT=oss,intl
的结果gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'fr+oss'), ('xkb', 'us+intl')]
的结果gsettings get org.gnome.desktop.input-sources per-window
false
有点奇怪的是setxkbmap
setxkbmap -query -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: pc104
layout: fr,us,us
variant: oss,intl,
options: compose:caps,grp:alt_caps_toggle,eurosign:e
Trying to build keymap using the following components:
keycodes: evdev+aliases(azerty)
types: complete
compat: complete
symbols: pc+fr(oss)+us(intl):2+us:3+inet(evdev)+group(alt_caps_toggle)+compose(caps)+eurosign(e)
geometry: pc(pc104)
rules: evdev
model: pc104
layout: fr,us,us
variant: oss,intl,
options: compose:caps,grp:alt_caps_toggle,eurosign:e
注意有一个额外的us
布局,我不知道它来自哪里
ibus-setup
(因为我从 mac 切换到 ubuntu,但我确实缺少一个好的表情符号选择器,因此尝试使用 ibus,但我发现选择器有所欠缺)
以防万一:locale
说
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=fr_FR.UTF-8
LC_TIME=fr_FR.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=fr_FR.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=fr_FR.UTF-8
LC_NAME=fr_FR.UTF-8
LC_ADDRESS=fr_FR.UTF-8
LC_TELEPHONE=fr_FR.UTF-8
LC_MEASUREMENT=fr_FR.UTF-8
LC_IDENTIFICATION=fr_FR.UTF-8
LC_ALL=
所以是的,我的系统显示英文文本,但使用法语数字、日期和货币格式,因为我已经习惯了。
我不愿意采取如下解决方案:
- 禁用 gnome 键盘布局守护进程
- 在 ~/.profile 中强制使用 setxkbmap 命令,因为这意味着很容易在
.profile
各个系统/gnome 文件之间创建不同的配置(例如,如果我稍后通过 GUI 添加第三个输入源,我必须记得返回并更改 .profile)
我无法在整个子树中找到任何引用xkb
。我的主目录中没有 .xinitrc 或 .xinputrc。layout
/etc/X11
让 intellij 和 vscode 尊重 gnome 中当前选择的布局的正确方法是什么?
- 编辑 -
对于 vscode 部分,这不是同一个问题https://github.com/microsoft/vscode/issues/23690
使用选定的布局启动 vscodeazerty
仍然可以使用qwerty
快捷方式(其中 ctrl+A 最终关闭窗口)
--编辑2--
此问题的正确 vscode 问题是https://github.com/Microsoft/vscode/issues/24166