在 Ubuntu 上自定义 EurKey
Source: Dev.to
此方案已在 Ubuntu 24.04 上测试通过。
当需要输入不同语言时,你可以配置操作系统以使用相应的键位布局。通常,在切换布局时,不仅字母会改变:标点符号和使用 Shift 的键也会变化,你必须不断适应(左括号在哪里?是 Shift 9 还是完全不同的键位?如果按下 L 右侧的键会怎样?等等)。
我最近换用了 ZSA Voyager 可编程键盘,厌倦了不断输入错误的特殊字符以及频繁切换键盘布局。我需要一种单一布局,能够让我输入所有内容!EurKey 可能是答案,但尽管名字叫 EurKey,它并不支持欧洲所有语言。
我需要支持意大利语、英语和德语(这些已被支持)以及波兰语(未被支持)。我还要进行编程。我的解决方案是基于 EurKey 创建一个新的操作系统布局。虽然这不是可移植的方案,但它在大多数情况下让我的使用更轻松。
情况
在我自己的 Ubuntu PC 上
- 一切正常。
在装有 EurKey 的电脑上
- 将布局设置为 EurKey。意大利语、德语和英语可用;波兰语不可用。
在没有 EurKey 的电脑上
- 将语言设置为英语。意大利语、德语和波兰语不可用。
生成的布局
该布局使用 Oryx(ZSA 的配置工具)创建(在其他可编程键盘上也易于复现):
- 获取 EurKey 布局(如果需要可以打印),并在 AltGr 层上挑选几个你永远不会使用的键(对我而言,Q 行的前几个键就可以)。
- 用你需要的字符覆盖这些键。为每个键决定在按下 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、E … O 键的行为。
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 配置)。
现在,你可以在不频繁切换布局的情况下输入意大利语、英语、德语和波兰语字符——包括你映射的特殊字符。