A sleek, always-on-top weather widget for Windows built with Python + PySide6.
No API key required — powered by the free Open-Meteo APIs for geocoding and weather data.
- 🪟 Frameless, draggable, always-on-top widget
- 📍 Set and save your location
- 🌡️ Displays °F and °C (including “feels like”)
- ☁️ Auto-refreshes every 10 minutes
- 💾 Remembers window position & last city
- 🧭 System tray with Refresh / Set Location / Quit
- ❌ Close button integrated into top control bar
- 💨 Free, no API keys or accounts
Install dependencies:
pip install -r requirements.txt
▶️ Usage
Run the app:
bash
Copy code
python weather_widget.py
On first launch:
Click 📍 or right-click the tray icon → Set Location…
Enter your city name (e.g. New York, Paris, Tokyo)
The widget will automatically save your location and position
🖼️ Appearance
Dark, translucent design with rounded corners and subtle drop shadows.
Displays:
City name
Current weather icon & description
Temperature (°F / °C) and “feels like”
Humidity, wind speed
Mini hourly forecast (next 6 hours)
Example layout:
mathematica
Copy code
Detroit, MI • updated
☀️ 72°F / 22°C
Clear sky
feels 73°F / 23°C · hum 40% · wind 9 km/h
Next hours: 22°C🌤️ 21°C🌤️ 20°C☁️
⚙️ Tech Notes
Weather: Open-Meteo Forecast API
Geocoding: Open-Meteo Geocoding API
Uses QSettings for persistence (location + position)
Built with PySide6, compatible with Windows 10/11
🧾 Changelog
[1.1.0] – Added Dual Temperature Display and Close Button
Added Fahrenheit display alongside Celsius (shows e.g. “75°F / 24°C”)
“Feels like” now also displays both °F and °C
Added Close (✕) button inside the top-right control group
Widened layout for improved spacing
Retained draggable frameless design and auto-refresh features
📜 License
This project is licensed under the MIT License.
See LICENSE for details.
🧠 Author
Created with ❤️ by Matthew Montgomery
Contributions and feature ideas are welcome!