Home » Linux » Weather info in i3status

About Keheliya Gallaba

Keheliya Gallaba

Weather info in i3status

I recently started using i3wm because it is light-weight, keyboard-friendly and uses the screen real-estate efficiently.  I customized i3bar and i3status (which came installed with i3) to show system information and date/time. But there was no out-of-the-box feature to get weather information from i3 status.

I wanted a simple solution that does not require installing an external program like i3blocksconky, dzen2, xmobar or lemonbar. It had to also preserve colors I had configured for the i3bar output. So I came up with this simple solution.

Step 1: Setup a cron job to retrieve weather information every half hour and store it in a temporary file.

*/5 * * * * curl -s wttr.in/montreal?T | head -n 7 > ~/.weather.cache

Step 2: Write a shell script to add this information to i3status data.

  
 #!/bin/sh
# shell script to prepend i3status with weather

i3status | (read line && echo "$line" && read line && echo "$line" && read line && echo "$line" && while :
do
  read line
  temp=$(cat ~/.weather.cache | grep -m 1 -Eo -e '-?[[:digit:]].*°C')
  status=$(cat ~/.weather.cache | head -n 3 | tail -n 1 | cut -c 16-)
  echo ",[{\"full_text\":\"${temp} ? ${status}\",\"color\":\"#00FF00\" },${line#,\[}" || exit 1
done)

Step 3: The~/.config/i3/config file needs to be updated for thestatus_command to pipe through this script, as follows.

 
bar {
status_command .config/i3/weather.sh
tray_output primary
}

Step 4: The~/.i3status.conf file should also be updated to change the output to the JSON format.

 
general {
output_format = "i3bar"
colors = true
interval = 5
}

You can find more information from the following links.

Published on System Code Geeks with permission by Keheliya Gallaba, partner at our SCG program. See the original article here: Weather info in i3status

Opinions expressed by System Code Geeks contributors are their own.

Do you want to know how to develop your skillset to become a sysadmin Rockstar?
Subscribe to our newsletter to start Rocking right now!
To get you started we give you our best selling eBooks for FREE!
1. Introduction to NGINX
2. Apache HTTP Server Cookbook
3. VirtualBox Essentials
4. Nagios Monitoring Cookbook
5. Linux BASH Programming Cookbook
6. Postgresql Database Tutorial
and many more ....
Email address:

Leave a Reply

Be the First to Comment!

Notify of
avatar