Ubuntu 22.04下配置美式国际键盘:仅对拉丁语言常用字母添加重音
太懂这种憋屈了!Windows上的美式国际键盘早就把这个逻辑做得恰到好处——只给拉丁语言里常用的字母加重音,其他字母直接输出符号加原字母。Ubuntu 22.04虽然比之前进步了,但像'+r跳出ŕ这种没必要的情况还是存在,确实闹心。
你猜的没错,Ubuntu里确实有个配置表控制着死键(比如单引号、反引号)和字母的组合行为,只要修改它就能实现和Windows一致的效果,具体步骤如下:
1. 先备份原配置文件(重要!)
系统更新可能会覆盖这个文件,而且改坏了也能快速恢复,所以先备份:
sudo cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/us.bak
2. 编辑美式国际键盘的配置文件
用新手友好的nano编辑器打开配置文件:
sudo nano /usr/share/X11/xkb/symbols/us
在文件里找到xkb_symbols "intl"这个区块——这就是美式国际键盘的核心配置部分。
3. 修改不需要重音的字母映射
在这个区块里,每个字母的键定义有四个位置,分别对应:
- 普通按下字母
- Shift+按下字母
- 死键(比如单引号)+按下字母
- 死键+Shift+按下字母
比如原来的r键定义是这样的:
key <AD07> { [ r, R, U0155, U0154 ] };
这里第三项U0155就是小写重音字母ŕ,第四项U0154是大写的Ŕ——这就是我们要改掉的。
对于所有拉丁语言里不常用重音的字母(比如r、t、z、w、k、x、q、j等),把它们的第三、第四项改成NoSymbol,这样按下死键+字母时,系统就会输出死键符号(比如单引号)加上原字母,而不是生成没用的重音字符。修改后的r键应该是:
key <AD07> { [ r, R, NoSymbol, NoSymbol ] };
而对于需要保留重音的字母(a、e、i、o、u、y、n等),保持原来的配置不变就行,比如a键:
key <AC01> { [ a, A, U00E1, U00C1 ] };
这样'+a依然会输出á,完全符合需求。
4. 生效并测试
修改完后,按Ctrl+O保存文件(回车确认),再按Ctrl+X退出编辑器。然后注销当前账户重新登录,或者重启系统,让修改生效。
现在测试一下:
- 按下
'+a→ 输出á(正确) - 按下
'+r→ 输出'r(正确) - 按下
'+e→ 输出é(正确) - 按下
'+t→ 输出't(正确)
如果你担心系统更新覆盖修改,也可以创建自定义键盘布局(复制intl区块到新的symbols条目里,再修改),不过直接修改系统文件是最直接的方式,大不了更新后再重新改一次。
备注:内容来源于stack exchange,提问作者Ruy

