Skip to content
/ wttrbar Public

Custom module for showing the weather in Waybar, using the great wttr.in

License

Notifications You must be signed in to change notification settings

bjesus/wttrbar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wttrbar

a simple but detailed weather indicator for Waybar using wttr.in.


Installation

Compile yourself using cargo build --release, or download the precompiled binary from the releases page.

For Arch Linux, use the AUR package.

For NixOS, use the NixPkg package.

Usage

  • --ampm - display time in AM/PM format
  • --location STRING - pass a specific location to wttr.in
  • --main-indicator - decide which current_conditions key will be shown on waybar. defaults to temp_C
  • --date-format - defaults to %Y-%m-%d, formats the date next to the days. see reference
  • --nerd - use nerd font symbols instead of emojis
  • --hide-conditions - show a shorter descrpition next to each hour, like 7° Mist instead of 7° Mist, Overcast 81%, Sunshine 17%, Frost 15%
  • --fahrenheit - use fahrenheit instead of celsius
  • --mph - use mph instead of km/h for wind speed
  • --custom-indicator STRING - optional expression that will be shown instead of main indicator. current_conditions and nearest_area keys surrounded by {} can be used. For example, "{ICON} {FeelsLikeC} ({areaName})" will be transformed to "text":"🌧️ -4 (Amsterdam)" in the output
  • --lang LANG - set language (currently en, de, pl, tr, fr, ru, zh, be, es, pt, it, ja, uk, sv; submit a PR to add yours)
  • --observation-time - show the time the current weather conditions were measured

e.g. wttrbar --date-format "%m/%d" --location Paris --hide-conditions

Icons

To display the weather icons correctly, you will need to have a font that supports emojis installed. The screenshot uses Noto Emoji, but you can use other fonts too.

Waybar configuration

Assuming wttrbar is in your path, it can be used like:

"custom/weather": {
    "format": "{}°",
    "tooltip": true,
    "interval": 3600,
    "exec": "wttrbar",
    "return-type": "json"
},

You can also then creating custom styling based on the current condition:

#custom-weather.sunny {
  background-color: yellow;
}

Old version

This code is based on my old Python gist that was used for the same purpose.