Skip to main content
Version: Next

Tempo

Tempo combines a highly configurable clock with an optional weather summary in the status bar—you can run it as a clock-only module or pair it with live conditions. Clicking the module opens a rich menu with a calendar, hourly forecast, and a seven-day outlook.

What Tempo shows

  • Status bar – current time (using your preferred clock_format) and, when weather data is available, an icon + temperature badge that match the current conditions.
  • Menu – a resizable panel containing:
    • A calendar with month navigation and highlighted selections.
    • Current city, timestamp, weather description, feels-like temperature, humidity, and wind information.
    • A horizontally scrollable hourly forecast.
    • A vertically stacked seven-day forecast with dominant wind direction and speeds.

Configuration

OptionTypeDefaultDescription
clock_formatstring%a %d %b %RStrftime-compatible format used for the clock in the bar and in the menu header. See the chrono formatting guide for placeholders.
weather_locationenumNoneDetermines which coordinates are queried when requesting weather data. Current geo-locates via IP using ip-api.com. Use the City variant to pin the module to a specific place.

City-based weather

[tempo]
clock_format = "%a %d %b %R"
weather_location = { City = "Rome" }

Clock-only mode

If you omit weather_location, Tempo renders just the clock and calendar UI—no network calls or weather widgets.

[tempo]
clock_format = "%a %d %b %R"
# weather_location left unspecified on purpose

Modules placement

Add "Tempo" to any section in [modules] so it renders in the status bar:

[modules]
right = [ [ "Tempo", "Privacy", "Settings" ] ]

Defaults

[tempo]
clock_format = "%a %d %b %R"
weather_location = "Current"

Networking & privacy

  • Tempo fetches location data either from ip-api.com (for Current) or from Open-Meteo's geocoding endpoint (for City).
  • Weather observations and forecasts are requested from the Open-Meteo API every 30 minutes. Ensure ashell has network access.
  • If an API call fails the module keeps showing the last successful reading and logs a warning.

Tips

  1. Include seconds in clock_format (e.g., %T) only if you need them—the module automatically increases the refresh rate when second specifiers are present.
  2. Use City when running behind VPNs or privacy relays, so the weather is tied to a predictable location.
  3. Combine Tempo with the dynamic menu wrapper branch to get a spacious layout for the weather panel.