L_controlをxkbの他の項目に再マップしない限り、L_shiftをL_controlに再マップすることはできません。

L_controlをxkbの他の項目に再マップしない限り、L_shiftをL_controlに再マップすることはできません。

Caps LockをShiftに、Shift LeftをControlに再マップしたいのですが、現在左側のコントロールを変更せずにそのままにして、コントロールとしても機能したいと思います。

この質問で提案されているように setxkbmapを使用して左Shiftと左Controlを置き換える

このスクリプトを書くためにxkbを使用しました。

partial modifier_keys
xkb_symbols "my_key_remap" {
    replace key <LFSH> { [ Control_L ] };
    replace key <CAPS>  { [ Shift_L ] };
};

この方法はうまくいきますが、新しい交代勤務制御は機能しないようです。を使用してテストしたとき、xev左シフトがコントロールにマップされていることがわかりました。ただし、通常のコントロールを押すと、xevが一度応答してからキーを押すのを待ちます。ただし、新しいShiftコントロールを使用すると左側のコントロールとして表示されますが(まだキーコード50にもかかわらず)、キーイベントは通常のコントロールキーのように1回だけ発生するのではなく複数回発生します。

ただし、Shift-Controlが唯一の左側のコントロールである新しい行を追加するとreplace key <LCTL> { [ Shift_L ] };(元のコントロールキーを削除する)、期待どおりに機能し、xevはキーを押しても単一のキーイベントのみが発生することを報告します。

どんなアイデアがありますか?

ベストアンサー1

おすすめ記事