Metadata-Version: 2.4
Name: desk-awake
Version: 1.0.0
Summary: Cross-platform idle activity simulator with AnyDesk integration
Author: Abhinav Hudda
License-Expression: MIT
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: pynput>=1.7.0
Provides-Extra: mac
Requires-Dist: pyobjc-core>=9.0; extra == "mac"
Requires-Dist: pyobjc-framework-ApplicationServices>=9.0; extra == "mac"
Requires-Dist: pyobjc-framework-Cocoa>=9.0; extra == "mac"
Requires-Dist: pyobjc-framework-Quartz>=9.0; extra == "mac"

# Desk Awake

Cross-platform idle activity simulator. Keeps your session active by generating mouse movements and keyboard actions until a specified time.

Auto-detects the OS and uses appropriate modifier keys (`Cmd` on macOS, `Ctrl` on Linux/Windows) and system commands.

## Installation

```bash
pip install desk-awake

# On macOS, include the optional mac dependencies
pip install "desk-awake[mac]"
```

## Usage

Once installed, the `desk-awake` command is available globally:

```bash
# Run until a specific time (24h format)
desk-awake --until "18:30"

# Run until a specific date and time
desk-awake --until "2025-01-15 17:00"

# Short flag works too
desk-awake -u "18:30"
```

### Multi-day mode

Run daily on a schedule until a specific end date:

```bash
# Run every day from 09:00 to 18:30, until June 15th
desk-awake -u "18:30" --start "09:00" --end-date "2026-06-15"
```

### Exit behavior flags

| Flag | Description |
|------|-------------|
| `--close-anydesk` | Close AnyDesk when done (default) |
| `--no-close-anydesk` | Don't close AnyDesk when done |
| `--sleep` | Put machine to sleep when done |
| `--no-sleep` | Don't sleep when done |

### OS-specific defaults

| OS | Close AnyDesk | Sleep |
|----|---------------|-------|
| macOS | ✅ | ✅ |
| Linux | ✅ | ❌ |
| Windows | ✅ | ✅ |

Override any default with the flags above.

### Examples

```bash
# Ubuntu: run until 6:30 PM, close AnyDesk, no sleep (default)
desk-awake -u "18:30"

# macOS: run until 6:30 PM, close AnyDesk, sleep (default)
desk-awake -u "18:30"

# macOS: skip sleep
desk-awake -u "18:30" --no-sleep

# Linux: force sleep too
desk-awake -u "18:30" --sleep

# Multi-day: run 09:00–18:30 daily until a date
desk-awake -u "18:30" -s "09:00" -e "2026-06-15"

# Keep everything running, don't close anything
desk-awake -u "18:30" --no-close-anydesk --no-sleep
```

## Running without installing

```bash
python -m desk_awake --until "18:30"
```

## Requirements

- Python 3.8+
- `pynput` (installed automatically)
- On macOS: `pyobjc` packages (install with `pip install "desk-awake[mac]"`)
- On Linux: may need `xdotool` or X11 libs depending on your display server
