xkbレイアウト設定を簡素化するには?

xkbレイアウト設定を簡素化するには?

問題は、キーボードレイアウトに関連するxkb構成の構造を単純化する方法があるかどうかです。

以下で詳しく説明するように、キーボードレイアウトバリアントへの参照が格納される別の場所は5つです(evdev.xml、、、evdev.lstおよび対応base.xmlするbase.lstレイアウト記述ファイル内/usr/share/X11/symbols/)。必要な量だけが必要な場合ははるかに簡単になります(.lstと.xmlに同じ情報を保存することは、キーボードレイアウトの追加や削除が不要なので役に立ちません)。5か所)もちろん、これは全体の構成がユーザーにとってあまり明確になりません(不必要に重複する方法で複数の場所でまったく同じ構成を設定する必要がある場合は混乱する可能性があります)。たぶんこのプロセスを単純化する方法はありますか?むしろ、これがこの質問に必要な答えになります。さまざまなディストリビューションがあることを考慮すると、すべてのディストリビューションにこのxkb構成設定がないことを願っています。

これは私のGNU / Linux(Ubuntu 12.04LTS)システムのxkb構成と同じです。私が使用する新しいキーボードレイアウトを追加するには、多くのファイルを変更する必要がありました。

/usr/share/X11/xkb/rules/evdev
/usr/share/X11/xkb/rules/evdev.xml 
/usr/share/X11/xkb/rules/evdev.lst
/usr/share/X11/xkb/rules/base 
/usr/share/X11/xkb/rules/base.xml
/usr/share/X11/xkb/rules/base.lst

baseファイルの必須バージョンはファイルのコピーのようですevdev。これらのファイルのようなシンボリックリンクになることができるかどうかを知ることは興味深いでしょう。

/usr/share/X11/xkb/rules/xorg
/usr/share/X11/xkb/rules/xorg.lst
/usr/share/X11/xkb/rules/xorg.xml

次の小さなテストを実行します。
1.

 user@box:/$ cat /usr/share/X11/xkb/rules/evdev.lst | grep Greek
 gr              Greek
 simple          gr: Greek (simple)
 extended        gr: Greek (extended)
 nodeadkeys      gr: Greek (eliminate dead keys)
 polytonic       gr: Greek (polytonic)

2.

 user@box:/$ cat /usr/share/X11/xkb/rules/evdev.xml | grep Greek
       <description>Greek</description>
           <description>Greek (simple)</description>
            <description>Greek (extended)</description>
             <description>Greek (eliminate dead keys)</description>
             <description>Greek (polytonic)</description>
 ofencito@freak:/usr/share/X11/xkb/rules$ 

どちらのファイルも実際にまったく同じデータを含むことを示しています(前述のシンボリックリンクを無視しても、同じ情報が4つの異なる場所に保存されます)。

最終的に、キーボードレイアウト自体はファイルシステム構造に格納され/usr/share/X11/xkb/symbols、それはその名前のファイルに言語レイアウトとバリアントへの参照を再保存します。ギリシャ語の例を保存するためのファイルがあります/usr/share/X11/xkb/symbols/gr。このリターンを見てください:

user@box:/$ cat /usr/share/X11/xkb/symbols/gr | grep xkb_symbols
xkb_symbols "basic" {
    name[Group1] = "Greek";
xkb_symbols "simple" {
    name[Group1] = "Greek (simple)";
xkb_symbols "bare" {
xkb_symbols "extended" {
    name[Group1] = "Greek (extended)";
xkb_symbols "polytonic" {
    name[Group1] = "Greek (polytonic)";
xkb_symbols "nodeadkeys" {
    name[Group1] = "Greek (eliminate dead keys)";

このとき、まったく同じ情報が5つの場所に重複して保存されます。

この「混乱」を単純化する方法はありますか?私はUbuntuに慣れているので、他のディストリビューションでキーボードレイアウトを処理するのにあまり混乱しない方法を見つけたのではないかと思います。

答え1

実装が急いで行われたと思います。ここをご覧ください:(ChromeでGoogle翻訳を使用)

https://www.linux.org.ru/forum/general/12078555

したがって、一部の場所では.lst無視すると読みbase.xmlましたが、まったく同じ情報が含まれていません。xmlもっと完全だと思いますが、わかりません。

関連情報