Keeps the screen awake by moving the mouse randomly
Project description
Stimulant
Keeps the screen awake by moving the mouse randomly.
Description
Stimulant is intended to be used as a cli tool or imported to another python project.
If used as a cli tool or with importing stimulant(), Stimulant will move the mouse for the specified runtime. While under the runtime the mouse will move to a random location on the screen. This process will repeat at random intervals. The movement of the mouse is achieved using the pyautogui library. Pyautogui's duration and tweening parameters allow for more natural mouse movement patterns across the screen. To terminate Stimulant, simply press any key on the keyboard.
For more granular control over the logic, the Stimulant class can be imported. The class, along with its public methods, allows for customized use cases to be implemented. An example may be to have the mouse move for an unknown duration of time that would be determined by another process.
Installation
-
Have Python 3.12+ installed (may work with older versions of python)
-
Execute the following command in your console
pip install stimulant
# or install from git repo
pip install git+https://github.com/sidganti/stimulant.git
Documentation
CLI
Run indefinitely
stim
Run for a specified time in seconds
Limited to one day aka 86,400 seconds.
If 0 is given as an argument then Stimulant will run indefinitely.
stim <0-86400>
or
stim -t <0-86400>
or
stim --time <0-86400>
Hotcorner protection
Pass the flag to prevent triggering hotcorners enabled on your device.
stim -c
or
stim --corners
End Stimulant manually
Press any key on the keyboard.
In case something pressing any single key went wrong, you have two options. Use you operating systems preferred termination signal: ctrl+c on Mac/Linux or ctrl+z on Windows. Since pyautogui's failsafe option is enabled you can also drag your mouse to the top left corner of the screen to terminate.
Help
Provides detail on CLI's usage.
stim -h
or
stim --help
Version
Prints the version of Stimulant
stim -V
or
stim --version
stimulant() function
Functions nearly identical to the CLI. The CLI is essentially a wrapper for the stimulant() function.
# recommended individual import
from stimulant import stimulant
# recommended module import
import stimulant as stim
# stimulant function definition
def stimulant(runtime: int = 0, hotcorners: bool = False) -> None:
- runtime
- duration the instance should run
- if 0 is passed in to the function then stimulant will run indefinitely
- hotcorners
- prevents mouse from reaching the edges of the screen
# example function call
stimulant(600, True)
Stimulant class
Encapsulates all of the data and logic required to move the mouse for a specified duration of time.
# recommended individual import
from stimulant import Stimulant
# recommended module import
import stimulant as stim
# Stimulant class constructor definition
def __init__(self, runtime: int = 0, hotcorners: bool = False, animate: bool = True) -> None:
- runtime
- duration the instance should run
- hotcorners
- prevents mouse from touching the edges of the screen
- animate
- flag to determine write to console
# example instantiation
stim = Stimulant(600, True)
start() method
Starts logic to run Stimulant for a specified duration.
# start method definition
def start(self):
# example call
stim.start()
run() method
Alias for the start() method
# run method definition
def run(self):
# example call
stim.run()
move_mouse() method
Moves the mouse to a random position on the screen for a random duration. Also takes advantage of pyautogui's tweening functions to make mouse movement more natural.
# move_mouse method definition
def move_mouse(self) -> None:
# example call
stim.move_mouse()
stop() method
Safely terminates Stimulant instance
# stop method definition
def stop(self) -> None:
# example call
stim.stop()
Future
- Improve threading to allow exception handling and safer thread termination
- Allow access to more variables to cli and class/function calls
- Ability to kill stimulant via callback function
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file stimulant-1.0.1.tar.gz
.
File metadata
- Download URL: stimulant-1.0.1.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bdbec6600131266777324c6c1bc9da10ecb1a92ef68c9a5f301bbcf68f6f4ca |
|
MD5 | 536c28f4a2f0041789e811ee669569eb |
|
BLAKE2b-256 | 22308b35d578e35b58fc4d6ba146b86da18d4a3bb26dec7f647a28cac6f0a75b |
File details
Details for the file stimulant-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: stimulant-1.0.1-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2175a42980d1dd2495b07be1c8d2cede8ee272b072bcef768b45e42840cc40c5 |
|
MD5 | 785518c63c434c2d94bd9096607c3bcf |
|
BLAKE2b-256 | 08eea39089fd3d05ae6dcaed5b655efb2923dc8109a63104a2d02c7f88b11e5f |