The Google Doodle Rainmeter Widget is a Rainmeter skin that automatically fetches and animates the daily Google Doodle directly on your desktop!
- Automated Daily Fetching: A lightweight Python script silently runs in the background to scrape the official Google Doodle from the Google homepage and download today's animated GIF based on your region (the region is detected by Google).
- Smart Spritesheets: The script seamlessly converts the GIF into a vertical spritesheet, bypassing Rainmeter's standard GIF limitations.
- Optimized Rendering: Utilizes Rainmeter's native
Bitmapmeter withBitmapExtend=1. The image is loaded directly into memory once, ensuring zero disk polling during animation. - Dynamic Framerate Math: Automatically calculates the optimal Rainmeter
UpdateDividerbased on the native framerate of the daily GIF. It limits unnecessary calculation cycles to save battery while preserving flawless frame-sync. - Intelligent Hardware Freeze: Includes a built-in
UsageMonitorthat tracks your CPU, GPU, and Disk. If your system exceeds 60% load, the animation instantly freezes to yield power back to your PC. - Smart Refresh Delay: Automatically checks for a new doodle every 3 hours and at exactly midnight. If your system is under heavy load, the refresh is safely queued until your PC drops below 60% load for 3 uninterrupted seconds.
- Interactive Tooltips: Hovering over the doodle displays the official title of the daily event, and clicking it takes you directly to the Google Search results!
- Rainmeter
- Python 3.x
- To verify you have python installed open a terminal and run
python --versionandpip --version. If both commands return a version number you are good to go, otherwise install python. - After installing python install the required background scraping engine:
pip install playwright playwright install chromium
- To verify you have python installed open a terminal and run
- ImageMagick
- Install the latest version natively via Winget:
winget install ImageMagick.ImageMagick
- (Scoop also has a slightly older version of ImageMagick if you don't like winget)
- Install the latest version natively via Winget:
- Open your terminal and navigate to your Rainmeter Skins folder:
cd %USERPROFILE%\Documents\Rainmeter\Skins\
- Either download this repository as a
.zipand extract it here, or clone it via git:Important: Ensure your final folder structure looks exactly like this:git clone https://github.com/chleved/Google-Doodle.git
...\Documents\Rainmeter\Skins\GoogleDoodle\ │ GoogleDoodle.ini │ FetchDoodle.py │ README.md - RESTART: If Rainmeter was running while you installed Python or ImageMagick, you must exit Rainmeter (right-click the teardrop icon in your system tray -> Exit) and relaunch it. Otherwise, Rainmeter will not recognize the new commands.
- Open Rainmeter and load the
GoogleDoodle.iniskin!
The skin is optimized to display the doodle at ~60 FPS (using an internal 16ms update tick) to perfectly sync with high-quality doodles. However, you can easily reduce this to save performance.
To modify the framerate, open GoogleDoodle.ini and locate the two update variables at the very top of the file:
- Under
[Rainmeter], changeUpdate - Under
[Variables], changeSkinUpdate
IMPORTANT: Both of these values must have the same value for the animation math to correctly track real-world time.
Example configurations:
- 60 FPS (Default): Set both to
16 - 30 FPS: Set both to
32 - 15 FPS: Set both to
64(Most doodles are drawn at this framerate) - 8 FPS: Set both to
128*
No matter what framerate you choose, the widget's internal math will skip frames to ensure that the displayed doodle animation runs for the same time as the original gif.
- Conversion from ms to fps for variables
- Variable to modify doodle duration (1.1x, 0.7x, 300 ms, 3 s)
- Variable to modify load threshold for freezing
- Improve load detection logic
- Refine installation and requirements section for dummies
