A Powerline segment for fetching and showing the weather in the current location
Project description
powerline_owmweather 🌦
A light-hearted Powerline segment for fetching and showing the weather in the current location (either by IP geolocation or by setting a location, see Configuration below).
Keep in mind that powerline_owmweather is in early, rapid development stage so its API/configuration format may change.
Motivation
The built-in weather segment is using Yahoo Weather API which is no longer available so I decided to create an almost drop-in replacement using OpenWeather.
Requirements
- Powerline
- A (free) OpenWeather account and API key with the "Current Weather Data" plan enabled.
Installation
pip install powerline-owmweather
Activiation
The very minimum required to activate the segment is to add the following to your theme JSON:
{
"function": "powerline_owmweather.weather",
"args": {
"openweathermap_api_key": API_KEY
}
}
and the following to your colorscheme JSON (the colors can be customized):
"groups": {
...,
"owmweather": {
"fg": "gray9",
"bg": "gray2",
"attrs": []
}
}
Configuration and Customization
The following optional args
are available:
Argument | Type | Description | Default |
---|---|---|---|
condition_as_icon |
boolean | If true , condition will be displayed as an icon (if one of known conditions).If false condition will be displayed as a string |
true |
humidity_format |
string | A Python format string that accepts humidity as an argument |
"{humidity:.0f}%" |
location_query |
string | Location in format CITY, 2-LETTERS-COUNTRY-CODE | Retrived using IP geolocation |
show |
string | Comma-separated string specifies what data to show. Can include "condition" , "humidity" , "temp" .See Highlight Groups |
"temp" |
temp_format |
string | A Python format string that accepts temp as an argument |
"{temp:.0f}" |
ttl_in_minutes |
integer | Time in minutes for which location and weather are cached. Warning: The lower the value the slower your terminal will be |
60 |
units |
string | Temperature units. Should be one of "C" , "F" , "K" |
"C" |
Highlight Groups
Every data in "show"
is displayed in its own segment with its own highlight group, meaning it can be styled independently in your colorscheme JSON. Each highlight group is composed of owmweather_{data_name}
, for example:
"owmweather_condition": {
"fg": "gray6",
"bg": "gray3",
"attrs": []
},
"owmweather_temp": {
"fg": "gray9",
"bg": "gray2",
"attrs": []
}
If a specific highlight group is not defined then the style of "owmweather"
group will be used.
Changelog
0.3 - Nov. 1 2020
- Added ability to display humidity
0.2 - Nov. 1 2020
- Added ability to display temperature, condition
- Added ability to display condition as either icons or strings
0.1.1 - Oct. 31 2020
- Fixed a bug that prevented setting a custom
ttl_in_minutes
- Added debug logs
0.1.0 - Oct. 31 2020
Initial release
TODO
- Support icons
- Support weather description ("cloudy", "windy", etc)
- Support configurable information to display:
- Temperature
- Condition
- Wind speed/direction
- Humidity
- Pressure
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for powerline_owmweather-0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1da6ba8e2df3e775b95b07a488a2fc5d254e65b29c1e663b333419effc9d685 |
|
MD5 | 72ed55470ca392f8051dba7c2275c7d3 |
|
BLAKE2b-256 | 9297274dcfb03d055d2e629ea00e6e4841a6ff9d1ef59036a3549e031b650ce3 |