Skip to content

Weather

P3DROVFX edited this page Oct 12, 2026 · 1 revision

Weather

One weather service feeds the whole shell: the bar widget and its popup, a family of desktop widgets, the Dynamic Island, the lock screen, the dock, quick toggles, the Timetable's headers, At a Glance, Modes & Routines conditions, the tablet's hub mode and the AI assistant. It needs no account and no API key: forecasts come from Open-Meteo, and your location from the system, a city you type, or — as a last resort — your IP address.

Quick start

  1. Settings → Weather. Pick how to locate yourself: Follow my live location (on by default) or turn it off and type a City name.
  2. Pick Celsius or Fahrenheit (useUSCS selects the US customary units).
  3. Add the Weather widget to the bar (Settings → Bar → Weather bar widget, bar.weather.enable) and/or any desktop weather widget. Click or hover the bar widget for the popup; right-click refreshes immediately.

Where the location comes from

In this order, the first that works:

Mode How Network
Live location (enableGPS) The system location (Qt PositionSource, i.e. GeoClue if running). A move of more than ~0.05° refetches. The city name is found by reverse geocoding: BigDataCloud, then OpenStreetMap Nominatim as a fallback; until then it shows "Current Location" api.bigdatacloud.net, nominatim.openstreetmap.org
Manual city (city, with live location off) Open-Meteo's geocoding search turns the name into coordinates (first match) geocoding-api.open-meteo.com
IP address (nothing set, or live location timed out) ip-api.com (plain HTTP — the service has no HTTPS on its free tier), then ipinfo.io IP geolocation is coarse (city level)

Two practical notes: if GeoClue isn't installed the live-location attempt times out and the service falls back to the IP lookup; and if the IP lookup is wrong (VPN, mobile carrier), set a manual city. The weather request itself carries only coordinates to Open-Meteo.

What it fetches

One Open-Meteo request every bar.weather.fetchInterval minutes (default 10; automatic fetches are rate-limited to one per minute, a manual refresh is not) for: temperature, apparent temperature, relative humidity, precipitation, pressure, wind speed and direction, UV index, visibility, WMO weather code, sunrise and sunset, a daily forecast with min/max and conditions, and an hourly forecast. The service turns that into display values — Weather.data (current), Weather.forecastData (daily) and Weather.hourlyData — with units and compass directions already applied, and WMO codes mapped to icons (Google Weather icons) and descriptions. Changes of city, units or location mode are coalesced and refetch once.

Surfaces

  • Bar — four designs (bar.styles.weather): Default, Expressive, Horizon and Tessera. Horizon (variants balanced, inverted, minimal) is a plate, a bare temperature and a short accent rail; Tessera (paired, contrast, bare) is two sequential pieces — an icon shape and a temperature tile. Both show just icon + temperature; details live in the popup. weatherWidget.colorMode is tonal, vibrant or neutral. The vertical bar keeps icons upright and rotates only the temperature.
  • Popup (WeatherPopup, plus a compact variant) — a hero card with the current conditions, an hourly forecast, a metrics grid (UV, humidity, wind, pressure, visibility, sunrise/sunset), and a forecast for the coming days.
  • Desktop widgets — Weather, Forecast (2×1), Hourly (2×1), Card (1×1), Icon, Pill, Circle, Typography, Expressive and the Nothing-style weather circle; see Desktop Widgets.
  • Dynamic Island — a weather bubble/notch (dynamicIsland.widgets.weather, side and height configurable).
  • Lock screen — the left island shows the weather icon (lock.showWeather); Lock Screen.
  • Dock — a weather widget (Dock).
  • Timetable — day headers show the forecast's icon and min/max for the days it covers (Calendar and Timetable); the cell icon in the month view too.
  • Modes & Routines — weather conditions can trigger routines.
  • AI — the weather_get read-only tool.

Configuration (Config.options.bar.weather)

Key Default Meaning
enable false The bar widget (the service itself runs when any surface needs it)
enableGPS true Live location
city "" Manual city, used when GPS is off
useUSCS false Fahrenheit / US customary units
fetchInterval 10 Minutes between automatic fetches

Under the hood

Piece Role
services/Weather.qml Location resolution, Open-Meteo requests, data shaping, manual refresh with notification, coalesced refetch
modules/ii/bar/widgets/weather/, modules/ii/bar/popups/weather/ Bar designs and popup
modules/ii/background/widgets/weather/ Desktop widgets
modules/settings/configs/WeatherConfig.qml, widgets/WeatherLocationCard.qml Settings (location card and units)
modules/common/WeatherIcons.qml WMO code → icon

Related pages

← Back to Home

Clone this wiki locally