A minimalist Chrome extension that simulates mouse movements and keyboard activity to keep your screen active. Designed with a clean, modern zen-inspired interface.
- 🎨 Elegant Design: Clean, minimalist interface with smooth breathing animations
- ⏱️ Customizable Intervals: Set movement frequency from 5 to 120 seconds
- 🖱️ Smart Movement Simulation: Combines mouse movements, clicks, and keyboard inputs
- ⚡ Low Resource Usage: Optimized for minimal CPU and memory consumption
- 🍏 macOS Support: Includes a helper script for enhanced macOS compatibility
The extension will be available on the Chrome Web Store soon.
- Download or clone this repository
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top-right corner
- Click "Load unpacked" and select the ZenMotion folder
- The extension icon should appear in your browser toolbar
ZenMotion/
├── src/
│ ├── js/
│ │ ├── background.js
│ │ └── popup.js
│ ├── css/
│ │ └── popup.css
│ ├── html/
│ │ ├── popup.html
│ │ └── icon-generator.html
│ ├── icons/
│ │ ├── icon16.png
│ │ ├── icon19.png
│ │ ├── icon32.png
│ │ ├── icon38.png
│ │ ├── icon48.png
│ │ ├── icon128.png
│ │ ├── icon.svg
│ │ └── icon_active.svg
│ └── utils/
│ ├── generate-icons.js
│ └── mac-helper.sh
├── manifest.json
├── package.json
├── build.sh
└── README.md
- Click the ZenMotion icon in your browser toolbar to open the popup
- Click the large toggle button to activate/deactivate the extension
- Adjust the movement interval using the slider (default: 30 seconds)
- The extension will run in the background, simulating activity at your set interval
macOS implements stricter power management and security restrictions compared to other operating systems. These restrictions can prevent browser extensions from effectively keeping your system awake for several reasons:
- App Nap: macOS may put Chrome into a low-power state if it determines the browser isn't actively being used
- Sandboxing: Chrome extensions run in a sandboxed environment with limited system access
- Power Management: macOS aggressively manages power regardless of browser activity
- Security Restrictions: System-level functions require elevated permissions that extensions cannot obtain
The mac-helper.sh script uses the native caffeinate command to directly interface with macOS power management, providing a more reliable solution.
- Simply double-click the
activate-mac-helper.commandfile in the ZenMotion folder - If prompted about security, go to System Preferences → Security & Privacy → General and click "Open Anyway"
- The helper will run with all prevention methods enabled
- Open Terminal
- Navigate to the ZenMotion folder
- Make the script executable:
chmod +x src/utils/mac-helper.sh - Run the script:
./src/utils/mac-helper.sh -d
Options:
-d: Prevent display sleep-s: Prevent system sleep (most aggressive)-a: Use all prevention methods (recommended for stubborn Macs)-t <minutes>: Specify duration (e.g.,-t 120for 2 hours)
- Clone the repository
- Install dependencies:
npm install - Generate icons:
npm run generate-icons
To package the extension for the Chrome Web Store:
./build.sh
This script will:
- Install dependencies
- Generate icons
- Create a ZIP file ready for the Chrome Web Store
- Make sure all icons are generated:
npm run generate-icons - Create a ZIP file with all required files:
zip -r zenmotion.zip manifest.json src/ - Upload the ZIP file to the Chrome Developer Dashboard
If the extension isn't preventing sleep:
- Ensure the extension is active (blue toggle button)
- Try a shorter movement interval (10-15 seconds)
- Use the "Force Movement Now" button to test functionality
- For macOS, use the included helper script for better results
- Check the debug information for any error messages
ZenMotion requires the following permissions:
scripting: To simulate mouse and keyboard activitystorage: To save your settingsalarms: For reliable timing of movementstabs: To interact with browser tabs
The extension does not collect or transmit any personal data.
MIT License
Created by yniijia