abnt 未在 xkeyboard-config 模型中列出

abnt 未在 xkeyboard-config 模型中列出

存在一个可以setxbmap理解的可能模型的“列表”(无论以何种存储形式,即使分布在多个文件中)。如果参数setxbmap -model不在该列表中,则命令setxbmap将无法理解它。

我的猜测(或期望)是,man页面xkeyboard-config应该从与setxbmap (至少在使用默认配置时;如果man不了解用户添加的配置文件,我会理解)。似乎不是这样。命令man -P cat xkeyboard-config没有列出abnt,也没有列出这里,例如但setxkbmap -model abnt ...有效。从这个意义上讲,man xkeyboard-config会产生误导。

如何解释这种“不匹配”?

修改后又出现了一个问题。如果我执行setxkbmap -model khassss ...(随机发明的模型),setxkbmap不会出现任何问题,甚至setxkbmap -query会打印... model: khassss ...

setxkbmap在这种情况下,模型实际上需要什么来定义其行为?

笔记

  1. man -P cat xkeyboard-config甚至没有提供abntabnt2作为布局或变体,但我猜这与问题无关。

  2. 我不确定我所用的版本是否在提到的不匹配中起到了任何作用(我认为它没有作用)

    $ apt-cache policy xkb-data
    xkb-data:
      Installed: 2.29-2
      Candidate: 2.29-2
      Version table:
     *** 2.29-2 500
            500 http://ar.archive.ubuntu.com/ubuntu focal/main amd64 Packages
            500 http://ar.archive.ubuntu.com/ubuntu focal/main i386 Packages
            100 /var/lib/dpkg/status
    

答案1

默认葡萄牙语(巴西)键盘布局是设计时考虑到了巴西 ABNT2 键盘。我认为,鉴于该布局的存在,可能没有必要指定 abnt 作为模型。

答案2

不匹配的解释

  1. man -P cat xkeyboard-config没有列出abnt,但是
  2. setxkbmap -model abnt ...作品

可能如下:

  1. 模型abnt不存在(这就是它没有在命令 1 中列出的原因),并且
  2. setxkbmap -model <any_model> ...使用不存在时不会引发错误any_model

观察 1 得到了支持(这不会在用户目录中找到相关文件,但我没有)

$ find /usr/share/X11/xkb/ -type f -exec grep -nH --color abnt {} \;
/usr/share/X11/xkb/geometry/pc:831:xkb_geometry "abnt2" {
/usr/share/X11/xkb/geometry/pc:886:}; // End of "abnt2" geometry
/usr/share/X11/xkb/symbols/sun_vndr/br:84:  xkb_symbols "abnt2" {
/usr/share/X11/xkb/symbols/sun_vndr/br:85:  include "br(abnt2)"
/usr/share/X11/xkb/symbols/br:2:xkb_symbols "abnt2" {
/usr/share/X11/xkb/symbols/br:49:    include "br(abnt2)"
/usr/share/X11/xkb/symbols/br:66:    include "br(abnt2)"

并且观察2在OP中有详细说明。

或许是 Gunnar Hjalmarsson提及对此,但我不太清楚。

相关内容