Metadata-Version: 2.4
Name: stayactive
Version: 1.0.1
Summary: A smart activity simulator utility that keeps your computer active while respecting your actual usage
Author: Rajdeep Banik
Author-email: Rajdeep Banik <banik.rajdeep1056@gmail.com>
License: MIT License
        
        Copyright (c) 2024 Rajdeep Banik
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/rajdeepbanik/stayactive
Project-URL: Repository, https://github.com/rajdeepbanik/stayactive
Project-URL: Issues, https://github.com/rajdeepbanik/stayactive/issues
Keywords: activity,simulator,automation,mouse,keyboard,stay-active
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: Utilities
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyautogui
Requires-Dist: pynput
Dynamic: author
Dynamic: license-file
Dynamic: requires-python

# StayActive

A smart activity simulator utility that keeps your computer active while respecting your actual usage.

## Features

- **Smart Mouse Movement**: Randomly moves cursor within configurable pixel ranges
- **Periodic Key Presses**: Sends shift key presses at intervals to prevent sleep
- **User Activity Detection**: Automatically pauses when you're actually using your computer
- **Safety First**: Monitors real mouse/keyboard input and gets out of your way
- **Configurable**: Adjustable intervals, movement ranges, and activity timeouts

## Installation

```bash
pip install stayactive
```

## Usage

### Command Line
```bash
stayactive
```

### Python Module
```python
from stayactive import main
main()
```

## How It Works

StayActive runs in the background and:

1. **Moves your mouse cursor** slightly every 3 seconds
2. **Presses the shift key** every 60 seconds (20 × 3s intervals)
3. **Monitors your real activity** using mouse and keyboard listeners
4. **Pauses automatically** when you move the mouse, click, scroll, or type
5. **Resumes after 5 seconds** of inactivity

### Safety Features

- 🔴 **Auto-pause**: Detects real user input and pauses immediately
- 🟢 **Auto-resume**: Waits for inactivity before resuming automation
- 🛡️ **Non-intrusive**: Never interferes with your actual work

## Configuration

You can modify these constants in the source:

```python
MOVE_INTERVAL_SECONDS = 3      # How often to move mouse
MIN_PIXELS_TO_MOVE = 1         # Minimum movement distance
MAX_PIXELS_TO_MOVE = 15        # Maximum movement distance
KEY_PRESS_INTERVAL = 20        # Shift key every N mouse moves
USER_ACTIVITY_TIMEOUT = 5      # Seconds to wait after user stops
```

## Requirements

- Python 3.6+
- pyautogui
- pynput

## License

MIT License - see LICENSE file for details.

## Author

Rajdeep Banik (banik.rajdeep1056@gmail.com)
