私は次のキーボード(HHKB JP)を持っています。
私はLubuntu 14.04を使用しており、/usr/share/X11/xkb/symbols/us
達成するために編集しました。カスタムレイアウト。
次に、次のキーを5、6、7、...、および20レベルの修飾子として使用したいと思います。 (WindowsではAutoHotkeyを使用してこれを実行しましたが、現在はAutoHotkeyなしでは購入できません(少なくとも一部は)。)
2つの質問があります。
- キーボードのいくつかの非標準キーの「名前」が何であるかわかりません(に追加するため
/usr/share/X11/xkb/symbols/us
)。 - 特に。
xkb
xmodmap
9
私の質問は次のとおりです
- ミステリーキーの名前/コード(例:)をどのように知ることができますか
key <AC01>
? - 特定のキーに修飾子レイヤーを好きなだけ追加する方法は?
注:XKBではこれはできません。これを達成するためのスクリプトツールがいくつかあることに気付くことを嬉しく思います。
ベストアンサー1
RMLVO
XKB レイアウトは、ルール、モデル、レイアウト、バリアント、オプションというモデルで定義されます。システムXKBデータベースは通常、次の場所にあります/usr/share/X11/xkb
。
/usr/share/X11/xkb/
├── compat # ??? dark magic here, avoid
├── geometry # as in physical, eg for generating layout maps
├── keycodes # helpful for translating keycodes (from xev) to <FOO>
├── rules # "evdev" is the important one; *.lst & *.xml are descriptions
├── symbols # main layouts, variants, optional overrides
└── types # ??? dark magic here, avoid
このkeycodes
ディレクトリは定義キー名は、キーが実際に生成するスキャンコードに似ているか派生しています <CAPS>
。が表示されたら、現在のキーマップを構築するためにアクセスしたファイルを正確に表示します。ファイルとファイル内のセクションをロードしています。同様のツールを使用して特定のキーが生成するキーコードを確認すると、これらのファイルにはそのコードにマップされたキー名が表示されます。<AC01>
setxkbmap -query -verbose 10
keycodes: evdev+aliases(qwerty)
../keycodes/evdev
qwerty
../keycodes/aliases
xev
修飾子の質問はより困難です。参考資料のみ見る8ISOレベル、これがXKB制限であるか、それを使用する一般的なレイアウトではないかどうかはわかりません。 (追加調査の結果、追加の項目を追加するにはXKBコードを変更する必要があると確信しています。
symbol press this
level 1 a key
level 2 A shift+key
level 3 á <level3>+key
level 4 Á <level3>+shift+key
level 5 ?? <level5>+key
level 6 ?? <level5>+shift+key
level 7 ?? <level5>+<level3>+key
level 8 ?? <level5>+<level3>+shift+key
ご覧のとおり、8レベルのレイアウトには「新しい修飾子」キーとして機能するキーが2つだけです。/usr/share/X11/xkb/compat/level5
とを参照してください/usr/share/X11/xkb/types/level5
。レベル5の移動、ラッチング、およびロック動作は、で定義されているシンボルオプションを介してキーに関連付けられます/usr/share/X11/xkb/symbols/level5
。
自分で定義すればlevel9
その後、修飾子は既存のレベルと組み合わせて8つの追加レベルを提供し、次に別のレベル修飾子が必要です。
symbol press this
level 9 ?? <level9>+key
level 10 ?? <level9>+shift+key
level 11 ?? <level9>+<level3>+key
level 12 ?? <level9>+<level3>+shift+key
level 13 ?? <level9>+<level5>+key
level 14 ?? <level9>+<level5>+shift+key
level 15 ?? <level9>+<level5>+<level3>+key
level 16 ?? <level9>+<level5>+<level3>+shift+key
ご覧のとおり、同時に多くのキーを押すことから始まります。使用ロックするそしてクラスプ変える変化減らすことはできますが、これは非常に複雑なレイアウトになります。レベルセレクタを追加することを想像してください。各追加セレクタは既存のレベルを2倍にします。
あなたが想定している「修飾子」は、特定のレベルを選択することができます。このように選択動作を定義して対応するキーのレベル3に配置すると、アクションが提供され、level3+key9
次にlevel14_latch
押すキーはそのキーのレベル14になります。
編集する:別の問題制作について具体的に質問を受けてデモンストレーションをしてみましたISO_Level4_{Shift,Latch,Lock}
。偽ISO_Level4_Latch
既存のXKBキーシンボルと操作を使用します。この方法はレベル 4、6、7、8 で動作します。