Automated mouse jiggler scheduling for GL-iNet Comet (GL-RM1) KVM devices.
Schedule the built-in GLKVM mouse jiggler to activate during configurable hours. Runs entirely on the Comet device — no software required on the connected computer.
- Device-based — Runs on the Comet itself, not the connected PC
- Transparent — Appears as normal USB HID input to the host
- Scheduled — Cron-based automation with configurable work hours
- Persistent — Survives device reboots
- Simple — One-command installation with interactive prompts
- Stealth — No detectable processes, tasks, or network traffic on the host
- GL-iNet Comet (GL-RM1) with SSH access enabled
- Admin password from initial device setup
- SSH client (PuTTY, Terminal, etc.)
- 2FA/TOTP must be disabled — The PiKVM API does not support OTP tokens via command line (API reference)
- SSH into your Comet:
ssh root@glkvm.local
# Or: ssh root@<device_ip>- Download and run the installer:
wget https://raw.githubusercontent.com/NoBloodyABCorD/comet-jiggler-scheduler/main/install.sh
chmod +x install.sh
./install.shThe installer will prompt for your admin password and schedule configuration.
The installer prompts for the following options:
| Option | Default | Description |
|---|---|---|
| Admin password | (required) | Your Comet web UI password |
| Start time | 07:30 |
When jiggler activates (24-hour format) |
| End time | 17:00 |
When jiggler deactivates (24-hour format) |
| Days | 1-5 |
Cron day format (1-5 = Mon-Fri) |
| Value | Days |
|---|---|
1-5 |
Monday through Friday |
1-6 |
Monday through Saturday |
0-6 |
Every day |
1,3,5 |
Monday, Wednesday, Friday |
0 or 7 |
Sunday only |
After installation, the jiggler runs automatically on schedule. Manual control:
/usr/local/bin/toggle_jiggler.sh enable/usr/local/bin/toggle_jiggler.sh disable/usr/local/bin/toggle_jiggler.sh statuscat /var/log/mousejiggler.logcrontab -l- Cron scheduler runs on the Comet at configured times
- API call to GLKVM enables/disables the built-in mouse jiggler
- HID events sent to connected PC via USB (tiny mouse movements every 60 seconds)
- Applications (Teams, Slack, etc.) detect activity and maintain "Available" status
- No software installed on the host PC
- No running processes on Windows/Mac/Linux
- No scheduled tasks on the host
- No network traffic from the host
- Mouse movements appear as genuine USB HID input
- Task Manager shows nothing unusual
ps aux | grep crond/usr/sbin/crondls -l /usr/local/bin/toggle_jiggler.sh
# Should show: -rwx------ (700)# Check jiggler state
curl -sk https://localhost/api/hid \
-H "X-KVMD-User: admin" \
-H "X-KVMD-Passwd: YOUR_PASSWORD"
# Enable manually
curl -sk -X POST "https://localhost/api/hid/set_params?jiggler=true" \
-H "X-KVMD-User: admin" \
-H "X-KVMD-Passwd: YOUR_PASSWORD"
# Disable manually
curl -sk -X POST "https://localhost/api/hid/set_params?jiggler=false" \
-H "X-KVMD-User: admin" \
-H "X-KVMD-Passwd: YOUR_PASSWORD"See PiKVM API documentation for more details.
| Problem | Solution |
|---|---|
| 403 Forbidden | Check admin password in script, or disable 2FA/TOTP |
| Connection refused | Verify Comet is responsive, restart if needed |
| Jiggler not working | Ensure USB HID connection is active in web UI |
| Teams still shows Away | Check if org policy enforces stricter timeout |
SSH into your Comet and run:
wget -qO- https://raw.githubusercontent.com/NoBloodyABCorD/comet-jiggler-scheduler/main/uninstall.sh | shOr manually:
# Disable jiggler
/usr/local/bin/toggle_jiggler.sh disable
# Remove cron jobs
crontab -l | grep -v toggle_jiggler | crontab -
# Remove script and logs
rm -f /usr/local/bin/toggle_jiggler.sh
rm -f /var/log/mousejiggler.logCustom configurations may be lost during Comet firmware updates. Simply re-run the installer:
./install.sh- Password stored in
/usr/local/bin/toggle_jiggler.shwith700permissions (root only) - All API calls use localhost — no external network exposure
- Script runs as root via cron
MIT