「1。では、5レベルの修飾子は何をするのでしょうか?」
5番目のレベルを選択します。2番目のレベル修飾子(通常のシフトのみ)は2番目のレベルを選択し、3番目のレベルは3番目のレベルを選択します。
5番目のレベル修飾子が4番目のレベルではなく5番目のレベル(3番目のレベル修飾子の直後)を選択する理由は、これらの3つの修飾子をさまざまな方法で組み合わせて8つの異なるレベルを選択できるためです(これには、そのような修飾子なしでキーを押すだけです)。2↑3 = 8以降、8つの組み合わせがあります。最初の2つの修飾子には、4つの組み合わせがあります。
- 修飾子なし(レベル1)
- 2番目のレベル修飾子、別名シフト(レベル2)
- 第3レベル修飾子(レベル3)
- 2番目と3番目の修飾子(レベル4)
3番目の修飾子(5番目のレベル)を追加すると、さらに4つのレベルが追加されます。
「2。どのように私は、単一のキー(Shiftキーで変更、の5つのまたは6種類の文字を取得することができますので、それを設定しますAlt Grと、Right
Ctrl例えば)?」
まず、キーごとに5文字以上を使用するレイアウトが必要です。既存のレイアウトを選択できますが、現在使用しているレイアウトにさらにレベルを追加するだけの場合は、最適ではない可能性があります。たとえば、Neoキーボードレイアウト(†1)がありますが、これは「ドイツ語用に最適化されている」ため、ほとんどの英語話者にはあまり適していません。
それでも、Neoがレベル5修飾子用に選択したキーを確認することは有益です。
Neoは明らかに「Mod4」のレベル5修飾子を呼び出します。ご覧のLSGT
とおり、左シフトキー()と右altキー/ AltGr
キーの右側のキーを使用しています。これは、USキーボード(104キー)と比較して、左シフトが狭く、リターンキーが高くて細いヨーロッパキーボード(105キー)にあります。USキーボードに基づくキーボードレイアウトの場合、他のキーを選択する必要がある場合があります。
レベル5修飾キーの選択
supの答えでは、彼はXmodmapを使用することを選択しました。現在、XmodmapよりもSetxkbmapのようなツールが推奨されています。Xkbには、レベル5修飾子の選択などの多くの事前定義オプションが付属しています。あなたはご相談ください
男XKEYBOARD-config設定をして検索するためにlv5
、あなたはこれらのオプションを見つけることができます:
┌──────────────────────┬───────────────────────────────────────────────────┐
│ Option │ Description │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:lsgt_switch_lock │ <Less/Greater> chooses 5th level; acts as onetime │
│ │ lock when pressed together with another 5th level │
│ │ chooser │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:ralt_switch_lock │ Right Alt chooses 5th level; acts as onetime lock │
│ │ when pressed together with another 5th level │
│ │ chooser │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:lwin_switch_lock │ Left Win chooses 5th level; acts as onetime lock │
│ │ when pressed together with another 5th level │
│ │ chooser │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:rwin_switch_lock │ Right Win chooses 5th level; acts as onetime lock │
│ │ when pressed together with another 5th level │
│ │ chooser │
└──────────────────────┴───────────────────────────────────────────────────┘
したがって、文書化されているオプションは、LSGT
キー、右Altキー、右Windowsキー、および左Windowsキーです。これまで見てきたように、Neoは最初の2つのオプションを使用します。
lv5:ralt_switch_lock
何らかのレイアウトでオプションを使用するとします。このコマンドはus
、次のレベル5修飾キーを使用してレイアウトを設定します。
setxkbmap -option "lv5:ralt_switch_lock" us
したがって、に記載されているオプションのいずれかについては、Setxkbmapを使用man xkeyboard-config
する-option
際の引数として使用してください。
これらのオプションが十分ではなく、別のキーをレベル5修飾子として定義したい場合、これらのオプションの宣言を調べることは有益です。彼らはにいるようです
/usr/share/X11/xkb/symbols/level5
。の宣言は
lv5:ralt_switch_lock
次のようになります。
partial modifier_keys
xkb_symbols "ralt_switch_lock" {
include "level5(lock)"
key <RALT> {
type[Group1] = "EIGHT_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
の右側symbols[Group1]
は、キーの各レベルが生成するキーまたは文字を宣言します。別のレベル5シフトキーと一緒に押すとレベル5修飾子をロックすることになっているため、これは8つの可能なレベルすべてを使用します。したがってISO_Level5_Lock
、レベル5シフトとその他のシフトキーの組み合わせ(すべてになし)を押し続けると、これらのすべてのレベルにアクセスできるため、レベル5〜8が放出
されます。シフトの動作だけが必要で、2回押すとロックされる場合は、同じファイルからより簡単な宣言を行うことができます。
// The right Alt key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "ralt_switch" {
key <RALT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
};
include "level5(modifier_mapping)"
};
レイアウトにレベルを追加する
Xkbレイアウトはかなりモジュール化されています。あなたは、することができます含まれ、既存のレイアウトをし、それらを変更します。したがって、5レベル未満の既存のレイアウトを選択し、それにいくつかのレベルを追加できます。
レイアウトを含むファイルをにコピーする/usr/share/X11/xkb/symbols/
か、Xkbツールがレイアウトを探す場所であればどこにでも、新しいレイアウトを作成でき
ます。ただし、これにはsudo権限が必要であるため、最適なソリューションではありません。別の方法としては、のディレクトリ構造をコピーすることができますxkb/
し、下の適切なディレクトリにレイアウトを置くxkb/
、すなわち
symbols/
。ファイルを作成したとしましょうxkb-tree/symbols/my-layouts
。このファイルで定義されたレイアウトを使用するには、の-print
オプションを使用しsetxkbmap
、出力をにパイプしますxkbcomp
。このラッパースクリプトは、入力としてレイアウトを受け取ります。
#!/bin/sh
# `-option ""` resets all options.
setxkbmap -option "" -layout "$1" \
-print |
xkbcomp -I"<path-to-project>/xkb-tree" - "$DISPLAY"
レイアウトを含むファイルに関する限り、4つのレベルを使用する「US international」レイアウトを拡張したいとします。まず、Neoと同じ方法でレベル3およびレベル5のシフトキーを設定します。
partial alphanumeric_keys
xkb_symbols "mine" {
// US international
include "us(intl)"
// Set up level 3 modifiers.
include "level3(modifier_mapping)"
include "level3(bksl_switch)"
include "level3(caps_switch)"
// Set up level 5 modifiers.
include "level5(modifier_mapping)"
include "level5(lsgt_switch)"
include "level5(ralt_switch)"
};
次に、いくつかの余分な文字を追加します。Qwertyレイアウトの最初の4つのキーを例として使用してみましょう。これらのキーは、Q
にR
に対応する、<AD01>
に<AD04>
。まず、キーを最大8つのレベルで使用できるようにする必要があります。
key.type[Group1] = "EIGHT_LEVEL";
最初の4つのレベルでは、それらを再定義しないために、それらをにマップしますNoSymbol
。次に、2つのレベルを追加します。レベル5では、矢印を追加します←↓↑→
(†2)。レベル6では、方向キーを追加します。レイアウトは次のようになります。
partial alphanumeric_keys
xkb_symbols "mine" {
// US international
include "us(intl)"
// Set up level 3 modifiers.
include "level3(modifier_mapping)"
include "level3(bksl_switch)"
include "level3(caps_switch)"
// Set up level 5 modifiers.
include "level5(modifier_mapping)"
include "level5(lsgt_switch)"
include "level5(ralt_switch)"
// Make the following keys capable of using eight levels.
key.type[Group1] = "EIGHT_LEVEL";
key <AD01> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
leftarrow, Left
] };
key <AD02> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
downarrow, Down
] };
key <AD03> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
uparrow, Up
] };
key <AD04> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
rightarrow, Right
] };
};
それを使用するには、作成したラッパースクリプトを使用できます。
./setxkbmap-wrapper "my-layouts(mine)"
†1:Neoはde(neo)
Xkbです。setxkbmap "de(neo)"
。
†2:Xkbが使用する記号名を見つけるには、という名前のファイルを検索しますkeysymdef.h
。というディレクトリの下にある必要がありますX11/
。U2192
U + 2192 など、Unicode名を使用することもできます。