web-dev-qa-db-ja.com

xkgを使用して、左のSUPERキー(WINDOWSキーとも呼ばれる)を左または右のCONTROLキーに再マップしようとしています。

私はこれを読んで理解しようとしました: 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のようなアプリの使用は避けたいと思っています。組み込みのソリューションがあることを考えると、私はほとんど理解していると思います。

4
konrados

一時的に変更するには、次のコマンドを実行できます。

setxkbmap -option altwin:ctrl_win

永続的に変更するには、/etc/default/keyboardファイルを編集用に開き、行を変更します

XKBOPTIONS=""

XKBOPTIONS="altwin:ctrl_win"

そして再起動します。

3