右 Alt を左コントロールにマッピング

右 Alt を左コントロールにマッピング

私は左統制官という職業を持ちながらright alt主要な業務を遂行できるようにしたいと思います。そのため、evdevファイルを次のように編集しました。left controlleft control

<LALT> = 64;
<LCTL> = 37; // original binding 37
<SPCE> = 65;
<RCTL> = 105;
<RALT> = 37; // original binding: 108

しかし、これはうまくいきません。これで、両方のキーが機能しませんctrl。どうすればいいですか?

答え1

<FOO>変更したキーコードファイルは、キーを押したときにカーネルキーボードドライバが解放するキーコードによってXKBレイアウト()に使用されるシンボリックコードを定義するXKBマップです。ここでコードを変更しても、そのキーによって生成されたコードは変更されず、XKBレイアウトが変更されたシンボルを見るときに処理すると考えるコードが変更されます。

システムのXKBファイルを元の状態に復元できると仮定すると、XKBが目的の操作を実行する方法は、標準レイアウトをオーバーライドするオプションをロードすることです。ctrl:ralt_rctrl必要なものに近い既存のオプション()があります。

  # definition in /usr/share/X11/xkb/rules/evdev
  ctrl:rctrl_ralt       =       +ctrl(rctrl_ralt)
  # similar rule for swapped option?
  ctrl:ralt_rctrl       =       +ctrl(ralt_rctrl)

以下を使用してロードできますsetxkbmap

$ setxkbmap -option ctrl:ralt_rctrl

これがあなたの要件に適している場合は、このコマンドをウィンドウマネージャスクリプト.xprofileに追加して永久に作成できます。 GNOME では追加の手順が必要な場合があります。.xinitrcautorun

Alt_RそれでもasのCtrl_L代わりに再マップするには、Ctrl_Rローカルオーバーライド句を作成する必要があります。内部の始点として既存のオプションを使用してください/usr/share/X11/xkb/symbols/ctrl。バラよりXKB修正に対する私のスーパーユーザーの答えそしていくつかの追加リソース:

答え2

このファイルは/usr/share/X11/xkb/keycodes/evdev"evdevファイル"ではなく、Xキーボード翻訳テーブル(xkb)の多くのソースファイルの1つです。いいえ、ログインすると読み込まれません。代わりにコンパイラのソースファイルとして機能しxkbcomp、Xサーバーの起動時にコンパイルされたファイルの出力がロードされます。トピック全体はやや複雑なので、ランダムに変更せずに正しく機能するとは思わないでください。あるいは、独自のキーマップを作成する一般的な方法は、次のように書くことです。新しいファイルを削除し、古いファイルを保存します。例を見る信頼できないXKB構成ガイド紹介してみてください。

~/.Xmodmap正しいAltキーをコントロールキーとして使用するには、このファイルをそのままにしてから、次の2行を使用してファイルを作成することをお勧めします。

remove mod4 = Alt_R
add control = Alt_R

xmodmap -pk以前の状態を見て、それをロードしてから、もう一度実行して正しくxmodmap ~/.Xmodmap表示されていることを確認xmodmap -pkして、機能しているかどうかをテストします。

その結果、right altキーは依然として独自のキーコードの下に表示されますが、修飾子として扱われるため、control他のキーと組み合わせることができます。

一部のディスプレイマネージャは~/.Xmodmapログイン時にデフォルトでロードされ、一部の新しいディスプレイマネージャはこの機能を失ったため、これを行うように設定する必要があります。

関連情報