Omahub
← All plugins
R

FMI Weather

by Rasmus Haavisto

The stock Omarchy weather pill with conditions from national meteorological institutes instead of wttr.in. In the Nordics and Baltics it shows the Finnish Meteorological Institute (FMI, ilmatieteenlaitos.fi) forecast, the same one its website shows, with a 12-hour strip, rain probability, gusts, and radar-corrected rain right now. FMI HARMONIE covers central Europe; MET Norway (met.no/yr.no) answers for the rest of the world. No API key or account.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
6ac2b75
Scanned
3 weeks ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
6ac2b75
Reviewed
3 weeks ago

This is a straightforward weather widget that fetches public forecast data from FMI, MET Norway, and Open-Meteo, with IP geolocation for auto-detection. The code is transparent, well-commented, and uses bounded curl requests; no obfuscation, destructive commands, or credential handling were found. The only minor concern is the privacy implication of sending the user's IP to third-party geolocation services, which is standard for such widgets and disclosed in the README.

  • IP geolocation sends the user's IP address to ipwho.is and geojs.io when no location is pinned, which is a minor privacy consideration but not a security risk.
  • The plugin reads a configuration file (weather.json) from the user's home directory, but this is expected behavior for a widget and does not modify anything outside its own settings.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

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

FMI Weather for Omarchy

The stock Omarchy weather widget with conditions from national meteorological institutes instead of wttr.in. The Finnish Meteorological Institute (FMI) answers across northern and central Europe, MET Norway (yr.no) everywhere else. Same pill, same detail popup.

The weather popup with a pinned Helsinki location

Why

The stock widget reads current conditions from wttr.in, which is flaky under load and models Finland coarsely. FMI's open data serves the forecast its own website shows; the plugin queries it for your coordinates and renders it in the stock UI.

FMI publishes two forecasts and the plugin uses both:

  • The meteorologist-edited forecast is what ilmatieteenlaitos.fi displays. It covers the Nordics and the Baltics and carries rain probability. Inside that area the popup and the website agree.
  • The raw HARMONIE model run reaches further: Poland, Germany, the Netherlands, London, and western Russia and Ukraine. It has no rain probability. The plugin falls back to it where the edited forecast has nothing.

Beyond both, MET Norway's Locationforecast takes over. In the Nordics FMI and MET Norway run the same jointly operated model (MEPS), so it barely matters which institute answers.

What stays as upstream built it:

  • The location picker with geocoded suggestions
  • IP auto-detection when no location is pinned
  • The forecast-day row from Open-Meteo, outside the edited forecast's area

What changes:

  • Current conditions and the bar icon come from FMI when it has data for the location, and from MET Norway otherwise. Inside the edited forecast's area the forecast days come from FMI too; HARMONIE's horizon is too short for three full days, so elsewhere they stay with Open-Meteo.
  • Metric wind reads in m/s and shows gusts and a blowing-toward direction arrow ("5 (9) ↗").
  • A strip of the next 12 hours (icon, temperature, and rain probability) sits between the current conditions and the daily forecast.
  • Icons follow FMI's own symbol set, so partly and mostly cloudy, showers and steady rain, sleet, hail, and thunder each get their own glyph, with day/night variants from the sun's position at the location.
  • Inside Nordic radar coverage, rain right now comes from MET Norway's radar-corrected nowcast rather than a forecast hour, so the pill cannot claim rain under a dry sky.
  • Precipitation shows in the popup and the notification whenever any is falling.
  • Right-click shows the current conditions as a notification.
  • Auto-detection resolves your place through IP geolocation (ipwho.is, with geojs.io as backup), and the daily forecast row falls back to MET Norway's days if Open-Meteo is unreachable.

Install

omarchy plugin add https://github.com/rejhaa/omarchy-plugin-fmi-weather.git --enable
omarchy plugin disable omarchy.weather

Pin your location by clicking the location label in the popup. Auto-detection works too, but a pinned location is what makes the FMI data precise.

To remove the plugin and restore the stock widget:

omarchy plugin remove rasmus.fmi-weather
omarchy plugin enable omarchy.weather

The plugin has no dependencies beyond the Omarchy shell, needs no API key or account, and touches no configuration outside its own bar-widget settings.

Settings

In the bar settings panel, or via the CLI:

omarchy bar set rasmus.fmi-weather refreshMinutes 10
omarchy bar set rasmus.fmi-weather unit Metric

Tracking upstream

This is a fork of the built-in omarchy.weather plugin, structured to stay mergeable. The upstream branch holds pristine copies of the built-in's files; main carries the changes on top. Model.js is byte-identical to upstream, and the fork's logic lives in its own files (Fmi.js, Met.js, FmiHourly.qml), so merges only ever touch Panel.qml and BarWidget.qml. After an Omarchy update changes the built-in widget, copy the installed files onto the upstream branch and merge it into main.

Development

Fmi.js and Met.js have no QML imports and run under node:

node test/fmi-test.js
node test/met-test.js

Hot reload does not reliably pick up edits to the .js files; run omarchy restart shell after changing them.

Data attribution

Forecasts from the Finnish Meteorological Institute's open data, licensed CC BY 4.0, with data from MET Norway (CC BY 4.0) outside FMI coverage and for the radar-corrected nowcast in the Nordics. Forecast days outside FMI coverage and geocoding by Open-Meteo. IP geolocation by ipwho.is and geojs.io.