๐ŸŒฆ๏ธ PowerToys Run: Weather Plugin

March 31, 2025 ยท View on GitHub

Weather Plugin Demo

Weather Icon

โœจ Weather for PowerToys Run โœจ

Get real-time weather information directly from PowerToys Run

PowerToys Compatible Platform License: MIT Maintenance C# Version PRs Welcome GitHub stars GitHub issues GitHub release (latest by date) GitHub all releases Made with Love Awesome

Download Latest Release Download Latest Release

๐Ÿ“‹ Table of Contents

๐Ÿ“‹ Overview

Weather is a plugin for Microsoft PowerToys Run that allows you to quickly check weather conditions directly from your PowerToys Run interface. Simply type weather followed by a location to get real-time weather information, or set up favorite locations for instant access.

PowerToys

๐Ÿ†• What's New in v1.0.1

  • ๐Ÿ˜Ž Temperature Feeling Emojis - Added intuitive emoji indicators that show how the temperature feels
  • ๐Ÿ”ง Improved UI - Enhanced weather display with visual temperature indicators
  • ๐Ÿ› Bug Fixes - Various improvements and optimizations

โšก Easy Install

Download Weather Plugin

Quick Installation Steps:
1. Download using the button above
2. Extract to %LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\
3. Restart PowerToys
4. Start using with Alt+Space then type weather

โœจ Features

  • ๐ŸŒ Location-based Weather - Get weather for any city worldwide
  • ๐Ÿ  Default Location - Set your home location for quick access
  • โญ Favorite Locations - Save multiple locations for easy checking
  • ๐Ÿง  Smart Geolocation - Automatically detect your current location
  • ๐ŸŒก๏ธ Temperature Units - Choose between Celsius and Fahrenheit
  • ๐Ÿ˜Ž Temperature Feeling Emojis - Intuitive visual indicators for temperature ranges
  • ๐Ÿ” Detailed Information - View comprehensive weather data including:
    • Current temperature
    • "Feels like" temperature
    • Humidity percentage
    • Wind speed and direction
    • Weather condition with icon
  • ๐Ÿ–ผ๏ธ Visual Weather Window - See detailed weather in a dedicated window
  • ๐Ÿ”„ Auto-refresh - Weather data is cached but refreshed regularly
  • ๐Ÿ”‘ API Key Management - Easy setup with OpenWeatherMap API
  • ๐ŸŒ“ Theme Support - Works with both light and dark PowerToys themes
  • ๐Ÿ•’ Location Time - Displays the current time at the weather location
  • ๐ŸŽจ Beautiful Widget - Elegant popup window with modern UI design that works like a mini weather widget

๐ŸŒ Search Weather by City

Weather by City Demo

Simply type weather followed by a city name

๐Ÿ  Default Location Weather

Default Location Demo

Just type weather to see your default location's weather

โญ Favorite Locations

Favorite Locations Demo

Quickly access weather for your saved favorite locations

๐Ÿ–ผ๏ธ Weather Details Window

Weather Widget Demo

View detailed weather information in a dedicated window

๐Ÿš€ Installation

๐Ÿ“‹ Prerequisites

๐Ÿ“ฅ Installation Steps

  1. Download the latest release from the Releases page
  2. Extract the ZIP file to:
    %LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\
    
  3. Restart PowerToys
  4. Open PowerToys Run and type weather to access the plugin
  5. Enter your OpenWeatherMap API key in the plugin settings
Download Latest Release

๐Ÿ”ง Usage

  1. Open PowerToys Run (default: Alt + Space)
  2. Use the following commands:
CommandDescriptionExample
weatherShow weather for default or current locationweather
weather <city>Show weather for a specific cityweather London
weather <city>, <country>Show weather for a specific city with country codeweather London, UK

๐ŸŽฏ Quick Tips

  • Press Enter on a weather result to open the detailed weather window
  • Right-click on a weather result for additional options
  • Set your favorite locations in the plugin settings for quick access
  • The plugin caches weather data to minimize API calls
  • Weather data is automatically refreshed when needed

๐Ÿ“ Data Storage

The Weather plugin stores the following data locally:

  • Your OpenWeatherMap API key
  • Default location
  • Favorite locations
  • Temperature unit preference (Celsius/Fahrenheit)
  • Cached weather data (temporary)

All settings are stored securely in the PowerToys settings file.

๐Ÿ› ๏ธ Building from Source

  1. Clone the repository:

    git clone https://github.com/ruslanlap/PowerToysRun-Weather.git
    
  2. Open the solution in Visual Studio 2022 or later

  3. Build the solution:

    dotnet build Weather/Weather.sln
    
  4. Run the build-and-zip script to create installation packages:

    ./build-and-zip.sh
    

๐Ÿ“Š Project Structure

Weather/
โ”œโ”€โ”€ Community.PowerToys.Run.Plugin.Weather/
โ”‚   โ”œโ”€โ”€ Images/                  # Plugin icons
โ”‚   โ”œโ”€โ”€ Main.cs                  # Main plugin logic
โ”‚   โ”œโ”€โ”€ WeatherResultWindow.xaml # Weather details window
โ”‚   โ”œโ”€โ”€ plugin.json             # Plugin metadata
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ Community.PowerToys.Run.Plugin.Weather.UnitTests/
โ”‚   โ””โ”€โ”€ ...                      # Unit tests
โ””โ”€โ”€ Weather.sln                  # Solution file

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Please make sure to update tests as appropriate.

Contributors

โ“ FAQ

How do I get an OpenWeatherMap API key?

Visit OpenWeatherMap, create a free account, and generate an API key. The free tier allows up to 1,000 API calls per day, which is more than enough for personal use.

Why does the plugin need my location?

The plugin uses your location only to provide weather information for your current area when no specific location is requested. This is optional - you can set a default location instead.

How often is the weather data updated?

Weather data is cached for 30 minutes to reduce API calls. After that time, new data will be fetched automatically.

Can I use this plugin offline?

The plugin requires internet access to fetch weather data. However, it will display cached data if available when offline.

How can I change from Celsius to Fahrenheit?

Open the plugin settings by typing "weather settings" in PowerToys Run, then toggle the temperature unit option.

โœจ Why You'll Love Weather Plugin

  • Saves Time: Check the weather without opening a browser or app
  • Keyboard-Centric: Perfect for keyboard power users
  • Customizable: Set your preferred locations and units
  • Fast: Instant access to weather information
  • Beautiful: Clean, modern UI that matches PowerToys style
  • Privacy-Focused: No tracking, only uses location when needed
  • Resource-Efficient: Lightweight with minimal system impact

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgements

๐Ÿ› ๏ธ Implementation Details

The Weather plugin is built using:

  • C# and .NET
  • WPF for the UI components
  • HttpClient for API communication
  • System.Text.Json for JSON parsing
  • Task-based asynchronous pattern for non-blocking operations

The plugin implements several PowerToys Run interfaces:

  • IPlugin - Core plugin functionality
  • IContextMenu - Right-click context menu
  • IDisposable - Resource cleanup
  • IPluginI18n - Internationalization support
  • ISettingProvider - Settings management

Roadmap

  • Multiple day forecast
  • Weather alerts and notifications
  • More unit options (wind speed, pressure)
  • Custom themes for weather window
  • Additional weather providers
  • Offline mode improvements
  • Location autocomplete
  • Weather maps integration