AltとSuperを交換してください

AltとSuperを交換してください

Linuxを実行しているMacbook Airがあります。altキーボードの両側のキーとキーを変更したいです。super

cliツールを使用してこれをどのように実行できますか?

修正する

Drav Sloanの答えに基づいて、以下を使用しました。

keycode 64 = Alt_L
keycode 133 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L

keycode 108 = Alt_R
keycode 134 = Super_R
remove Mod1 = Alt_R
remove Mod4 = Super_R
add Mod1 = Super_R
add Mod4 = Alt_R

答え1

左のAltキーとSuperキーのみを置き換えるには、端末で次のコマンドを実行します。

setxkbmap -option altwin:swap_alt_win

デフォルトの動作を復元するには、次を使用します。

setxkbmap -option

注:これは一時的です。効果を永久に維持するには、スタートアップファイルに追加してください。

答え2

Apple キーボードでこれを行うには、以下を試してください。

echo 1|sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd

低バージョンのLinuxで動作させるには、次のことを試してください。 http://blog.chaselambda.com/2014/10/09/apple-keyboard-on-linux-3.8.html

答え3

これを達成する1つの方法は、を実行して主要なxmodmapイベントxevを取得することです。実行すると、xevフォーカスを合わせて変更したいキーを押すことができるボックスが表示されます。Altキーに似た詳細情報を出力する必要があります。

KeyPress event, serial 28, synthetic NO, window 0x8800001,
  root 0x25, subw 0x0, time 2213877115, (126,91), root:(1639,475),
  state 0x0, keycode 14 (keysym 0xffe9, Alt_L), same_screen YES,
  XLookupString gives 0 bytes: 
  XmbLookupString gives 0 bytes: 
  XFilterEvent returns: False

私は「コマンドキー」はありませんが、それに対応する「Windowsキー」を持つPCを使用しています。xevは次のものを提供します。

KeyPress event, serial 28, synthetic NO, window 0x8000001,
  root 0x25, subw 0x0, time 2213687746, (111,74), root:(1624,98),
  state 0x0, keycode 93 (keysym 0xffeb, Super_L), same_screen YES,
  XLookupString gives 0 bytes: 
  XmbLookupString gives 0 bytes: 
  XFilterEvent returns: False

statexmodmapはキーマップを知らず、簡単に破ることができるので、次のことをお勧めします。

xmodmap -pke > defaults

次に、xmodmapファイルを作成します。

keycode 14 = Alt_L
keycode 93 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L

返されたキーコードの使い方に注意してくださいxev。また、ここでは左のsuperキーとaltキーのみを置き換えます(そして右のキーは前の動作のままにしておきます)。その後、単にを実行してxmodmap次のキーを設定できます。

$ xmodmap -v modmap.file
! modmap:
! 1:  keycode 14 = Alt_L
        keycode 0xe = Alt_L
! 2:  keycode 93 = Super_L
        keycode 0x5d = Super_L
! 3:  remove Mod1 = Alt_L
! Keysym Alt_L (0xffe9) corresponds to keycode(s) 0xe
        remove mod1 =  0xe
! 4:  remove Mod4 = Super_L
! Keysym Super_L (0xffeb) corresponds to keycode(s) 0x5d
        remove mod4 =  0x5d
! 5:  add Mod1 = Super_L
        add mod1 = Super_L
! 6:  add Mod4 = Alt_L
        add mod4 = Alt_L
!
! executing work queue
!
        keycode 0xe = Alt_L
        keycode 0x5d = Super_L
        remove mod1 =  0xe
        remove mod4 =  0x5d
        add mod1 = Super_L
        add mod4 = Alt_L

(verbose)スイッチなしで自動的に実行できますが、-vmodmapファイルで間違えた場合に便利です。状況が複雑になったら、デフォルトを再適用してください。

xmodmap defaults

Modmapは通常、Xの起動時に実行されるため、modmapコマンドを~/.xmodmaprc

答え4

またコリアンコフ答え。他のサービスキーの組み合わせ(Ctrl、Altなど)に置き換える必要がある場合は、setxkbmapの他の多くのオプションを使用できます。必要なオプションとその説明を表示するには、次のコマンドを実行します(「alt」および/または「win」を別のキーに置き換えます)。

$ grep -E "(alt|win):" /usr/share/X11/xkb/rules/base.lst

次に、setxkbmapで選択したオプションを設定します。

$ setxkbmap -option *chosen option*

方法の完全な説明は次の場所にあります。アーチLinuxウィキ

関連情報