
xdotool
bashスクリプトで制御されるマウスの動きを無効にして、そうでなければ問題のないマウスを引き継ぎ、衝突させるようにしたいと思います。
ただし、操作を続行するにはボタンが必要なので、単にマウスを無効にすることはオプションではありません。
これは同じ問題です。これしかし、そこの解決策は私には効果的ではありませんでした。私のマウスにはこれらのプロパティがないようです。
xinput list
マウスを3回見せてください。 ID 10には最も多くの属性があり、残りの2つにはいくつかのオプションがあります。
出力xinput list-props 10
:
Device 'Logitech Gaming Mouse G502':
Device Enabled (152): 1
Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (290): 0.000000
libinput Accel Speed Default (291): 0.000000
libinput Accel Profiles Available (292): 1, 1
libinput Accel Profile Enabled (293): 1, 0
libinput Accel Profile Enabled Default (294): 1, 0
libinput Natural Scrolling Enabled (295): 0
libinput Natural Scrolling Enabled Default (296): 0
libinput Send Events Modes Available (275): 1, 0
libinput Send Events Mode Enabled (276): 0, 0
libinput Send Events Mode Enabled Default (277): 0, 0
libinput Left Handed Enabled (297): 0
libinput Left Handed Enabled Default (298): 0
libinput Scroll Methods Available (299): 0, 0, 1
libinput Scroll Method Enabled (300): 0, 0, 0
libinput Scroll Method Enabled Default (301): 0, 0, 0
libinput Button Scrolling Button (302): 2
libinput Button Scrolling Button Default (303): 2
libinput Middle Emulation Enabled (304): 0
libinput Middle Emulation Enabled Default (305): 0
Device Node (278): "/dev/input/event2"
Device Product ID (279): 1133, 49277
libinput Drag Lock Buttons (306): <no items>
libinput Horizontal Scroll Enabled (307): 1
座標変換行列を操作してみましたが、私が知っている限り何もしません。
他の属性のどれも役に立たないようです。この問題を解決する他の方法はありますか?
編集:出力xinput list
:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Gaming Mouse G502 id=11 [slave pointer (2)]
⎜ ↳ Logitech Gaming Mouse G502 id=10 [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)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Logitech G510 Gaming Keyboard id=8 [slave keyboard (3)]
↳ Logitech G510 Gaming Keyboard id=9 [slave keyboard (3)]
↳ Eee PC WMI hotkeys id=12 [slave keyboard (3)]
↳ Logitech Gaming Mouse G502 id=13 [slave keyboard (3)]
これを使用している間、xinput test <ID>
ID 10のデバイスだけがすべてのイベントに応答することがわかりました。
答え1
明らかに座標変換行列を変更するとする働きましたが、ちょうど間違った方法でしただけです。
すべて 0 に設定すると、行列にまったく影響しません。任意の値を変更すると、影響がある場合とない場合があります。
最後に、マトリックスの右下隅にある項目を増やすとマウスの速度が遅くなることがわかりました。したがって、この値をより大きな値に変更すると、望ましい効果が得られます。
たとえば、
xinput set-prop 10 154 1 0 0 0 1 0 0 0 1000000
これはマウスデバイスID 10にのみ適用されます。
編集:他の1の値を小さい値(たとえば0)に設定すると、速度が遅くなります。したがって、これも機能します。xinput set-prop 10 154 0 0 0 0 0 0 0 0 1
より良い方法はxinput test 10
何も出力しないことです。
しかし、xdotoolと一緒に使用すると、カーソルが画面の左上に移動することがわかりました。これがまだこの質問の範囲内にあるかどうかはわかりませんが、それでも問題です。
Edit2: 画面左上へのジャンプがxdotool mousemove
。上記の行列設定を使用してこれらのコマンドを発行した後にマウスを動かすと、マウスポインタが左上に移動します。
これが発生しないようにするには、相対移動を実行するだけです。たとえば: xdotool mousemove X Y mousemove_relative 1 1 mousemove_relative -- -1 -1
。これにより、追加のマウスの動きに影響されずに、指定されたX座標とY座標にポインタが移動します。