/etc/default/keyboard 被忽略了吗?

/etc/default/keyboard 被忽略了吗?

我使用的是 Ubuntu 22.04.1 (jammy) LTS。我的最终目标是拥有以下键盘布局配置:

  • 美国国际键盘布局(带AltGr死键)和俄语键盘布局;
  • Alt使用+ Shift(切换)和Caps Lock(暂时)在它们之间切换;
  • 以左键Logo作为撰写键。

我得到的行为是我似乎有美国布局,其中一个AltGr在控制台中被忽略。


我的/etc/default/keyboard

BACKSPACE="guess"
XKBLAYOUT="us,ru"
XKBMODEL="pc105"
XKBOPTIONS="compose:lwin,grp:caps_switch,grp:lalt_lshift_toggle,nbsp:level3n,terminate:ctrl_alt
_bksp"
XKBVARIANT="altgr-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
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us+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+inet(evdev)"     };
        xkb_geometry  { include "pc(pc105)"     };
};

输出gsettings list-recursively 'org.gnome.desktop.input-sources'

org.gnome.desktop.input-sources current uint32 0
org.gnome.desktop.input-sources mru-sources [('xkb', 'us+altgr-intl'), ('xkb', 'ru')]
org.gnome.desktop.input-sources per-window false
org.gnome.desktop.input-sources show-all-sources false
org.gnome.desktop.input-sources sources [('xkb', 'us+altgr-intl'), ('xkb', 'ru')]
org.gnome.desktop.input-sources xkb-options ['terminate:ctrl_alt_bksp', 'nbsp:level3n', 'grp:lalt_lshift_toggle', 'grp:caps_switch', 'lv3:ralt_switch', 'compose:lwin']

我已尝试过sudo dpkg-reconfigure console-setupsudo dpkg-reconfigure keyboard-configuration,重启等等。没有效果。

我是不是忘记了什么?

答案1

我不完全确定哪个东西解决了这个问题,但我做了以下事情:

  1. 已移除~/.xinputrc

  2. 用于im-config设置输入法选择为default

  3. 按照此评论的建议去做:Ubuntu 17.10 及更高版本:无法将输入切换快捷键更改为 alt+shift

这似乎解决了切换问题,尽管我无法通过同时按下Caps Lock和来访问我的英语布局的第三级AltGr。但我想,这将是另一个问题,呵呵。

答案2

我在安装 debian-live-12.5.0-amd64-standard (Bookworm) 后遇到了这个问题。我找到的解决方案是在 root 下运行以下命令:

cd /etc/console-setup/
mv ./cached_UTF_8_del.kmap.gz ./cached_UTF_8_del.kmap.gz.backup
setupcon 

这个工作答案已经解释这里

回复:编辑 /etc/default/keyboard 无效

2015 年 11 月 10 日星期二下午 12:38 是的,当然……

脚本 setupcon 负责设置控制台的字体和键盘布局。对于键盘布局,它读取文件 /etc/default/keyboard 并生成输出文件 /etc/console-setup/cached_UTF_8_del.kmap.gz(在我的情况下),其他名称也是可以的。

setupcon 并不总是生成此输出文件,它首先检查 /etc/default/keyboard 是否比 cached_UTF_8_del.kmap.gz 更新。

我的 RetroPie 图像于 2015 年夏季发布,此版本的 cached_UTF_8_del.kmap.gz[ 的时间戳为 2015.3.26。问题是,我试图在“原始”Retropie 上更改布局,但当时还没有互联网连接。硬件时钟的默认值设置为 2014 年的某个日期。

因此,您可以根据需要随时更改 /etc/default/keyboard,由于错误的硬件时钟,它将始终被识别为比 cached_UTF_8_del.kmap.gz 更旧,因此,cached_UTF_8_del.kmap.gz 永远不会被刷新。

快速解决方案:删除您的 cached_UTF_8_del.kmap.gz,强制 setupcon 再次生成它。或者,使用以下方法设置您的日期

代码: 选择全部

日期

我从未使用过原始的 Raspbian 图像,但是,我很奇怪为什么我在谷歌搜索了几个小时后没有找到与此问题相关的内容。难以置信我是第一个遇到此问题的人...

谢谢 lugge!

相关内容