Skip to content

VG-dev1/weathery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

weathery

Crates.io Downloads License

weathery is a terminal weather app with dynamically animated ANSI cityscapes.

It fetches a cityscape from Wikipedia, renders it in ANSI art, fetches the weather from Open Meteo, and adds animations according to the weather and the intensity of the weather.

Demo

Copenhagen (heavy rain)

Copenhagen heavy rain demo

Installation

Via Cargo

cargo install weathery

Build from Source

You need Rust installed.

git clone https://github.com/weathery/weathery.git
cd weathery
cargo install --path .

The animations

  • Different animation appearance depending on the weather condition
    • Rain: blue ANSI blocks that fall down
    • Snow: white ANSI blocks that fall down
    • Thunderstorm: same blue rain blocks as regular rain but much faster and denser, combined with periodic lightning flashes
    • Clear: static image with no particles or effects
  • Different speed of droplets depending on the intensity of the weather
    • Light intensity: slower spawn rate and slower particle movement
    • Moderate intensity: medium spawn rate and speed
    • Heavy intensity: rapid spawning and fast particles
  • In case of foggy weather, the image is grayscale; otherwise it's colorful (this can be overriden with --grayscale and --colorful flags)
  • Frame timing stays consistent across all weather types by measuring elapsed time and sleeping just enough to hit the target frame rate, ensuring smooth animation regardless of terminal speed

CLI Options

Simulate weather conditions

# Heavy rain
weathery "Copenhagen" --simulate 65

# Clear
weathery "Copenhagen" --simulate 0

Weather codes:

0 => "☀️ Clear sky",
1 => "🌤 Mainly clear",
2 => "⛅ Partly cloudy",
3 => "☁️ Overcast",
45 => "🌫 Foggy",
48 => "🌫 Depositing rime fog",
51 => "🌧 Light drizzle",
53 => "🌧 Moderate drizzle",
55 => "🌧 Dense drizzle",
61 => "🌧 Slight rain",
63 => "🌧 Moderate rain",
65 => "🌧 Heavy rain",
71 => "❄️ Slight snow",
73 => "❄️ Moderate snow",
75 => "❄️ Heavy snow",
77 => "❄️ Snow grains",
80 => "🌧 Slight rain showers",
81 => "🌧 Moderate rain showers",
82 => "🌧 Violent rain showers",
85 => "❄️ Slight snow showers",
86 => "❄️ Heavy snow showers",
95 => "⛈ Thunderstorm (slight/moderate)",
96 => "⛈ Thunderstorm with slight hail",
99 => "⛈ Thunderstorm with heavy hail",

Force colorful/grayscale image

# Colorful
weathery "Copenhagen" --colorful

# Grayscale
weathery "Copenhagen" --grayscale

Keyboard controls

  • q - Quit

Roadmap

  • More key bindings
  • Imperial units
  • Auto-detect user's location
  • More animation settings
  • Installation via other package managers

More coming soon!

License

GPL-3.0-or-later

About

A terminal weather app with animated cityscapes

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages