問題は、キーボードレイアウトに関連する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
もっと完全だと思いますが、わかりません。