在 Ubuntu 上自定义 EurKey

发布: (2026年2月23日 GMT+8 22:53)
5 分钟阅读
原文: Dev.to

Source: Dev.to

此方案已在 Ubuntu 24.04 上测试通过。

当需要输入不同语言时,你可以配置操作系统以使用相应的键位布局。通常,在切换布局时,不仅字母会改变:标点符号和使用 Shift 的键也会变化,你必须不断适应(左括号在哪里?是 Shift 9 还是完全不同的键位?如果按下 L 右侧的键会怎样?等等)。

我最近换用了 ZSA Voyager 可编程键盘,厌倦了不断输入错误的特殊字符以及频繁切换键盘布局。我需要一种单一布局,能够让我输入所有内容!EurKey 可能是答案,但尽管名字叫 EurKey,它并不支持欧洲所有语言。

我需要支持意大利语、英语和德语(这些已被支持)以及波兰语(未被支持)。我还要进行编程。我的解决方案是基于 EurKey 创建一个新的操作系统布局。虽然这不是可移植的方案,但它在大多数情况下让我的使用更轻松。

情况

在我自己的 Ubuntu PC 上

  • 一切正常。

在装有 EurKey 的电脑上

  • 将布局设置为 EurKey。意大利语、德语和英语可用;波兰语不可用。

在没有 EurKey 的电脑上

  • 将语言设置为英语。意大利语、德语和波兰语不可用。

生成的布局

该布局使用 Oryx(ZSA 的配置工具)创建(在其他可编程键盘上也易于复现):

  1. 获取 EurKey 布局(如果需要可以打印),并在 AltGr 层上挑选几个你永远不会使用的键(对我而言,Q 行的前几个键就可以)。
  2. 用你需要的字符覆盖这些键。为每个键决定在按下 AltGr 时应输出什么。

示例键映射

键 + AltGr 将产生
Qą
Wę
Eó
Rć

安装步骤

按照教程(或链接的新版)操作:

1. 创建新的 XKB 符号文件

/usr/share/X11/xkb/symbols/euspecial 中创建以下内容:

default partial alphanumeric_keys modifier_keys
xkb_symbols "basic"  {
    include "eu"

    key  { [ q, Q, aogonek, Aogonek ] };
    key  { [ w, W, eogonek, Eogonek ] };
    key  { [ e, E, oacute,  Oacute  ] };
    key  { [ r, R, cacute,  Cacute  ] };
    key  { [ t, T, zabovedot, Zabovedot ] };
    key  { [ y, Y, zacute,  Zacute  ] };
    key  { [ u, U, nacute,  Nacute  ] };
    key  { [ i, I, lstroke, Lstroke ] };
    key  { [ o, O, sacute,  Sacute  ] };

    include "level3(ralt_switch)"
};

这会改变第一行 Q、W、EO 键的行为。

2. 注册新布局

编辑 /usr/share/X11/xkb/rules/evdev.extras.xml,在 <layoutList> 元素内的现有布局旁添加一个新的 <layout> 部分:

<layout>
    <configItem>
        <name>euspecial</name>
        <description>EurKEY (Special)</description>
        <languageList>
            <iso639Id>en</iso639Id>
        </languageList>
    </configItem>
    <variantList>
        <variant>
            <configItem>
                <name>eu</name>
                <description>EurKEY (Special)</description>
                <languageList>
                    <iso639Id>cat</iso639Id>
                    <iso639Id>dan</iso639Id>
                    <iso639Id>eng</iso639Id>
                    <iso639Id>est</iso639Id>
                    <iso639Id>fao</iso639Id>
                    <iso639Id>fin</iso639Id>
                    <iso639Id>deu</iso639Id>
                    <iso639Id>ell</iso639Id>
                    <iso639Id>gsw</iso639Id>
                    <iso639Id>ita</iso639Id>
                    <iso639Id>lav</iso639Id>
                    <iso639Id>lit</iso639Id>
                    <iso639Id>nld</iso639Id>
                    <iso639Id>nor</iso639Id>
                    <iso639Id>por</iso639Id>
                    <iso639Id>spa</iso639Id>
                    <iso639Id>swe</iso639Id>
                </languageList>
            </configItem>
        </variant>
    </variantList>
</layout>

3. 激活布局

保存文件后,你应该能在键盘布局列表中看到新的 “EurKEY (Special)” 条目。如果没有出现,请重启计算机(或重新加载 XKB 配置)。

现在,你可以在不频繁切换布局的情况下输入意大利语、英语、德语和波兰语字符——包括你映射的特殊字符。

0 浏览
Back to Blog

相关文章

阅读更多 »

编译器是确定性的吗?

2026年2月22日 > Betteridge 说 “no”,对于普通的 developer experience,这个答案大体上是正确的。另外,你完全正确!——我使用了 ChatGPT 来帮助我……