Weather Effect is a GNOME Shell extension that adds beautiful animated weather effects (snow or rain) to your desktop wallpaper or as a full-screen overlay. Enjoy the magic of falling snowflakes or raindrops on your GNOME desktop!
- ❄️ Snow Effect: Beautiful animated snowflakes falling on your desktop
- 🌧️ Rain Effect: Realistic rain animation with customizable particles
- Display Modes:
- Wallpaper Mode: Effects only on desktop wallpaper background
- Screen Mode: Full-screen overlay that works even in overview
- Customizable Settings:
- Particle count (5-50)
- Particle size (4-32 pixels)
- Speed control (Slow, Medium, Fast)
- Color customization for snow and rain
- Custom emoji support (❄, ❅, ❆, 💧)
- Multi-Monitor Support: Automatically works across all connected monitors
- Smart Behavior: Pauses when desktop is obscured by fullscreen windows
- Quick Settings Integration: Easy access through GNOME Quick Settings menu
- GNOME Shell 45+
-
Download last weather-effect@quinsaiz.github.shell-extension.zip
-
Install:
gnome-extensions install weather-effect@quinsaiz.github.shell-extension.zip
-
Log out and log back in
If you want to build the extension from source code, follow these steps:
- Node.js (v16 or higher)
- npm (comes with Node.js)
- glib-compile-schemas (usually comes with GNOME development packages)
sudo apt install nodejs npm gir1.2-glib-2.0sudo dnf install nodejs npm glib2-develsudo pacman -S nodejs npm glib2-
Clone the repository:
git clone https://github.com/quinsaiz/weather-effect.git cd weather-effect -
Install dependencies:
npm i
-
Build the extension:
npm run build
This will:
- Compile TypeScript files to JavaScript
- Create the extension archive (.zip) and install it
- Open Quick Settings by clicking the system menu in the top-right corner
- Click the Weather Effect toggle (weather icon)
- Select effect type:
- Choose between Snow ❄️ or Rain 🌧️ using the horizontal selector buttons
- Configure settings (optional):
- Open GNOME Extensions app
- Click the ⚙️ gear icon next to Weather Effect
- Adjust particle count, size, speed, colors, and display mode
weather-effect/
│
├── src/
│ ├── extension.ts # Main extension entry point
│ ├── metadata.json # Extension manifest
│ ├── prefs.ts # Preferences window
│ └── lib/
│ ├── WeatherEffectController.ts # Main orchestrator
│ ├── UIManager.ts # Quick Settings UI components
│ ├── MonitorManager.ts # Monitor actor management
│ ├── ObscurationManager.ts # Window obscuration detection
│ ├── ParticleManager.ts # Particle creation & animation
│ └── Debug.ts # Centralized logging
│
├── schemas/
│ └── org.gnome.shell.extensions.weather-effect.gschema.xml
│
├── scripts/
│ └── build.sh # Build and installation script
│
├── package.json # Dependencies & build scripts
├── tsconfig.json # TypeScript compiler options
├── LICENSE # GPLv3 License
└── README.md # This file
The extension can be configured through the GNOME Extensions app settings:
- Effect Type: Snow or Rain
- Display Mode: Wallpaper only or Full screen overlay
- Particle Count: 5 to 50 particles
- Particle Size: 4 to 32 pixels
- Speed: Slow, Medium, or Fast
- Snow Color: White, Light Blue, or Silver
- Rain Color: Gray or Dark Blue
- Custom Emojis: Choose custom emoji or use default shapes
GitHub: https://github.com/quinsaiz
This project is licensed under the GPLv3 License.
If you like this project, please give it a star on GitHub!
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.