xkbcompはxkb_keycodesセクションの構文エラーについて文句を言います。

xkbcompはxkb_keycodesセクションの構文エラーについて文句を言います。

私自身の個人的なキーボードレイアウトを作成する準備でxkbについて学び始めたときにxkb設定ファイルを作成しました。これはスタートの代表的な部分です。強力なテキスト)私のXキーボードプロファイル:

xkb_keymap {
        xkb_keycodes "de|ru" {
                minimum = 8;
                maximum = 255;

[...]
                <F11>         =  95; // <FK11>
                <F12>         =  96; // <FK12>
//              <SYSRQ>       = 107; // <PRSC>
//              <SCROLL_LOCK> =  78; // <SCLK>
//              <PAUSE>       = 127; // <PAUS>

//              <CIRCUMFLEX>  =  49; // <HZTG>, <TLDE>
                <1>           =  10; // <AE01>
                <2>           =  11; // <AE02>
[...]

これでセカンダリキーボードで実際に使用しようとしましたが、コマンドを実行するとxkbcomp -i 12 $FILE $DISPLAY次のエラーが発生します。

syntax error: line $LINE of $FILE
last scanned symbol is: $SYMBOL
Errors encountered in $FILE; not compiled.

SYMBOL は、SYSRQ、SCROLL_LOCK、PAUSE、または CIRCUMFLEX のいずれかです。リストは後で貼り付けられていないセクションに一覧表示されます。ここに示されている行をコメントアウトすると、xkbcompは将来の同様の問題に対して単に失敗します。それでは、SYSRQでは構文エラーが発生しますが、ESCまたはF12では構文エラーが発生しません。この行は構文的にすべて同じです。予約された名前はありますか?それとも、私が使用できる名前は実際にあらかじめ決められていますか?これに関する有用な文書はどこにありますか? (私はこのエラーが発生した理由でさえ明らかにされていない不完全で矛盾したチュートリアルを提示したマニュアルページとGoogleを参照しました。)

答え1

私に最も近い説明は以下から来ています。Xキーボード拡張:プロトコル仕様:

各キーに4バイト記号名。キー名は、異なるスキャンコードを報告するキーボード上の同様の機能または類似の位置を持つキーを連結します。キーエイリアスを使用すると、キーボードレイアウトデザイナーが単一のキーに複数の名前を割り当てることができるため、場所または「機能」を使用してキーを簡単に参照できます。

<AB02>名前は通常、図のように左下隅にあるB行キー2の位置です。信頼できないXKB構成ガイド部分キーコードPDFバージョン)。

関連情報