84 lines
3.5 KiB
Python
84 lines
3.5 KiB
Python
##
|
|
## Install these needed libraries if script doesn't work.
|
|
##
|
|
## sudo pip3 install python3_xlib
|
|
## sudo pip3 install keyboard pyautogui
|
|
##
|
|
##
|
|
import time
|
|
import keyboard, pyautogui
|
|
|
|
pyautogui.FAILSAFE = False # If we hit corner, that's ok
|
|
# Let piautogui make updates as quick as it can...
|
|
pyautogui.MINIMUM_DURATION = 0
|
|
pyautogui.PAUSE = 0
|
|
|
|
|
|
class Main:
|
|
def __init__(self):
|
|
self.isAcceptingMovement = False
|
|
self.sleepTime = 0.009
|
|
self.speed = 1;
|
|
self.modRate = 0; ## This controls mouse move speed by increasing it the longer the key combo is held.
|
|
self.keyCombo1 = "ctrl"
|
|
self.keyCombo2 = "shift"
|
|
self.keyCombo3 = 'end'
|
|
self.exitKey = 'c' ## Key combo exit key.
|
|
self.startRun()
|
|
|
|
|
|
def startRun(self):
|
|
print("Available Keys Are:")
|
|
print(pyautogui.KEYBOARD_KEYS)
|
|
print("\n\nTo Toggle Detection Press:")
|
|
print(self.keyCombo1 + " + " + self.keyCombo2 + " + " + self.keyCombo3)
|
|
print("Detection State: " + str(self.isAcceptingMovement))
|
|
while True:
|
|
try:
|
|
if keyboard.is_pressed(self.keyCombo1) and keyboard.is_pressed(self.keyCombo2):
|
|
self.checkDetectionState()
|
|
|
|
if self.isAcceptingMovement:
|
|
if keyboard.is_pressed('up') and keyboard.is_pressed('left'):
|
|
pyautogui.moveRel( (-self.speed - self.modRate), (-self.speed - self.modRate) );
|
|
elif keyboard.is_pressed('up') and keyboard.is_pressed('right'):
|
|
pyautogui.moveRel( (self.speed + self.modRate), (-self.speed - self.modRate) );
|
|
elif keyboard.is_pressed('down') and keyboard.is_pressed('left'):
|
|
pyautogui.moveRel( (-self.speed - self.modRate), (self.speed + self.modRate) );
|
|
elif keyboard.is_pressed('down') and keyboard.is_pressed('right'):
|
|
pyautogui.moveRel( (self.speed + self.modRate), (self.speed + self.modRate));
|
|
elif keyboard.is_pressed('up'):
|
|
pyautogui.moveRel(0, -(self.speed + self.modRate));
|
|
elif keyboard.is_pressed('down'):
|
|
pyautogui.moveRel(0, (self.speed + self.modRate));
|
|
elif keyboard.is_pressed('left'):
|
|
pyautogui.moveRel( -(self.speed + self.modRate), 0);
|
|
elif keyboard.is_pressed('right'):
|
|
pyautogui.moveRel( (self.speed + self.modRate), 0);
|
|
else:
|
|
# Allows us to reset to 0 after sleeping and incramenting from below
|
|
self.modRate = -1
|
|
|
|
time.sleep(self.sleepTime)
|
|
self.modRate += 0.2
|
|
|
|
if keyboard.is_pressed('enter'):
|
|
pyautogui.click();
|
|
elif keyboard.is_pressed(self.exitKey):
|
|
break;
|
|
except Exception as e:
|
|
print( repr(e) )
|
|
break;
|
|
|
|
|
|
def checkDetectionState(self):
|
|
if keyboard.is_pressed(self.keyCombo3):
|
|
self.isAcceptingMovement = not self.isAcceptingMovement
|
|
print("Detection State: " + str(self.isAcceptingMovement))
|
|
time.sleep(1)
|
|
|
|
|
|
## Start the program and loop untill key combo for quit is pressed
|
|
if __name__ == '__main__':
|
|
main = Main()
|