XFCEはAltキーとSuper(Windows)キーを置き換えます。

XFCEはAltキーとSuper(Windows)キーを置き換えます。

LinuxMint 20.3を実行しているThinkpad X220ではalt、キーをxfce / xfwm4に変更しようとしました。windows

私はsetxkbmap -option altwin:swap_alt_win以下を追加してみました~/.xmodmap

remove mod1 = Alt_L
remove mod4 = Super_L
add mod1 = Super_L
add mod4 = Alt_L

そして走っているxmodmap ~/.xmodmap

Keyboard > Layout > Change Layout Option可能かどうかを調べました。

FWIWshowkeyレポート:

ALT keycode  56
SUPER keycode 125

また手動で設定してみました~/.xmodmap

keycode 56 = Alt_L
keycode 125 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L

これまで何も効かなかった。正しい方向へのアドバイスをいただきありがとうございます!

ベストアンサー1

私は一度も得た幸運を持っていません。xkbmapの設定私がしたいことを行いますが、カーネルレベルでキーを正常に再マップします。

まず、入力デバイスとキースキャンコードを知る必要があります。このツールは、evtestこの目的に使用できます。

$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:  Power Button
/dev/input/event1:  Power Button
/dev/input/event2:  USB Laser Mouse
...
/dev/input/event7:  SONiX USB DEVICE
/dev/input/event8:  SONiX USB DEVICE Keyboard
/dev/input/event9:  SONiX USB DEVICE System Control
/dev/input/event10: SONiX USB DEVICE Consumer Control
/dev/input/event11: SONiX USB DEVICE
...
Select the device event number [0-31]:

ここに表示されるキーボード関連デバイスは5つで、デバイス番号7が実際のキーボードです。試行錯誤でこれを学びましょう。

キーボードを選択してデバイスIDを記録してください。

Select the device event number [0-31]: 7
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xc45 product 0x5004 version 0x111
Input device name: "SONiX USB DEVICE"
Supported events:
...

この行Input device IDは必要なもので、デバイスを選択した後に表示されます。

選択すると、キーボードの特定のキーを押すことができ、キーの押下と解除イベントが記録されます。記録されたイベントが表示されない場合は、別のデバイスを選択する必要があります。ctrl-c彼の仕事を終えた後。

キーコードを書き留めてください。デリゲートそして素晴らしい押した後。私の場合、これらのキー入力の出力は次のようになります。

Event: time 1643575346.666078, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3
Event: time 1643575346.666078, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 1
Event: time 1643575346.666078, -------------- SYN_REPORT ------------
Event: time 1643575346.766070, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3
Event: time 1643575346.766070, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 0
Event: time 1643575346.766070, -------------- SYN_REPORT ------------
...
Event: time 1643575369.928048, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2
Event: time 1643575369.928048, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1
Event: time 1643575369.928048, -------------- SYN_REPORT ------------
Event: time 1643575370.046045, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2
Event: time 1643575370.046045, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 0
Event: time 1643575370.046045, -------------- SYN_REPORT ------------

上記のように、コード125はスーパーキー、56は左のAltキーです。あなたの価値は異なる場合があります。

これで、必要なキーを再マップするためのファイルを生成する必要があります。/etc/udev/hwdb.d/という名前のファイルにファイルを作成します50-alt_super_swap.hwdb。正確な名前はあなた次第ですが、始めに数字、ダッシュ、および拡張子を追加する必要があります。

このファイルには以下を配置します。

# Input device ID: bus 0x3 vendor 0x13ba product 0x1 version 0x110
# evdev:input:b<bus_id>v<vendor_id>p<product_id>e<version_id>-<modalias>
evdev:input:b0003v13BAp0001*
  KEYBOARD_KEY_70038=125
  KEYBOARD_KEY_7007D=56 

evdev:input印刷されたデバイスIDを反映するには、この行を変更する必要がありますevtest。翻訳や大文字の使用にご注意ください。この行を完全に正しく理解していないと、何も起こりません。

このKEYBOARD_KEY_*行の値は16進数です。 16進数38は10進数56、7Dは125です。

$ sudo systemd-hwdb update
$ sudo udevadm trigger

変更を適用するのに数秒かかります。鍵交換が正しく行われたことを確認することに加えて、変更が適用されたかどうかを確認することもできます。

$ udevadm info /dev/input/event7
P: /devices/pci0000:00/0000:00:07.1/0000:0d:00.3/usb3/3-2/3-2:1.0/0003:0C45:5004.0005/input/input7/event7
N: input/event7
L: 0
S: input/by-path/pci-0000:0d:00.3-usb-0:2:1.0-event-kbd
S: input/by-id/usb-SONiX_USB_DEVICE-event-kbd
...
E: KEYBOARD_KEY_70038=125
E: KEYBOARD_KEY_70075=56
...

私はAltとSuperを直接変えませんでしたが、この技術を使用しました。メディアキーの再マッピング使用この記事参照。

おすすめ記事