「Linux from scratch」環境でのX起動時にxkbcompが失敗する問題に直面しました。私の標準的なUbuntuコンピュータでは、キーマップをコンパイルすることもできないことがわかりました。
xkbcomp -w 10 -R/usr/share/X11/xkb -xkm rules/evdev dummy.km
これによりエラーが発生します。
Warning: Changing root directory to "/usr/share/X11/xkb"
syntax error: line 16 of rules/evdev
last scanned symbol is:
Errors encountered in rules/evdev; not compiled.
xkbcompはどのように使用すればよいですか?
答え1
/usr/share/X11/xkb/rules/evdev
仕様が含まれていますルール。ルールは、XKBに部品からキーマップを構築する方法を教えてくれますが、特定のキーマップを指定するわけではありません。入力は次xkbcomp
のようになります。キーマップ。
入力が何であるかを見つける最も簡単な方法は
読むことです。マニュアルページ(ハハいいえ)
読んでいます。公式文書(まるで)誤解を招く
名前を読んでいるかのように信頼できないガイド(素敵ですね。竣工式ホームページにリンクがあります。X.org Wikiしかし、それにもかかわらず情報を持っているxkbcomp
実際にこれがインターネットから尋ねるerrrへの入力だと言っていませんか?ああ、ちょうどそうでした。
まあ、xkbcomp
双方向で動作します。したがって、ディスプレイがキーマップをデコンパイルするように要求すると、許容可能な入力が表示されます。
xkbcomp :0 - | less
構文は次のとおりです。
xkb_keymap {
xkb_keycodes { … };
xkb_types { … };
xkb_compat { … };
xkb_symbols { … };
xkb_geometry { … };
}
次の中括弧内の内容は、xkb_xxx
ディレクトリ内のファイルの内容です/usr/share/X11/xkb/xxx
。ステートメントを使用して既存のファイルを読み取るようにinclude
指示できます。xkbcomp
ファイル名の間にディレクティブを追加する必要がありますinclude
。+
一部のファイルには複数のxkb_xxx
ディレクティブが含まれているため、目的のディレクティブの名前を括弧内に渡します。たとえば、Compose
onでアメリカのレイアウトを使用するには、Menu次のようにします。
xkb_symbols { include "us+compose(menu)" }
あなたは尋ねることができますsetxkbmap
許容可能な入力を生成しますxkbcomp
。-print
キーマップをサーバーにプッシュするのではなく、出力を確認するオプションを渡します。setxkbmap
、、、、を使用して対応する-compat
、-geometry
およびを設定-keycodes
します。-types
xkb_xxx
-layout
xkb_symbols
setxkbmap -layout "us+compose(menu)" -print
実際、私は上記から省略した内容で嘘をつきました。より簡単な方法があります。情報は次のとおりです。アーチスウィキ。 Arch Linuxを使用するか、使用しないかにかかわらず、システムを構成する方法を知りたい場合は、Arch wikiは素晴らしいリソースです。