キーパッドキーを修飾子に再マッピングする

キーパッドキーを修飾子に再マッピングする

私はいくつかの調査をしましたが、うまくいく解決策が見つかりませんでした。キーボードボタンをどのように作成できますか? 、、、、、KP_1KP_2まったく同じですかKP_3Shift_LAlt_LControl_L

私はLinux Mint 17シナモンを使用しています。

新しいキーがDota 2で動作することを願っています(しかし、世界中で動作していても構いません)。別の方法を試しましたが、どちらも期待どおりに機能しません。

xmodmap

端末で実行します。

xmodmap -e "keycode 87 = Shift_L"
xmodmap -e "keycode 88 = Alt_L"
xmodmap -e "keycode 89 = Control_L"

結果:

  • オペレーティングシステム:KP_1およびKP_2動作する必要がある方法(例:ShiftおよびAlt)は機能しますが、どういうわけか動作しませkp_3ん。Ctrl
  • Dota 2: , kp_1, 動作kp_2しません // (なぜ?)kp_3ShiftAltCtrl

remap.inc文書

次の行を追加しました。/etc/console-setup/remap.inc

keycode  79 = Shift
keycode  80 = Alt
keycode  81 = Control

その後実行

sudo dpkg-reconfigure console-setup -phigh

結果:どこにも動作しません。このキーコードが「xev」が返すものとなぜ異なるのかわかりませんが、ダンプキーを使用して見つけたものは次のとおりです。

sudo dumpkeys | egrep "^keycode.*KP_[123]"
keycode  79 = KP_1            
keycode  80 = KP_2            
keycode  81 = KP_3 

xbindkeys+xte

次の行を追加しました~/.xbindkeysrc

"xte 'key Shift_L'"
    Mod2 + KP_End

端末で「xbindkeys」を実行してください。
結果:どこにも機能しません(おそらく一度だけ押すだけです。通常のボタンのように押し続けている場合は、押し続けたいShift_L)。KP_1Shift

答え1

新しいキーを修飾子キー(Shift、Ctrl、Altなど)にマップするには、keycodewithを使用するだけではxmodmap不十分です。次の作業を行う必要があります。

keycode 87 = Shift_L
clear shift
add shift = Shift_L

keycode 88 = Alt_L
clear mod1
add mod1 = Alt_L

keycode 89 = Control_L
clear control
add control = Control_L

マニュアルページにはいくつかの例がありますxmodmap(1)。複数回呼び出す代わりに、これらのコマンドをxmodmaprcファイルに入れて実行できます。xmodmap xmodmaprcxmodmap -e

関連情報