web-dev-qa-db-ja.com

コントロールキーとして機能するマウスボタンを再マップします。

Logitech darkfeildマウス(ガラスで動作するマウス)を使用していますが、現在使用されていないボタン(ズームボタン)の1つを選択したキーボードボタン(コントロールまたは夕食)として機能させるにはどうすればよいですか? .... 13.04も使用しています。..参考までに。

ありがとう

5
powell4076
2

いくつかのデスクトップ環境(DE)とさまざまなウィンドウマネージャー(WM)を組み合わせることで、マウスからの入力でかなりの機能を実現できますが、変更する可能性のある1つのあいまいな設定をカバーできない場合があります。私の場合、すべてのマシンでLogitech M510マウスを使用していますが、「進む」および「戻る」ボタン(親指のボタン)を使用してインターネットをブラウズするのではなく、マウスの中ボタンに使用することを好みます。 。 Blenderで1時間以上モデリングを行うと、中指が痛くなるでしょう。この変更を行うには、「xinput」コマンドを使用してXデバイス自体を構成する必要があります。

まず、使用したいデバイス、この場合はLogitech M510マウスを見つける必要があります。これは、次のようにxinputコマンドを使用して、最初にすべてのXデバイスをリストすることで実行できます。

$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Natural® Ergonomic Keyboard 4000        id=11   [slave  pointer  (2)]
⎜   ↳ Logitech Unifying Device. Wireless PID:1025       id=12   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
     ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
     ↳ Power Button                              id=6    [slave  keyboard (3)]
     ↳ Video Bus                                 id=7    [slave  keyboard (3)]
     ↳ Power Button                              id=8    [slave  keyboard (3)]
     ↳ Sleep Button                              id=9    [slave  keyboard (3)]
     ↳ Microsoft Natural® Ergonomic Keyboard 4000        id=10   [slave  keyboard (3)]
     ↳ BisonCam, NB Pro                          id=13   [slave  keyboard (3)]
     ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]

私のマウスは仮想コアポインターの下にあり、Xデバイスid = 12としてコンピューターに(USB経由で)接続されているポイントに特別な注意を払ってください。必要なわけではありませんが、知っておくといいので、デバイスの詳細が必要な場合は次のようにします(12はXデバイスIDです)。

$ xinput list 12
Logitech Unifying Device. Wireless PID:1025     id=12   [slave  pointer  (2)]
        Reporting 7 classes:
                Class originated from: 12. Type: XIButtonClass
                Buttons supported: 24
                Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back" "Button Task" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown"
                Button state:
                Class originated from: 12. Type: XIValuatorClass
                Detail for Valuator 0:
                  Label: Rel X
                  Range: -1.000000 - -1.000000
                  Resolution: 1 units/m
                  Mode: relative
                Class originated from: 12. Type: XIValuatorClass
                Detail for Valuator 1:
                  Label: Rel Y
                  Range: -1.000000 - -1.000000
                  Resolution: 1 units/m
                  Mode: relative
                Class originated from: 12. Type: XIValuatorClass
                Detail for Valuator 2:
                  Label: Rel Horiz Wheel
                  Range: -1.000000 - -1.000000
                  Resolution: 1 units/m
                  Mode: relative
                Class originated from: 12. Type: XIValuatorClass
                Detail for Valuator 3:
                  Label: Rel Vert Wheel
                  Range: -1.000000 - -1.000000
                  Resolution: 1 units/m
                  Mode: relative
                Class originated from: 12. Type: XIScrollClass
                Scroll info for Valuator 2
                  type: 2 (horizontal)
                  increment: 1.000000
                  flags: 0x0
                Class originated from: 12. Type: XIScrollClass
                Scroll info for Valuator 3
                  type: 1 (vertical)
                  increment: -1.000000
                  flags: 0x2 ( preferred )

ボタンの機能を再構成するのは、ボタンマップを変更するだけです。次のように既存のボタンマップを取得します。

$ xinput get-button-map 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24    

これが現在のボタンマップです。これをボタンの配列と考えてください。各値は、そのインデックスでのボタンの「機能」です。残念ながら、この結論に至った経緯を思い出すことはできませんが、マウスではボタン8、9、10の機能を変更して、ボタン2のように動作させたいと思います。次のように、Xデバイスのボタンマップとして設定し直します。

$ xinput set-button-map 12 1 2 3 4 5 6 7 2 2 2 11 12 13 14 15 16 17 18 19 20 21 22 23 24

これを永続的なソリューションにするために、ログイン時に実行される上記のコマンドを.profileに追加します。ただし、コンピューターに接続されているデバイスによっては、デバイスIDがブートごとに変わる場合があります。これを回避するには、次のようにgrepとawkを使用してデバイスIDを見つけ、それをxinputコマンドに渡します。

MOUSE_ID=`xinput list | grep -i Logitech | awk -F= '{ print $2}' | awk '{print $1}'` `xinput set-button-map $MOUSE_ID 1 2 3 4 5 6 7 2 2 2 11 12 13 14 15 16 17 18 19 20 21 22 23`

上記の行は.profileファイルに追加され、デバイスはxinputリストから動的に配置され、ボタン機能を必要に応じて再マッピングします。ただし、上記の例のLogitechはあいまいであるため(Logitechデバイスは1つしかないため)、xinputコマンドの出力から、grepが一致する特定の情報を入力する必要がある場合があります。

0
GuestGM