1st dotfiles commit
This commit is contained in:
parent
39c99549d0
commit
a57c4c068f
31 changed files with 8636 additions and 0 deletions
59
waybar/scripts/weather.sh
Executable file
59
waybar/scripts/weather.sh
Executable file
|
|
@ -0,0 +1,59 @@
|
|||
#!/bin/bash
|
||||
|
||||
# --- CONFIGURATION ---
|
||||
API_KEY="00e744eb427e575e1e8ed79f31f770fb" # Paste your key here
|
||||
LAT="48.856613" # Replace with your Latitude
|
||||
LON="2.352222" # Replace with your Longitude
|
||||
UNITS="metric" # Use "metric" for Celsius, "imperial" for Fahrenheit
|
||||
# ---------------------
|
||||
|
||||
# Validate configuration
|
||||
if [ -z "$LAT" ] || [ -z "$LON" ] || [ -z "$UNITS" ] || [ -z "$API_KEY" ]; then
|
||||
echo "Config missing"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Fetch the weather data
|
||||
RESPONSE=$(curl -s "[https://api.openweathermap.org/data/2.5/weather?lat=$](https://api.openweathermap.org/data/2.5/weather?lat=$){LAT}&lon=${LON}&appid=${API_KEY}&units=${UNITS}")
|
||||
|
||||
# Check if curl failed to get a response
|
||||
if [ -z "$RESPONSE" ]; then
|
||||
echo "No connection"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1. Get the Temperature
|
||||
# We use jq's built-in 'round' function to avoid ugly decimals (e.g., 71.6°F becomes 72°F)
|
||||
TEMP=$(echo "$RESPONSE" | jq '.main.temp | round')
|
||||
|
||||
# 2. Get the Description (for the tooltip)
|
||||
DESC=$(echo "$RESPONSE" | jq -r '.weather[0].description')
|
||||
|
||||
# 3. Get the Icon Code and map it to an emoji
|
||||
ICON_CODE=$(echo "$RESPONSE" | jq -r '.weather[0].icon')
|
||||
|
||||
case $ICON_CODE in
|
||||
"01d") ICON="☀️";; # Clear sky day
|
||||
"01n") ICON="🌙";; # Clear sky night
|
||||
"02d") ICON="⛅";; # Few clouds day
|
||||
"02n") ICON="☁️";; # Few clouds night
|
||||
"03d"|"03n") ICON="☁️";; # Scattered clouds
|
||||
"04d"|"04n") ICON="☁️";; # Broken clouds
|
||||
"09d"|"09n") ICON="🌧️";; # Shower rain
|
||||
"10d") ICON="🌦️";; # Rain day
|
||||
"10n") ICON="🌧️";; # Rain night
|
||||
"11d"|"11n") ICON="⛈️";; # Thunderstorm
|
||||
"13d"|"13n") ICON="❄️";; # Snow
|
||||
"50d"|"50n") ICON="🌫️";; # Mist
|
||||
*) ICON="❓";; # Default
|
||||
esac
|
||||
|
||||
# Determine unit label
|
||||
if [ "$UNITS" = "metric" ]; then
|
||||
LABEL="°C"
|
||||
else
|
||||
LABEL="°F"
|
||||
fi
|
||||
|
||||
# Final JSON output for Waybar
|
||||
echo "{\"text\": \"${ICON} ${TEMP}${LABEL}\", \"tooltip\": \"${DESC}\"}"
|
||||
Loading…
Add table
Add a link
Reference in a new issue