マウスの検出movementは、いくつかのツールで実行できます。 2つの例:
スクリプトでxdotool
を使用する:
[xdotool
をインストールする必要があります]:
Sudo apt-get install xdotool
時間間隔を空けて、2つのマウス位置を(ループで)比較します。xdotool
からマウス位置を取得するコマンド:
$ xdotool getmouselocation
x:1449 y:137 screen:0 window:79691788
(python)スクリプトでこの出力を解析すると、マウスが移動した場合(position1がposition2と等しくない場合)、コマンドを実行させることができます。
#!/usr/bin/env python3
import subprocess
import time
def get_mousepos():
curr = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8")
return [int(it.split(":")[1]) for it in curr.split()[:2]]
current1 = get_mousepos()
while True:
time.sleep(0.5)
current2 = get_mousepos()
if not current1 == current2:
# run a command:
print("action")
current1 = current2
(pythonの)tkinter
を使用するpython
自身のtkinter
でもまったく同じプロセスを実行できます。
[tkinter3
インストールする] ::
Sudo apt-get install python3-tk
tkinter
を使用したスクリプト:
#!/usr/bin/env python3
from tkinter import*
import time
root = Tk()
def current_position():
return [root.winfo_pointerx(), root.winfo_pointery()]
pos1 = current_position()
while True:
time.sleep(0.5)
pos2 = current_position()
if not pos1 == pos2:
# run a command:
print("action!")
pos1 = pos2
root.mainloop()
マウスが不法侵入したときに実行するコマンドを制御するためにできることの例特定の位置(行)。
#!/usr/bin/env python3
import subprocess
def get_mousepos():
curr = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8")
return [int(it.split(":")[1]) for it in curr.split()[:2]]
current1 = get_mousepos()
while True:
current2 = get_mousepos()
# make the jump depend on the position and direction:
jump = 100 if current2[1] < 525 else -100
if current2[0] < 1000 and current1[0] >= 1000:
print("gone left") # you can run any other command here, like:
subprocess.Popen(["xdotool", "mousemove", str(current2[0]), str(current2[1]+jump)])
Elif current2[0] > 1000 and current1[0] <= 1000:
print("gone right") # you can run any other command here
subprocess.Popen(["xdotool", "mousemove", str(current2[0]), str(current2[1]-jump)])
current1 = current2
この例では、マウスを左から右へ、またはその逆に移動すると、マウスがジャンプします。
この場合、マウスは固定ジャンプにジャンプします。ただし、いくつかの数学を投入し、ジャンプラインを画面の右側に移動します(2番目の画面の左上に別の「配置」)、ジャンプを行うことができます比例、最初の質問で目指しているセットアップを作成するには:マウスをある画面から別の画面に移動するときに、両方の画面を同じ画面解像度(seem)にします。
ある画面から別の画面にマウスを移動できない「デッドコーナー」は存在しません。 (2つの画面に作業状況があります)
ただし、ウィンドウが2つの画面にまたがっている場合、ウィンドウには奇妙な効果がありますが、実行できます。
いいえ、X環境のドライバーをカスタマイズしなければ不可能です。必要なことを行うには、構成変更メソッドが必要です。