我有 Elementary OS,如果应该添加自定义键盘布局就会出现问题,因为目前总机插头键盘使用硬编码布局data/layouts.txt
并且不扫描/usr/share/X11/xkb/rules/evdev.xml
新布局,因此您无法通过 UI 添加自定义键盘布局,因为它没有显示在那里。
我手动将布局添加到layouts.txt,因为该文件的格式简单且易于理解。
数据/布局.txt(我添加的最后一行)
#Czech:cz
Czech (UCW layout, accented letters only):ucw
Czech (US Dvorak with CZ UCW support):dvorak-ucw
Czech (qwerty):qwerty
Czech (qwerty, extended Backslash):qwerty_bksl
Czech (with <\|> key):bksl
Czech (programming):kblayout
现在我可以通过 UI 添加我的布局,但激活后不起作用。
这是什么 gsettings get org.gnome.desktop.input-sources sources
返回我:
[('xkb', 'cz'), ('xkb', 'us'), ('xkb', 'cz+kblayout')]
在部分/usr/share/X11/xkb/rules/evdev.xml在下面,您可以看到它应该已正确配置,但自定义键盘映射不起作用:
<layout>
<configItem>
<name>cz</name>
<shortDescription>cs</shortDescription>
<description>Czech</description>
<languageList>
<iso639Id>cze</iso639Id>
</languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>bksl</name>
<description>Czech (with <\|> key)</description>
</configItem>
</variant>
<variant>
<configItem>
<name>qwerty</name>
<description>Czech (qwerty)</description>
</configItem>
</variant>
<variant>
<configItem>
<name>qwerty_bksl</name>
<description>Czech (qwerty, extended Backslash)</description>
</configItem>
</variant>
<variant>
<configItem>
<name>ucw</name>
<description>Czech (UCW layout, accented letters only)</description>
</configItem>
</variant>
<variant>
<configItem>
<name>dvorak-ucw</name>
<description>Czech (US Dvorak with CZ UCW support)</description>
</configItem>
</variant>
<variant>
<configItem>
<name>kblayout</name>
<description>Czech (programming)</description>
</configItem>
</variant>
</variantList>
</layout>
有趣的是,当我使用setxkbmap kblayout
它时,它可以工作,即使我通过 UI 激活了 kblayout,在键盘布局图我看到键盘映射已正确设置,但是当我按某个键时,给出了错误的字符。