再起動後に新しいキーボードレイアウトのバリアントが検出されない

再起動後に新しいキーボードレイアウトのバリアントが検出されない

ファイルに新しいセクションを追加しました/usr/share/X11/xkb/symbols/il。次に、 のセクションへの参照を追加し/usr/share/X11/xkb/rules/base.lst、 を更新しましたsudo dpkg-reconfigure xkb-data。ただし、システム (Kubuntu 20.04 LTS) を再起動した後でも、新しいキーボード レイアウトは KDE のシステム設定で使用できません。

システムと私が行った変更の概要は次のとおりです。

$ # Running the current Ubuntu LTS
$ cat /etc/issue
Ubuntu 20.04.3 LTS \n \l

$ # Kernel up to date
$ uname -a
Linux matrix-lenovo 5.11.0-38-generic #42~20.04.1-Ubuntu SMP Tue Sep 28 20:41:07 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

$ # Using X11, not Wayland
$ loginctl show-session $(loginctl|grep $(whoami) |awk '{print $1}') -p Type
Type=x11

$ # Emptied XKB cache
$ ls -la /var/lib/xkb
total 12
drwxr-xr-x  2 root root 4096 Oct 27 12:31 .
drwxr-xr-x 89 root root 4096 Oct 26 08:19 ..
-rw-r--r--  1 root root  644 Jul  6 13:17 README.compiled

$ # Added "Potsatzi" Hebrew layout to XKB rules
$ grep Hebrew /usr/share/X11/xkb/rules/base.lst
  il              Hebrew
  lyx             il: Hebrew (lyx)
  phonetic        il: Hebrew (phonetic)
  biblical        il: Hebrew (Biblical, Tiro)
  potsatzi        il: Hebrew (Potsatzi)

$ # Added "Potsatzi" Hebrew layout to Hebrew XKB symbols file
$ diff /usr/share/X11/xkb/symbols/il.bak /usr/share/X11/xkb/symbols/il
140a141,205
> // Based on lyx, with additional useful directional characters
> // See table here: https://dotancohen.com/howto/rtl_right_to_left.html
> partial alphanumeric_keys
> xkb_symbols "potsatzi" {
>     name[Group1]= "Hebrew (Potsatzi)";
> 
>     key <TLDE> { [ semicolon, asciitilde      ] };
>     // On some key (e.g. AD01, right below) there is not yet mapping for the
>     // second shift level. Since I could not figure a simple way to map this
>     // to "emit nothing", it is currently mapped to the same letter of the
>     // first shift level (avoiding mapping may risk it be used by a character
>     // from a different group).
>     key <AD01> { [ slash, slash                       ] };
>     key <AD02> { [ apostrophe, apostrophe     ] };
>     key <AD03> { [ hebrew_qoph, 0x10005b8     ] }; // Qamats
>     key <AD04> { [ hebrew_resh, 0x10005bc     ] }; // Dagesh/Shuruq
>     key <AD05> { [ hebrew_aleph, 0x100200e    ] }; // LRM
>     key <AD06> { [ hebrew_tet, 0x100200f      ] }; // RLM
>     key <AD07> { [ hebrew_waw, 0x10005b9      ] }; // Holam
>     key <AD08> { [ hebrew_finalnun, 0x100202a ] }; // ADDED by potsatzi LRE
>     key <AD09> { [ hebrew_finalmem, 0x100202b ] }; // ADDED by potsatzi RLE
>     key <AD10> { [ hebrew_pe, 0x10005b7               ] }; // Patah
> 
>     key <AC01> { [ hebrew_shin, 0x10005b0     ] }; // Sheva
>     key <AC02> { [ hebrew_dalet, 0x10005bc    ] }; // Dagesh/Shuruq
>     key <AC03> { [ hebrew_gimel, hebrew_gimel ] };
>     key <AC04> { [ hebrew_kaph, hebrew_kaph   ] };
>     key <AC05> { [ hebrew_ayin, 0x10005c2     ] }; // Sin dot
>     key <AC06> { [ hebrew_yod, 0x10005c1      ] }; // Shin dot
>     key <AC07> { [ hebrew_chet, 0x10005b4     ] }; // Hiriq
>     key <AC08> { [ hebrew_lamed, 0x10020aa    ] }; // NIS
>     key <AC09> { [ hebrew_finalkaph, 0x100202c        ] }; // ADDED by potsatzi PDF
>     key <AC10> { [ hebrew_finalpe, colon      ] };
>     key <AC11> { [ comma, quotedbl            ] };
> 
>     key <AB01> { [ hebrew_zain, hebrew_zain   ] };
>     key <AB02> { [ hebrew_samech,0x10005b6    ] }; // Segol
>     key <AB03> { [ hebrew_bet, 0x10005bb      ] }; // Qubuts
>     key <AB04> { [ hebrew_he, 0x10005b1               ] }; // H. Segol
>     key <AB05> { [ hebrew_nun, 0x10005b2      ] }; // H. Patah
>     key <AB06> { [ hebrew_mem, 0x10005b3      ] }; // H.  Qamats
>     key <AB07> { [ hebrew_zade, 0x10005b5     ] }; // Tsere
>     key <AB08> { [ hebrew_taw, greater                ] };
>     key <AB09> { [ hebrew_finalzade, less     ] };
>     key <AB10> { [ period, question           ] };
> 
>     // Note the parens mirroring below:
>     key <AD11> { [ bracketright, braceright   ] };
>     key <AD12> { [ bracketleft, braceleft     ] };
>     key <AE01> { [ 1, exclam                  ] };
>     key <AE02> { [ 2, at                      ] };
>     key <AE03> { [ 3, numbersign              ] };
>     key <AE04> { [ 4, dollar                  ] };
>     key <AE05> { [ 5, percent                 ] };
>     key <AE06> { [ 6, asciicircum             ] };
>     key <AE07> { [ 7, ampersand                       ] };
>     key <AE08> { [ 8, asterisk                        ] };
>     key <AE09> { [ 9, parenright              ] };
>     key <AE10> { [ 0, parenleft                       ] };
> 
>     key <AE11> { [ minus, 0x10005be           ] }; // H. Hiphen
>     key <AE12> { [ equal, plus                        ] };
> };
> 
> 

potsatziファイルのセクションは、/usr/share/X11/xkb/symbols/il前のセクションのコピー アンド ペースト (VIM ではヤンク アンド ペースト) であり、次の変更が加えられています。

  • 名前が から に 2 か所変更されましlyxpotsatzi
  • 空白のクリーンアップ
  • シフト文字の場所に 3 つの Unicode コードポイントを追加しました。それらの行には、ADDED by potsatzi追加された文字の名前を含むコメントがあります。

にエイリアスを追加し/usr/share/X11/xkb/rules/base.lst、 からキャッシュ ファイルを削除し/var/lib/xkb/、システムを再起動する以外に、システムに新しいレイアウト バリアントを認識させるために他に何をする必要がありますか?

答え1

私は見つけたこのバグレポートに至りました/usr/share/X11/xkb/rules/evdev.xml。OP の質問に記載されている他のすべての取り組みに加えて、ファイルに次の行を追加すると、再起動後に問題が解決しました。

    <variant>
      <configItem>
        <name>potsatzi</name>
        <description>Hebrew (Potsatzi)</description>
      </configItem>
    </variant>

キーボードに 3 つの文字が追加されました!!!!

関連情報