๐ค๏ธ Desktop Weather Widget
A beautiful, feature-rich desktop weather widget for Windows with 15-minute precision nowcast, real-time weather updates, and bilingual support (Serbian/English).
๐ฏ Better than Microsoftโs built-in weather widget!
Desktop weather widget with bilingual support and 15-minute nowcast precision
๐ Whatโs New in v2.1.7
๐ฐ๏ธ Windows Location API Support - NEW!
Accurate location detection using your deviceโs GPS and Wi-Fi triangulation:
- ๐ Dual Location System: Choose between IP-based (API Location) or GPS/Wi-Fi (Windows Location)
- ๐ฏ Precise positioning: Uses the same location API as Windows apps - no more wrong city from IP!
- ๐ Easy switching: Toggle via tray menu "Location Source"
- โ ๏ธ Smart detection: Auโฆ
๐ค๏ธ Desktop Weather Widget
A beautiful, feature-rich desktop weather widget for Windows with 15-minute precision nowcast, real-time weather updates, and bilingual support (Serbian/English).
๐ฏ Better than Microsoftโs built-in weather widget!
Desktop weather widget with bilingual support and 15-minute nowcast precision
๐ Whatโs New in v2.1.7
๐ฐ๏ธ Windows Location API Support - NEW!
Accurate location detection using your deviceโs GPS and Wi-Fi triangulation:
- ๐ Dual Location System: Choose between IP-based (API Location) or GPS/Wi-Fi (Windows Location)
- ๐ฏ Precise positioning: Uses the same location API as Windows apps - no more wrong city from IP!
- ๐ Easy switching: Toggle via tray menu "Location Source"
- โ ๏ธ Smart detection: Automatically detects if Location services are disabled
- ๐ Helpful guidance: Bilingual setup instructions when needed
- โ Automatic fallback: Falls back to API Location if Windows Location unavailable
Example accuracy:
API Location (IP): Belgrade (ยฑ20km from ISP location)
Windows Location: Novi Beograd, exact coordinates
๐ Previous Updates
v2.1.6 - 15-Minute Nowcast
The game-changer feature that sets this widget apart:
- ๐ฏ Radar-like precision: See rain coming 15, 30, 45 minutes ahead
- ๐ Minutely forecasts: 8 intervals ร 15min = 2-hour nowcast window
- ๐ง Smart detection: Distinguishes between rain, snow, and storms
- ๐ Proactive alerts: "Rain in 45 min (70%)" gives you time to react
Example alerts:
โก IMMEDIATE (0-2h): "Rain in 45 min (70%)"
๐ SHORT-TERM (2-24h): "Rain in 6h (55%)"
๐ง 4-Layer Priority System
Intelligently prioritizes weather data:
- Current conditions โ "Rain NOW!" (when actively raining)
- Weather code validation โ Confirms precipitation type
- Minutely nowcast (0-2h) โ 15-minute precision alerts
- Hourly forecast (2-24h) โ Long-term planning
โจ Features
๐ Location Services
- ๐ Windows Location API: GPS/Wi-Fi triangulation for accurate positioning
- Dual location system: Choose between API (IP-based) or Windows Location (GPS/Wi-Fi)
- Auto-location or manual city selection
- Smart fallback: Automatic switch if Windows Location unavailable
- Setup guidance: Bilingual instructions for enabling Location services
๐ก๏ธ Current Weather
- Real-time temperature and "feels like" temperature
- Weather description with emoji icons
- Humidity, wind speed & direction
- Atmospheric pressure
- Cloud cover percentage
- Visibility distance
๐ง๏ธ Precipitation Alerts
- ๐ 15-minute nowcast (v2.1.6): "Rain in 45 min (70%)"
- Real-time detection: Shows "Rain NOW!" when itโs actively raining
- Smart forecasting: Accurate timing for upcoming rain, snow, or storms
- Intelligent rounding: 1h 56min shows as "2h" (not "1h")
- Supports rain, snow, and thunderstorms
๐ Additional Information
- UV Index with color-coded severity
- Air Quality Index (AQI) with detailed pollutant breakdown tooltip
- 5-Day Forecast with min/max temperatures
- Hourly Forecast (12h) - click on "SATNA PROGNOZA" box to see detailed tooltip
- Sunrise & Sunset times
๐จ Customization
- Bilingual: Serbian (Latin) and English
- Auto-location or manual city selection
- Adjustable refresh intervals: 5, 10, 15, 30, or 60 minutes
- Resolution presets: From XGA (1024x768) to 8K UHD
- Click-through mode: Widget becomes transparent to clicks
- Position locking: Prevent accidental movement
- System tray integration: Minimize to tray
๐ Advanced Features
- Sleep mode detection: Automatically refreshes after system wake
- Hibernate support: Works after full system shutdown/restore
- Network retry logic: 3 attempts with 15s delays
- Graceful degradation: Falls back elegantly if API data missing
- Startup with Windows: Optional auto-start
- Persistent settings: Remembers your preferences
๐ฅ Installation
Option 1: Run from Source
Install Python 3.8+ and dependencies:
pip install PyQt5 requests
Download weather_widget.pyw
1.
No API key required! Uses free Open-Meteo API 1.
Run the widget:
python weather_widget.pyw
Option 2: Download Compiled .exe (Coming Soon!)
No Python installation required - just download and run!
๐ฎ Usage
Basic Controls
- Drag widget: Click and drag anywhere to move (when unlocked)
- ๐ Lock button: Lock/unlock position
- ๐ Auto button: Toggle automatic location detection
- Search box: Manually enter city name
- โ Close: Hide widget (still runs in tray)
Tray Menu
Right-click the tray icon for:
- Show/Hide widget
- ๐ Location Source: Switch between API Location (IP) and Windows Location (GPS/Wi-Fi)
- Enable/disable startup with Windows
- Widget-only mode (no tray icon)
- Click-through mode
- Resolution presets
- Refresh weather
- Language selection (Serbian/English)
- Exit application
Tooltips
- Hover over Air Quality (Zagaฤenje): See detailed pollutant breakdown
- Click on SATNA PROGNOZA box: View 12-hour forecast table
- Hover over precipitation alert: See detailed nowcast timeline
๐ Location Sources
๐ก API Location (Default)
- Uses your IP address for location
- Quick and simple, no setup required
- City-level accuracy (~10-50 km)
- Works immediately on any device
๐ฐ๏ธ Windows Location (Accurate & Precise)
- Uses GPS/Wi-Fi triangulation
- Much more accurate than IP-based location (~50-500 m)
- Shows your exact neighborhood/district
- Requires Windows Location services enabled
How to Enable Windows Location:
Step 1: Enable in Widget
- Right-click tray icon โ "๐ Izvor Lokacije" / "๐ Location Source"
- Select "Windows Lokacija (GPS/Wi-Fi)" / "Windows Location (GPS/Wi-Fi)"
Step 2: If Dialog Appears If you see "Windows Location nije dostupan" / "Windows Location Not Available":
- Open Settings (โ Win + I)
- Go to Privacy & Security โ Location
- Turn ON all 3 options:
- โ Location services
- โ Let apps access your location
- โ Let desktop apps access your location
- Restart your computer (important!)
- Try Windows Location again in widget
Step 3: Verify
- Widget should now show your precise location
- First use may take 10-30 seconds (Wi-Fi scan)
- Subsequent uses: 1-5 seconds
Requirements for Windows Location:
- โ Windows 10/11
- โ Wi-Fi adapter (for triangulation)
- โ Location services enabled
- โ Computer restart after enabling
Note: Desktop PCs without Wi-Fi adapter cannot use Windows Location. Laptops work perfectly!
๐ Whatโs New - Version History
v2.1.7 (January 10, 2026) - WINDOWS LOCATION UPDATE ๐ฐ๏ธ
๐ New Features
- Windows Location API support - GPS/Wi-Fi positioning for accurate location
- Dual location system - Easy switching between API (IP) and Windows Location
- Smart detection - Detects when Location services are disabled
- Bilingual setup guides - Step-by-step instructions in Serbian and English
- Automatic fallback - Gracefully falls back to API Location if needed
- Registry validation - Checks Windows Location service status
๐ ๏ธ Bug Fixes
- Fixed city name localization (Cyrillic โ Latin conversion)
- Fixed wind direction translation (SR: JI โ EN: SE)
- Fixed location_data dictionary for Windows Location path
- Fixed silent fallback behavior when Location disabled
- Improved error handling for location services
๐ Location Accuracy Comparison
| Device Type | API Location (IP) | Windows Location |
|---|---|---|
| Desktop without Wi-Fi | โ Works (ISP location) | โ Unavailable |
| Desktop with Wi-Fi | โ Works (ยฑ20km) | โ Works (ยฑ0.5km) |
| Laptop | โ Works (ยฑ20km) | โ Works (ยฑ0.1km) |
| Accuracy | City-level | Street-level |
v2.1.6 (January 9, 2026) - NOWCAST UPDATE ๐
๐ New Features
- 15-minute precision nowcast using
minutely_15API - 4-layer priority system for intelligent weather alerts
- Time-aware parsing: Always shows future intervals (skips past)
- Snow vs rain detection: Accurately distinguishes precipitation type
- Graceful API fallback: Works even with incomplete data
๐ Bug Fixes
- Fixed minutely forecast time parsing (now correctly identifies future intervals)
- Fixed precipitation type detection (snow vs rain)
- Fixed edge cases at midnight rollover
- Improved sleep/wake cycle handling
๐ง Technical Improvements
- Smart interval selection (finds first future 15-min block)
- Better error recovery and logging
- Optimized API requests (only fetches needed data)
- Enhanced tooltip formatting for nowcast display
v2.1.0 (January 5, 2026)
- Full English language support
- Real-time precipitation detection ("Rain NOW!")
- Improved time calculation (proper rounding)
- Fixed translation issues
- Better API data completeness
v2.0.0 (Initial Public Release)
- Complete weather widget with all core features
- Serbian language support
- Sleep mode detection
- System tray integration
๐ธ Screenshots
Main Widget - English
Main Widget - Serbian
Precipitation Alert
15-Minute Nowcast (NEW in v2.1.6!)
Coming soon - screenshot of minutely forecast tooltip
Hourly Forecast Tooltip
Air Quality Tooltip
Language Menu
Tray Menu
๐ Location Menu
๐ง Requirements
- Python: 3.8 or higher
- PyQt5: 5.15+
- requests: 2.25+
- geocoder: 1.38+ (for Windows Location support)
- No API key required! (uses free Open-Meteo API)
๐ Configuration
Settings are automatically saved in Windows Registry under:
HKEY_CURRENT_USER\Software\WeatherWidget\Settings
Stored settings:
- Window position
- Lock status
- Click-through mode
- Language preference
- Refresh interval
- Resolution preset
- Startup mode
๐ API Information
This widget uses 100% free APIs with no registration required:
Open-Meteo Weather API (free, no key required)
- Current weather, forecasts, UV index
- Minutely 15-min forecasts (nowcast)
- Hourly and daily forecasts
- https://open-meteo.com
Open-Meteo Air Quality API (free)
- AQI and pollutant data
- https://open-meteo.com/en/docs/air-quality-api
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
git clone https://github.com/malkosvetnik/desktop-weather-widget.git
cd desktop-weather-widget
pip install -r requirements.txt
python weather_widget.pyw
Testing Checklist
- Test on Windows 10 and 11
- Test sleep/wake cycle
- Test hibernate recovery
- Test network disconnection
- Test both languages (Serbian/English)
- Test all resolution presets
- Test multi-monitor setup
๐ Known Issues & Troubleshooting
Windows Location not working
Symptoms: Dialog appears "Windows Location nije dostupan" / "Windows Location Not Available"
Solutions:
Enable Location Services:
- Open Settings (โ Win + I)
- Go to Privacy & Security โ Location
- Turn ON all 3 options
Restart Computer (very important!)
- Location permissions only take effect after restart
Check Wi-Fi adapter:
- Desktop PCs without Wi-Fi cannot use Windows Location
- Use API Location instead
Try manual city search:
- Click ๐ Auto button โ Enter city name
- Works without location services
Widget doesnโt refresh after sleep
- Solution: Widget has built-in 30s delay after wake - this is intentional to wait for network
Nowcast shows no data
- Solution: Minutely forecasts are only available for some regions - widget gracefully falls back to hourly
High DPI scaling issues
- Solution: Use resolution presets from tray menu to match your display
Report other issues
๐ License
This project is open source and available under the MIT License.
๐ Credits
- Weather data: Open-Meteo
- Icons: Unicode emoji
- Framework: PyQt5
- Developed with โค๏ธ and lots of โ
๐ Support
Found a bug or have a suggestion?
- Open an issue: https://github.com/malkosvetnik/desktop-weather-widget/issues
- Check existing issues first!
- Star โญ the repo if you find it useful!
๐บ๏ธ Roadmap
Upcoming Features
- Desktop notifications (Windows toast)
- Customizable themes (dark/light/auto)
- More language options (German, French, Spanish)
- Widget size presets (small/medium/large)
- Multiple location tracking
- Weather radar integration
- Severe weather alerts
Long-term Goals
- Microsoft Store release
- macOS/Linux support
- Mobile companion app
- Smart home integration
๐ Why This Widget?
vs. Microsoft Weather Widget
โ 15-minute nowcast (Microsoft: hourly only) โ Always visible on desktop (Microsoft: hidden in sidebar) โ Bilingual support (Microsoft: system language only) โ No telemetry (Microsoft: tracks usage) โ Fully customizable (Microsoft: limited options) โ Open source (Microsoft: closed)
vs. Rainmeter
โ Simpler to use (no skin configuration needed) โ Lower resource usage (Python vs Rainmeter engine) โ Better precipitation alerts (smart 4-layer system) โ Built-in sleep mode handling (Rainmeter skins often break)
vs. Web-based Widgets
โ No browser required (native desktop app) โ Works offline (shows last cached data) โ Lower latency (direct API calls) โ Privacy-focused (no tracking scripts)
Made with โค๏ธ by malkosvetnik
If you find this widget useful, please consider starring โญ the repository!