No Description

ohnonot 2ffa6f0374 some commit 1 month ago
config 9989b7817c debian config 9 months ago
img 161b6ad938 new icons require action + full cleanup 9 months ago
myconfig 549bc88602 adding empty myconfig dir 9 months ago
scripts 161b6ad938 new icons require action + full cleanup 9 months ago
.gitignore 549bc88602 adding empty myconfig dir 9 months ago
LICENSE 766629c59f added gpl 2 years ago
README.md 68495f2f8c github to notabug 5 months ago
changelog 1907959a5c narrative 9 months ago
conky-itlv 3db7324c5e making it work on Xubuntu 9 months ago
conky-itlv-toggle 2ffa6f0374 some commit 1 month ago
geticons.sh 161b6ad938 new icons require action + full cleanup 9 months ago
itl.sh 161b6ad938 new icons require action + full cleanup 9 months ago
startconky 2ffa6f0374 some commit 1 month ago

README.md

Get weather forecast from Finnish website and create conky syntax from it.

The website is ilmatieteenlaitos.fi, the Finnish Meteorological Institute.
It provides forecasts from all over the world in English, Swedish and Finnish language.

screenshot

Installation

There's no installation as such. Download the zipped repository to a folder of your choice (keep in mind that all files need to stay together), or issue:

git clone https://notabug.org/ohnonot/conky-itl-weather

Because I am unsure about licensing issues, weather icons are not included. Please run the script geticons.sh; this will download the icons from the website, then convert and save them to the appropriate folders to become usable by the script.
The icons are in vector fromat and need to be converted to PNG for conky to be able to use them. For that, you need imagemagick's convert command.

Dependencies

  • conky - if you're unsure, look out for a package named conky-all
  • xmllint (package libxml2 or libxml2-utils)
  • optionally wmctrl (for the --toggle feature)
  • required only once to convert icons to PNG: imagemagick

The rest is most probably already installed on an average Linux desktop:

  • bash
  • wget
  • sed
  • the "DejaVu Sans" font, available through most ditributions' package management. I list this as a dependency because the conky layout easily breaks when changing fonts. But there are much nicer fonts out there and I recommend taking the effort to change that.

Quickstart

The easiest use case is to simply issue

./startconky "URL"

from the repository's base directory, or

/absolute/path/to/conky-itl-weather/startconky "URL"

from anywhere (you could add this command to your desktop environment's startup applications).

Users of Ubuntu 16.04 and debian stretch (and likely all debian-based distros) should start with this:

./startconky config/debian.cfg

"URL" is the URL for your desired forecast (location, language and weather station). However, instead of providing it on the command line, it is recommended to use a configuration file. See next chapter.

How to get your desired forecast

Go to this site and choose a language and location. Once you get the desired forecast, copy the whole URL. You can also change the observation station (only Finnish locations). Open your chosen config file and change the line URL="...." accordingly. Remember to use "quotes".

Usage & Configuration

./startconky will start a conky that executes a shell script.
The shell script looks at your configurations, parses the web page, and produces conky-readable output.
The conky then reads that output, parses it according to conky rules, and displays it.
This process is repeated every 10 minutes or so.

If you don't know conky, check this out first (1).
This README cannot cover all conky-related topics relevant to this repository.

If you want to run the conky on-demand in its own window, instead of the desktop, you can try the --toggle option:

./startconky --toggle

You can provide a configuration file on the command line. Many aspects and conky layout can be overridden from there.
Some configurations are provided. If you want to modify them, pease copy them to the myconfig folder first, or create a new file in that directory.
Unspecified or commented variables continue to use default values.
The syntax is bash; config files are simply sourced, and there's no further quality control.

Provide your chosen config as a relative path to where the script resides, e.g.:

./startconky myconfig/anyname.cfg

or

./startconky --toggle myconfig/anyname.cfg

Most configuration happens inside the shell script (and your personal configuration), but it is still likely that you will need to edit the conky configs conky-itlv or conky-itlv-toggle. Again the recommended method is to copy the file to the myconfig folder and edit that copy (the startconky script will look there first).

The startconky command can always be called with an absolute path (see Quickstart).

If you choose to clone with git, and keep all modifications to the myconfig folder, you can update the repository with

git pull

issued from the repository's base directory.

If you still experience problems:

  1. You might want to create your own config file, overriding more default settings. but please still have a look at the variables in the shell script and see what's possible. Almost everything can be overridden.

  2. depending on your desktop environment, you might want to change the own_window_* values in conky-itlv.

  3. make sure the shell scripts itl.sh and startconky are executable: chmod -x itl.sh startconky (this normally shouldn't be an issue).

  4. conky doesn't necessarily show anything first time you start it. You might have to wait until it downloads and parses the first weather info.
    However, it should update after 10 seconds, so if you still don't see anything you can look at data/itl.sh.logfile for clues or contact the developer.

There's more explanation in all files.

Explanation

I am not a conky desktop widget designer. I am aware that there are much better-looking weather conkys out there.

In fact, I wouldn't recommend using this if you don't live in Northern Europe.

The reason I maintain this repository is because I use it, and the reason I use it is because I believe that a locally retrieved weather forecast is always superior to one retrieved from a large international website somewhere halfway around the globe.

I am trying as far as possible to mirror the website's way of displaying information. It might differ from what most people accept as a simple weather forecast design, but it has more granularity and more objectivity. I do not want to depend on what some website considers the best way to describe the weather for the day; I can see more data and apply my own interpretation.
The best way to understand is to take a look at how the page looks in your browser.

The shell script can be told to use the first forecast from "Hourly" (and the rest from "Five Days"), thus adding even more granularity.
The "Rain" column is a little unclear; the top is a percentage of probability of precipitation, the bottom is what actually came down during the last hour(s). The blue bar is a graphical representation of the latter value.

Some words about conky

"conky is a strange beast" i read somewhere. It can do nice things to your desktop and, used properly, it's extremely lightweight. But sometimes it behaves unexpectedly. Usually, once you have it set up, it runs stable, but the tweaking can be nerve-wrecking.

Changing the font will most probably mess up the layout, but you can fix most of it by adjusting vertical offset in your configuration (lineheight).

Tested on

archlinux (simple openbox, no desktop manager), Xubuntu 16.04 and Bunsenlabs Helium
shell: GNU bash 4.3, 4.4
conky: 1.9, 1.10

Disclaimer

Everything has been tested, but always something unpredictable can happen. If you encounter an error and want to help develop this script, please write to
this forum thread or this finnish forum thread or raise an issue.
Thanks!

ToDo

  • Help with Finnish documentation.

Happy customizing and don't forget to look out the window sometimes!


(1) Please note that this script is still written in old 1.9 conky syntax. However, 1.10 and newer versions of conky can convert the old syntax on the fly.