i3のほとんどのキーバインディングにはMod4を使用しますが、Mod1を使用します。
bindsym Mod1+a workspace a
bindsym Mod1+b workspace b
bindsym Mod1+c workspace c
bindsym Mod1+d workspace d
...
ただし、これはaltとaltgrをバインドします。これは、一部の文字を入力するためにaltgr + <letter>を使用するため、望ましくありません。
xevは、altがAlt_Lで、altgrがAlt_Rであることを示していますが、bindsym Alt_L+a
機能しません。
答え1
最終的に何が決まるのか?xmodmapmod1を表示します。たとえば、同じ修飾子に表示され、同じ修飾子にある場合は、Alt_L
競合Alt_R
を避けるために、後者を別の修飾子(使用可能な5つの修飾子のうち)に移動する必要があります。
以下は、例を提供するいくつかのページです。
- xmodmap を使用して Alt_R を再マップして、VC ターミナルの切り替えを無効にします。
Alt_R
ユーザーがどこに移動したかを示す例モジュール1到着モード4(そして問題が発生しました)。変更する前にxmodmapの出力を確認してください。 - xmodmap動作修飾子の詳細な例をArchLinuxに示します。到着移動する必須鍵次へ追加それを修飾子に適用し、明らかそれは他のものから来る。
使用するときの1つのトラップは、xmodmap
常にそうではないということです。知るキーシンボルの正しいキーコード(例Alt_R
:)。この問題が発生した場合は、通常、出力を見て問題を解決できます。
xmodmap -pk
鍵用シンボルを押してから、スクリプトから適切なキーコードを割り当てます。たとえば、マシンxmodmap -pk
ディスプレイ
108 0xffea (Alt_R) 0x0000 (NoSymbol) 0xffea (Alt_R)
このスクリプトを使用してください
keycode 108 = Alt_R
remove mod1 = Alt_R
add mod3 = Alt_R
出力を変更します。
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
これに関して:
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3 Alt_R (0x6c)
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
(この特定のシステムでは解決策は必要ありません。)