Omahub
← All plugins
O

My Weather

by Omarchy

Weather pill with detail popup

Install
$ omarchy plugin add https://github.com/CarlOscarHMJ/omarchy-weather-extended --enable
Widgets #bar #quickshell

omarchy-weather-extended

An extended version of Omarchy's built-in omarchy.weather bar widget — same pill-and-popup weather panel, with an hour-by-hour forecast, gust wind, precipitation, and a smarter regional data source built on top.

This was vibecoded on top of a clone of the stock widget (omarchy plugin clone omarchy.weather) over the course of a conversation with Claude Code. It's tuned to use what's (arguably) the best weather forecast provider for Nordic users — MET Norway / yr.no — but the fallback chain is simple enough that it'd be easy to extend with your local favorite provider for other regions too (see Data sources below).

Collapsed panel showing current conditions

Features

Hour-by-hour forecast

This is the feature most people will actually use. Two ways in:

  • Click the current temperature or condition icon → expands an hour-by-hour breakdown for today, right under the current-conditions row.
  • Click any of the three forecast days (Sunday/Monday/Tuesday, etc.) → expands the same hour-by-hour breakdown for that day instead — e.g. check exactly when rain clears up before you bike to work tomorrow.

Today's hour-by-hour forecast, hourly resolution

The resolution adapts to whatever the data source actually has: true hourly for the next ~2 days, thinning out to 6-hourly (or whatever the source provides) further out — labeled HOUR/6H in the corner so it's never ambiguous which you're looking at.

A forecast day's hour-by-hour breakdown, 6-hourly resolution three days out

Units (°C, M/S, MM) sit once in a leading label column instead of repeating on every hour. A single link icon fades in at the top-left corner whenever a strip is open, jumping straight to the full forecast on the web for the resolved location.

Wind speed in m/s, with gust

The stock widget shows wind in km/h with no gust figure. This shows mean(gust) m/s — e.g. 5(9) m/s means a 5 m/s mean wind with gusts to 9 m/s — both in the current-conditions row and in every hour of the hourly strip.

Precipitation

A fourth stat next to FEELS/WIND/HUMID, showing expected precipitation in mm.

MET Norway (yr.no) as the preferred source in the Nordics

When the resolved location falls inside Norway, Sweden, Denmark, Finland, or Iceland, current conditions, the 3-day forecast, and the hourly breakdown all prefer MET Norway's locationforecast API (the data behind yr.no) over the stock widget's Open-Meteo/wttr.in. Outside the Nordics, nothing changes — same Open-Meteo/wttr.in fallback as the original widget.

Data sources

  • MET Norway (api.met.no, /complete product) — Nordic locations only, for current conditions, the 3-day forecast, and hourly data (including gust wind and precipitation). Free, keyless, but their terms require a descriptive User-Agent — see Panel.qml's MET Norway fetch if you fork this for your own use.
  • Open-Meteo (api.open-meteo.com) — everywhere else, and as the fast path while MET Norway/wttr.in are in flight. Also free and keyless.
  • wttr.in — location auto-detection and a last-resort fallback, same as the stock widget.

Swapping in a different regional provider (say, a national met service for your own country) mostly means adding an isXLocation(lat, lon) bounds check next to isNordicLocation in Model.js, plus a fetch + normalizer function shaped like metNoCurrentCondition/metNoForecastDays/metNoHourlyForDate — all three exist purely to reshape a source's response into the same plain object shape the rest of the panel already consumes.

Installation

  1. Clone the stock widget first, so you get a manifest.json/BarWidget.qml scaffolded with your username (Omarchy plugin IDs are <you>.weather, not literally carl.weather):
    omarchy plugin clone omarchy.weather
    
  2. Copy this repo's Panel.qml and Model.js over the ones in ~/.config/omarchy/plugins/<you>.weather/.
  3. Save — Omarchy hot-reloads plugin code automatically. If it doesn't pick it up, force it:
    omarchy-shell shell rescanPlugins
    

Uninstall

This is a straight overlay on the stock widget, so removal is the same as removing any cloned plugin — it doesn't touch anything outside its own plugin directory (it shares the same ~/.local/state/omarchy/settings/weather.json location state the stock widget already uses):

rm -rf ~/.config/omarchy/plugins/<you>.weather
omarchy refresh shell

Security

Before publishing, this was reviewed for command/argument injection, SSRF, and unsafe data handling. Every external process invocation in Panel.qml builds an argv array (Process.command, Quickshell.execDetached) rather than a shell string, so even adversarial API/location data lands as inert argv tokens — nothing here is shell-interpreted. All network responses go through JSON.parse inside try/catch, never eval. No issues found.

License

MIT, matching Omarchy itself. Weather data is © the respective providers (MET Norway data is CC BY 4.0 — see their terms); this repo is just the client code.