Skip to main content

A Powerline segment for fetching and showing the weather in the current location

Project description

PyPI Downloads

powerline-owmweather 🌦

Example 1

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).

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

Installation

pip install powerline-owmweather

Activation

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
   }
}

Alternatively, the API key can also be provided by setting it as an environment variable, see Configuration and Customization for details.

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
openweathermap_api_key string If not provided in the theme JSON, the segment will try to use the POWERLINE_OPENWEATHERMAP_API_KEY environment variable POWERLINE_OPENWEATHERMAP_API_KEY
environment variable
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
post_condition string String to append after condition ""
post_humidity string String to append after humidity ""
post_location string String to append after location ""
post_temp string String to append after temp ""
pre_condition string String to prepend before condition " "
pre_humidity string String to prepend before humidity " "
pre_location string String to prepend before location " "
pre_temp string String to prepend before temp " "
show string Comma-separated string specifies what data to show.
Can include "condition", "humidity", "location", "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": []
}

"pre_{data_name}" and "post_{data_name}" can also be customized using "owmweather_pre_{data_name}" and "owmweather_post_{data_name}" highlight groups.

If a specific highlight group is not defined then the style of "owmweather" group will be used.

Changelog

0.5 - Dec. 27 2024

  • Allowing to set openweathermap API key as an environment variable

0.4 - Nov. 3 2020

  • '%' is no longer in the default humidity_format
  • Added pre_data and post_data arguments and highlight groups
  • Added ability to show location

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

powerline_owmweather-0.5-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file powerline_owmweather-0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for powerline_owmweather-0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 873c58f5d0deb40852be571c25bded83b09c27590d4a67d491b1325ec580cc32
MD5 ce47f974c1bd71ce656cb59f3d04d0b1
BLAKE2b-256 7c254f3276c7cff13002d042028a4a5edd57fb9740baca58f94be1c46358ebf6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page