私のカスタムキーボードレイアウトにはすでに次の行があります。
// row 1 (E)
key <TLDE> { [ question, exclam, masculine, ordfeminine ] };
key <AE01> { [ braceleft, 1 ] };
key <AE02> { [ bracketleft, 2, periodcentered ] };
key <AE03> { [ parenleft, 3, EuroSign ] };
key <AE04> { [ less, 4 ] };
key <AE05> { [ slash, 5 ] };
key <AE06> { [ apostrophe, quotedbl, dead_diaeresis ] };
key <AE07> { [ equal, plus ] };
key <AE08> { [ backslash, 6, notsign ] };
key <AE09> { [ greater, 7 ] };
key <AE10> { [ parenright, 8 ] };
key <AE11> { [ bracketright, 9, exclamdown ] };
key <AE12> { [ braceright, 0, questiondown ] };
これは行1(文字を超えてファンクションキーの下の行)です。
たとえば、数字1を押すとが入力され{
、Shift + 1を押すとが入力されます1
。とても良いです。しかし、Capslockを押すと{
、やはり私が好きなように入ります1
。 Capslockは文字で動作します。
今、文字とこの行にはCaps Lockを適用し、Shiftlockなどのキーボードの他のキーは適用しないようにします。どうすればいいですか?
(Shiftlock:特定のキーを押して放すと、キーボードで押すすべてのキーがShiftキーを押すのと同じです。文字キーだけでなく、矢印キーの出力も変更されますが、Insert
これHome
は私が望むものではありません。)
これは、WindowsのMicrosoftキーボードレイアウトマネージャを介して可能です。キー定義には、キーの4つの状態レベルとCapslockの別の状態レベルの両方が含まれているためです。しかし、xkbがそれを許可するかどうかはわかりません。
(cap 1:このキーはcapを有効にし、cap 0:無効にします)
//SC VK_ Cap 0 1 2 6 7
//-- ---- ---- ---- ---- ---- ---- ----
02 1 1 1 007b -1 -1 -1 // DIGIT ONE, LEFT CURLY BRACKET, <none>, <none>, <none>
答え1
私が正しく理解した場合は、デフォルトの動作を変更したくなく、状態がオンにCAPS LOCKなったときに数値行の動作のみを変更したいと思います。CAPS LOCKこの場合、次のオプションがあります。
a) ブロック別タイプの変更
デフォルトでは、次を使用します。
ALPHABETIC
(または#_LEVEL_ALPHABETIC
より多くのレベルが必要な場合)常に状態の影響を受ける必要があるキーについてCAPS LOCK。TWO_LEVEL
(またはTHREE_LEVEL
などFOUR_LEVEL
)は、状態の影響を受けずにCAPS LOCKそのキーにのみ影響を受けるキーを表しますShift。
...
// row 1 (E)
key.type[group1]="ALPHABETIC"; <<-----------
key <TLDE> { [ question, exclam, masculine, ordfeminine ] };
key <AE01> { [ braceleft, 1 ] };
key <AE02> { [ bracketleft, 2, periodcentered ] };
key <AE03> { [ parenleft, 3, EuroSign ] };
key <AE04> { [ less, 4 ] };
key <AE05> { [ slash, 5 ] };
...
// for further definitions where caps lock should not affect, use the following:
key.type[group1]="TWO_LEVEL";
...
...
b) 各個別キーを変更します。
以下は、各キーに対して別々に異なるキータイプを持ちたい場合に備えて、異なるコンテキストの例です。デフォルトでは、キータイプはキー定義に対して「内部的に」設定されますが、ブロックの場合は外部で定義され、後続のキー定義に適用されます。
partial xkb_symbols "swap_menu_rctrl_print" {
// for newer thinkpad keyboards with print screen in the wrong place
key <PRSC> {
type= "TWO_LEVEL",
symbols[Group1]= [ Control_R, Menu ]
};
key <RCTL> {
type= "ONE_LEVEL",
symbols[Group1]= [ Menu ]
};
};
一般に、ドイツのT3レイアウトの定義など、より複雑なレイアウトの定義を見ることができます。/usr/share/X11/xkb/de