矢印キーをシミュレートして次の場所に配置するために、xkb形式のカスタムキーボードレイアウトを作成しました/usr/share/X11/xkb/symbols/custom
。
xkb_symbols {
name[Group1]= "English (US) with Caps mod";
key <ESC> { [ Escape, asciitilde, grave ] };
key <INS> { [ Insert, Insert, Caps_Lock ] };
key <TAB> { [ Tab, ISO_Left_Tab, Menu ] };
key <AC06> { [ h, H, Left ] };
key <AC07> { [ j, J, Down ] };
key <AC08> { [ k, K, Up ] };
key <AC09> { [ l, L, Right ] };
};
次のコマンドで有効にした後:
setxkbmap -layout custom -option lv3:caps_switch
迷惑を除いて、期待どおりに機能します。Caps+{H,J,K,L}
シミュレートされた矢印キーを使用してナビゲートできますが、他の修飾子と組み合わせることはできません。たとえば、または)
組み合わせが機能しないため、通常の矢印キーを使用する必要があります。Super+Caps+{H,J,K,L}
Ctrl+Shift+Caps+{H,J,K,L}
動作させる方法はありますか?それともこれはxkbの制限ですか?
ベストアンサー1
2人にそのオプションを使用させることはできませんでしたlv3:caps_switch
。アナログ矢印キーは、大文字に対して別々の2段階修飾子が定義されている場合にのみ、他の修飾子(SUPERなど)と一緒に使用できます。
私はデフォルトのレイアウトを使用しましたが、他のレイアウトでも動作するはずです。私の新しい/usr/share/X11/xkb/symbols/custom
ファイルは次のようになります(setxkbmap -layout custom -variant 5layer
有効にする)。
default partial alphanumeric_keys xkb_symbols "5layer" {
include "de(basic)"
include "ansi_hybrid(caps_layer)"
include "ansi_hybrid(ralt_layers)"
};
partial modifier_keys xkb_symbols "caps_layer" {
// caps layer key definitions
replace key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Overlay1_Enable, Overlay1_Enable ],
actions[Group1] = [ SetControls(controls=Overlay1),
SetControls(controls=Overlay1) ]
};
key <LatH> { Overlay1 = <LEFT> };
key <LatJ> { Overlay1 = <DOWN> };
key <LatK> { Overlay1 = <UP> };
key <LatL> { Overlay1 = <RGHT> };
};
partial modifier_keys xkb_symbols "ralt_layers" {
// base, shift, ralt, shift+ralt layers key definitions
key <CODE> { [ base, shift, ralt_base, ralt_shift_symbol ] };
};