Repository navigation
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.
- Settings → Weather. Pick how to locate yourself: Follow my live location (on by default) or turn it off and type a City name.
- Pick Celsius or Fahrenheit (
useUSCSselects the US customary units). - 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.
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.
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.
-
Bar — four designs (
bar.styles.weather): Default, Expressive, Horizon and Tessera. Horizon (variantsbalanced,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.colorModeistonal,vibrantorneutral. 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_getread-only tool.
| 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 |
| 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 |