Keep Microsoft Teams status online by periodically jiggling the mouse via WSL PowerShell interop
Project description
keepmeawake
Keep your Microsoft Teams status active by periodically jiggling the mouse — runs from WSL using PowerShell interop.
How It Works
keepmeawake calls the Windows mouse_event API via PowerShell to move the mouse 1 pixel right and then 1 pixel left on a loop. This tiny, invisible movement is enough to prevent Teams (and Windows) from marking you as idle.
Requirements
- WSL (Windows Subsystem for Linux) with Windows interop enabled
- Python 3.12+
- uv (recommended) or pip
WSL interop must be enabled so that powershell.exe is accessible from within WSL. This is the default, but if you've changed it, ensure /etc/wsl.conf contains:
[interop]
enabled = true
Installation
git clone https://github.com/<you>/keepmeawake.git
cd keepmeawake
uv pip install -e .
Usage
# Run with default settings (jiggle every 60 seconds)
uv run keepmeawake
# Jiggle every 30 seconds with verbose logging
uv run keepmeawake --interval 30 --verbose
Press Ctrl+C to stop.
Options
| Flag | Description |
|---|---|
-i, --interval |
Seconds between each mouse jiggle (default: 60) |
-v, --verbose |
Log each jiggle with a timestamp |
Troubleshooting
powershell.exe not found on PATH
You're either not running inside WSL, or WSL interop is disabled. Check /etc/wsl.conf and restart your WSL instance.
ModuleNotFoundError: No module named 'keepmeawake'
The package isn't installed in your environment. Run uv pip install -e . to fix it.
License
MIT
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file keepmeawake-0.1.0.tar.gz.
File metadata
- Download URL: keepmeawake-0.1.0.tar.gz
- Upload date:
- Size: 3.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6b5827046ca19d1b76fcc2a9a90af5d100c399ad0fab2567ea928271bee0648
|
|
| MD5 |
8a4cca1924bce180e90d322a64aae36b
|
|
| BLAKE2b-256 |
6e6501e9eeb5ee12a23175182fcc444fa99347960afe702e84f7adf0f891cfef
|
File details
Details for the file keepmeawake-0.1.0-py3-none-any.whl.
File metadata
- Download URL: keepmeawake-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2548d16cd3b2fd248e38410ddc011fa43b7602ce74ec3a1da580b6f139fbb6a1
|
|
| MD5 |
2c3662df148e9f1fed1c276185a6aba4
|
|
| BLAKE2b-256 |
9c37911a4f18fbf77d0b055168ed610961a91949f92836cf114e4ac57a9bd5d7
|