A bash script to get the weather from OpenWeatherMap and output to the terminal, Openbox, or HTML
A bash script to get the weather and forecast from OpenWeatherMap and output to the terminal, Openbox, or HTML
Additionally, a way to put that information onto an image (see the weather_image
subdirectory).
Weather report written in Bash.
weather.sh
gets the current weather from
OpenWeatherMap and displays the
results to the terminal, HTML, or for an OpenBox pipe menu. It will
calculate (if appropriate) the “feel like” weather by calculating the
wind chill or heat index. A great deal of basis for this script comes
from BashWeather,
bash-weather,
and many more that I forgot to save the URLs of.
forecast.sh
gets the forecast from OpenWeatherMap
and likewise displays the results. OpenWeatherMap forecasts are at three hour
intervals (0800, 1100, 1400, etc). It displays all forecasts for the next
twenty four hours, then displays the closest time forecast for the day after
that. For example, if it’s 1136 (as I’m writing this) it shows all forecasts
through the 1100 forecast the next day, then the 1100 forecast for each
subsequent day. Options and .rc
file are the same as for weather.sh
.
If you wish to show both together, simply execute:
weather.sh && forecast.sh
This project is licensed under the MIT license. For the full license, see LICENSE
.
bc
basic calculator for floating point arithmetic. Can be found in the
bc
package on major Linux distributions.curl
command-line tool for getting data using HTTP protocol. cURL can be
found in the curl
package on major Linux distributions.grep
command-line tool used for parsing downloaded XML data. grep
can
be found in the grep
package on major Linux distributions.jq
command-line tool for parsing JSON data. jq
can be found in the jq
package on major Linux distributions.tr
command-line tool for parsing JSON data. tr
can be found in the tr
package on major Linux distributions.awk
command-line tool for parsing JSON data. awk
can be found in the
awk
package on major Linux distributions.Optional: For colors in terminal, save bashcolors
in this repository to
.bashcolors
in your $HOME
directory.
Run weather.sh
or forecast.sh
with the appropriate commandline switches
(below). If the current conditions do not qualify for the heat index or wind
chill, it is not displayed.
Copy (and edit, as appropriate) the weather_sh.rc
file to $HOME\.config\weather_sh.rc
.
c
or f
)bashcolors
.weather.sh
and forecast.sh
can be started with the following command line
options:
-k
Specifies OpenWeatherMap API key from the command-line.-l city_name
Sets the city for manual weather lookup. (see note below)-t
Output to the terminal/stdout (default if no output is specified)-h
Output HTML formatted text-o
Output OpenBox output-y
Output Conky format (no icons)-n
Terminal output without icons-p
Specify cache/temp path with trailing slash-f
Use imperial (farenheit, inches Hg, mph) units; default is metric-c
Use colored output in the terminal if .bashcolors
is in the home
dir. Note that if you want to alter the colors, you will have to manually
alter the script.Note: If the OpenWeatherMap API key is specified from the command-line, it will override the API key set in the file.
Note: It is STRONGLY recommended to use the City ID from OpenWeatherMap instead of a city name. Instructions on finding your city’s City ID here .
I have a single line config for my secondary screen with the weather config in it:
Now: ${execi 300 weather.sh -y} Forecast: ${execi 300 forecast.sh -y}
The conky output is currently limited via code to just the next five outputs.
Please see the weather_image subdirectory.
Steven Saus injects people with radioactivity for his day job, but only to serve the forces of good.
Mostly.