私はこれを読んで理解しようとしました: https://www.charvolant.org/doug/xkb/html/node5.html
テストとして、私のレイアウトは/ usr/share/X11/xkb/symbols/plファイルの「ポーランド語、プログラマー」であるため、「q」文字を「x」に再マッピングして再生し、問題なく動作しました。
しかし、私が欲しいのは、LWIN(左スーパー)を左コントロールに再マップすることです。
だから私はこれを試してみました:/ usr/share/X11/xkb/symbols/pcファイルの編集を始めました。これが他のすべてのファイルの「ルート」であると仮定しました。この行をコメントアウトしました:
//key <LWIN> { [ Super_L ] };
そしてこれを追加しました:
key <LWIN> { [ Control_L ] };
pCを再起動しましたが、成功しませんでした。つまりLWIN + Cは、テキストエディターで選択したテキストをクリップボードにコピーせず、代わりに 'c'文字を生成します。ターミナルでは、現在のプログラムを停止する代わりに、 'c'文字を生成するだけです。
ここに私の設定ファイルがあります: https://Gist.github.com/anonymous/49514ddf6f03ba87babaab51e2d5eff4
Xevコマンドを試してから左コントロールキーを押すと、次のように表示されます。
KeyPress event, serial 40, synthetic NO, window 0x5a00001,
root 0x7e, subw 0x0, time 1053321, (374,-259), root:(374,545),
state 0x0, keycode 133 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0x5a00001,
root 0x7e, subw 0x0, time 1053425, (374,-259), root:(374,545),
state 0x0, keycode 133 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes:
XFilterEvent returns: False
ところで。 ubuntuに尋ねると、同様の質問への2つのリンクが提案されますが、それらは古く、xmodmapを使用することを提案しています。
BTW2。 Xbindkeysのようなアプリの使用は避けたいと思っています。組み込みのソリューションがあることを考えると、私はほとんど理解していると思います。
一時的に変更するには、次のコマンドを実行できます。
setxkbmap -option altwin:ctrl_win
永続的に変更するには、/etc/default/keyboard
ファイルを編集用に開き、行を変更します
XKBOPTIONS=""
に
XKBOPTIONS="altwin:ctrl_win"
そして再起動します。