Skip to content

Latest commit

ย 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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

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

๐Ÿ“‹ 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
  • ๐Ÿ†“ No API Key Required - Powered by Open-Meteo for out-of-the-box operation with zero setup
  • ๐Ÿ“ฎ Postal / ZIP Code Search - Search by city name or postal/ZIP code (e.g. 98101 or SW1A 1AA)
  • ๐ŸŒ“ 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

๐ŸŽฌ Demo Gallery

๐ŸŒ 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!

๐Ÿ”ง Usage

  1. Open PowerToys Run (default: Alt + Space)
  2. Use the following commands:
Command Description Example
weather Show weather for default or current location weather
weather <city> Show weather for a specific city weather London
weather <city>, <country> Show weather for a specific city with country code weather 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:

  • 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

Is an API key required?

No! The plugin uses Open-Meteo and does not require an API key or account creation. It works out-of-the-box.

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 (30 minutes default) to ensure instant responses. After that time, new data will be fetched automatically.

Can I use this plugin offline?

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

How can I change from Celsius to Fahrenheit?

Open the plugin settings in PowerToys Run Settings or type "weather settings", 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

About

Get real-time weather information directly from PowerToys Run

Topics

Resources

Stars

19 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages