aboutsummaryrefslogtreecommitdiffstats

panahone ⛅

GIF animation of panahone ⛅

simple gtk3 systray weather applet using wttr.in's API, written in Python.

features

  • 🌡️ semi-realtime weather information with automatic updates
  • 💾 smart caching to reduce API calls (10-minute cache by default)
  • 🔄 auto-refresh support (configurable interval)
  • 🎨 dynamic weather icons that change based on conditions
  • 📍 location-based weather (or auto-detect)
  • 🌡️ temperature units (celsius/fahrenheit) with easy toggle
  • 💨 comprehensive weather data:
  • current temperature and "feels like" temperature
  • weather conditions
  • humidity levels
  • wind speed and direction
  • uv index
  • visibility
  • ⚙️ persistent configuration with JSON config file (EXPERIMENTAL)
  • 📝 detailed logging for debugging
  • 🖱️ interactive system tray:
  • left click: fetch/refresh weather
  • middle click: quit
  • right click: context menu
  • 🔔 desktop notifications with customizable timeout

install

system dependencies

  • python 3.6+
  • gtk3
  • gobject
  • libnotify

on Arch Linux:

sudo pacman -S python python-gobject gtk3 libnotify

on Ubuntu/Debian:

sudo apt install python3 python3-gi gir1.2-gtk-3.0 gir1.2-notify-0.7

on Fedora:

sudo dnf install python3 python3-gobject gtk3 libnotify

in-app/venv Dependencies

cd src
pip install -r requirements.txt

usage

# auto-detect location
./panahone

# specify location
./panahone -l "New York"

# use fahrenheit
./panahone -f

# enable debug logging
./panahone --debug

cli args

-h, --help              Show help message
-l, --location LOCATION Specify location (city, coordinates, airport code)
-f, --fahrenheit        Use Fahrenheit instead of Celsius
-v, --version           Show version
--debug                 Enable debug logging

mouse

  • left click: fetch/refresh weather
  • middle click: quit application
  • right click: context menu (refresh, toggle units, about, quit)

config (honestly, still experimental I would still use overrides at this point)

config file: ~/.config/panahone/config.json (auto-created on first run)

{
  "location": "",                    // default location (empty = auto-detect)
  "use_fahrenheit": false,           // temperature unit
  "auto_refresh": true,              // enable auto-updates
  "refresh_interval_minutes": 30,    // update frequency
  "show_wind": true,                 // show wind data
  "show_humidity": true,             // show humidity
  "show_feels_like": true,           // show "feels like" temp
  "notification_timeout": 10000      // notification duration (ms)
}

file: - config: ~/.config/panahone/config.json - cache: ~/.cache/panahone/weather_cache.json - logs: ~/.cache/panahone/panahone.log

weather icons

panahone uses system theme icons and automatically maps weather conditions to appropriate icons (yaru would have all of these, but some icon themes may have some missing):

  • ☀️ clear/sunny → weather-clear
  • 🌤️ partly cloudy → weather-few-clouds
  • ☁️ cloudy/overcast → weather-overcast
  • 🌫️ fog/mist → weather-fog
  • 🌧️ rain → weather-showers
  • ⛈️ thunderstorm → weather-storm
  • ❄️ snow/sleet → weather-snow

troubleshooting

Debug mode:

./panahone --debug
cat ~/.cache/panahone/panahone.log

changelog (2025.10.22)

improvements: - added persistent configuration system with json config file - implemented smart caching to reduce api calls - added auto-refresh functionality with configurable intervals - enhanced weather display with humidity, wind, uv index, and visibility - added dynamic weather icons that change based on conditions