Skip to content

Latest commit

Β 

History

92 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Omastorm

Live weather radar in your Omarchy bar. Beta.

Omastorm window and bar popover

A radar that lives next to the clock. The popover shows your selected radar and its actual scan time. Click the map (or press Enter) for the full window: individual NOAA NEXRAD sweeps in the U.S. and the EUMETNET OPERA European mosaic, drawn in your Omarchy theme.

This page is the user guide: install, first run, and everyday use. How the code is built lives in CONTRIBUTING.md.

Install

Omarchy 4 on x86_64 and aarch64.

omarchy plugin add https://github.com/wesleygrimes/omastorm.git --enable

That clones the plugin, asks which bar section to use, and on first open downloads the pinned engine from GitHub Releases, checks its sha256, and installs it under ~/.local/share/omastorm/bin. Configuration, remembered view, and cached scans stay in Omastorm's own directories.

Optional: a Hyprland key to toggle the window. Add one line to ~/.config/hypr/bindings.lua. Omastorm never writes that file:

o.bind("SUPER + SHIFT + R", "Omastorm", "omarchy shell shell toggle com.omastorm.radar '{}'")

Optional: list it in the app launcher:

bash ~/.config/omarchy/plugins/com.omastorm.radar/scripts/write-desktop-entry.sh

First run

Open the popover from the bar. If Omarchy weather already has a city, the map opens there. If not, you get a choice: pick a place, or use an approximate location.

Choose your location

Use approximate location is one click. It asks wttr.in to guess your city from the public IP of that request. Nothing is sent until you click; there is no GPS and no background tracking. A VPN or CGNAT may land you at the ISP instead of your house. Choose manually if the guess is wrong.

The view is remembered. Next time you open the popover, you are back where you left off.

Coverage

U.S. radar comes from NOAA NEXRAD; European radar comes from EUMETNET OPERA. Coverage depends on radar range and the data available from each provider. Some areas have no radar data, even when their cities appear in search.

EUMETNET OPERA radar mosaic over Warsaw, Poland

Watch the 24-second Europe demo.

What you are looking at

Omastorm currently uses two radar products. In the U.S., NOAA NEXRAD provides individual radar volumes: each dish spins, sends a pulse, and measures how much bounced back. In Europe, EUMETNET OPERA provides a mosaic combining the strongest radar returns at each location.

For NEXRAD, Omastorm shows reflectivity on the lowest tilt: the beam that stays closest to the ground. OPERA combines multiple radars and elevations into one image.

Color is dBZ, not a rain rate and not a warning. Stronger return, warmer color. The legend under the map is that scale.

A bright blob is often rain or snow. Radar can also detect:

  • insects, birds, and bats (especially on clear evenings)
  • dust, smoke, and sea spray
  • ground clutter and buildings near the dish
  • anomalous propagation, when the beam bends and paints the ground far away
  • wind farms, towers, and military chaff

Measured returns under 5 dBZ (the usual biological clutter and haze) are hidden by default; the legend says so. Press w to show them.

These are observations, not forecasts or weather warnings. Each frame shows its observation time on the stamp.

The window

Drag to pan, scroll to zoom. The map and the radar are independent: panning moves the camera; the active source is whichever covering radar Omastorm is following, unless you lock it.

Click the source name for covering mosaics and nearby dishes. The padlock pins that source so panning will not hand off; it turns yellow when the camera sits outside the source's coverage. n resumes automatic selection for the current map centre and leaves the camera where it is.

The number under the product line is how stale the frame on screen is. The stamp above the timeline is when that frame was observed. LIVE is the feed; the light beside it goes yellow when data is stale (ten minutes) and red when the feed is unreachable. Cached frames stay.

A scale bar on the map is ground distance, in kilometres or miles from your locale.

Aviation observations

Press a in the window or popover to show nearby airport weather reports on the map. Airport codes replace city labels; their colors show the reported flight category: green VFR, blue MVFR, red IFR, and magenta LIFR. Click an airport code to read its raw METAR. These are current observations, not forecasts or flight guidance.

The overlay is off by default and works with live NEXRAD radar in the U.S. and Canada. It is unavailable on the European OPERA mosaic. To start with it on, set [metar] show = true in your configuration. You can also choose how many airports appear and how they are selected; see configuration.

Omastorm window with color-coded airport codes and a raw METAR for KDAN Omastorm bar popover showing airport flight categories on the radar map

Search

/ (or s) is one field. Type a city, a radar site or mosaic name, or paste coordinates.

A city centres the map there, unlocks, and selects a covering source. Type a region or country qualifier when needed, such as London, UK. Cities come from the bundled GeoNames database. A configured radar override still applies when choosing a place.

Search a city

A site (KTLX, tlx) locks that dish and centres on it. Clicking the source title opens the same card on covering mosaics and nearby dishes.

A mosaic (opera) locks that source and centres the map on its coverage.

Search a radar site

Coordinates are latitude then longitude, decimal degrees, comma or space, the way a maps link looks. Invalid range is named on the card; the layout does not jump.

Paste coordinates

Coordinates out of range

My location

The map-marker at the top-left of the map, or m, jumps to the same approximate IP location as first run. Zoom stays. The radar unlocks and follows. Archived sessions never locate.

If the lookup fails, the camera stays put and a short overlay appears on the map. It is not a new row of chrome.

Approximate location failed

The loop

Selecting a radar loads its recent scans for playback. NEXRAD history grows toward 60 frames / two hours; OPERA retains up to 12 mosaic frames. Older scans drop out. Space loops what is available; [ ] steps; Home and End jump.

NOAA publishes NEXRAD Level II via the Open Data program on AWS. A full volume takes about four to seven minutes (faster in severe weather, slower in clear air). While a volume is in progress the engine reads live chunks, so the sweep can paint as the antenna turns. If no new chunk arrives for 90 seconds it rediscovers the latest volume; cached frames stay. OPERA polls its public 24-hour cache and loads complete mosaic frames.

Look

Three treatments sample the same radar data and palette. They only change how each 3 px cell is painted. Glyphs is the default; 1 2 3 switch.

Key Treatment Look
1 Pixels Solid blocks. The most literal picture of each radar cell.
2 Glyphs A denser mark as the return strengthens.
3 Stipple Soft squares that grow with intensity; more map shows through.

Pixels, Glyphs, and Stipple

Chrome follows the Omarchy theme. Radar color comes from the measured reflectivity.

Tokyo Night and Flexoki Light

? lists every key. They are all rebindable.

Key Action
h j k l or arrows Pan
+ - Zoom
0 Reset to the configured or weather location
/ or s Search
n Follow the covering radar (camera stays)
Shift+L Lock the radar
m My location
Space Play / pause the loop
[ ] Step a frame
Home / End Oldest or newest frame
1 2 3 Pixels, Glyphs, Stipple
w Show weak returns
a Show or hide aviation observations
? This map
Esc Close

Preferences

~/.config/omastorm/config.toml is what you mean to keep. The last map center, zoom, and UI radar lock are saved separately in ~/.local/state/omastorm/state.json. Panning never rewrites config.

# Optional: always open here. Omit both to remember the last map position.
center_lat = 36.23708
center_lon = -79.97948
# locked_radar = "KFCX"  # optional; coordinates do not lock a radar

treatment = "GLYPHS"  # PIXELS, GLYPHS, or STIPPLE at launch
weak_floor = 5        # dBZ; false draws every measured return

[metar]
show = true           # optional; start with airport reports on the map

[keys]
pan_left = "h Left"
zoom_in = "+ ="

A bad value is named in the status slot and that setting stays on its default. Keys are Qt sequences; an empty string unbinds. 1 2 3 change treatment, w changes the weak-return floor, and a toggles aviation mode for the session without writing the file.

Update

omarchy plugin update com.omastorm.radar
omarchy restart shell

Until the restart, the shell keeps running what it loaded at login, old engine pin included. Omastorm notices the new files and says so; clicking that notice in the popover restarts the shell.

If something is wrong

If expand or the keybind does nothing after an update, restart the shell.

The engine is one daemon per login. Its log is $XDG_RUNTIME_DIR/omastorm/engine.log (usually /run/user/<uid>/omastorm/). If the engine could not be installed, the reason is bootstrap.log in the same directory; opening the popover again retries.

~/.local/share/omastorm/bin/omastorm-engine stop

The next popover or window starts it again.

This is a beta. Bugs, rough edges, and ideas go to GitHub issues. For a failure, use the bug report template and attach the last screenful of engine.log (and bootstrap.log if the engine never installed). Include Omarchy version, plugin commit, and GPU as the template asks.

Remove

omarchy plugin remove com.omastorm.radar
~/.local/share/omastorm/bin/omastorm-engine stop
rm -rf ~/.local/share/omastorm ~/.cache/omastorm ~/.local/state/omastorm
rm -rf ~/.config/omastorm                            # keep this to reinstall later
rm -f ~/.local/share/applications/omastorm.desktop   # if you added the launcher entry

Then delete the o.bind line if you added one.

Data

Radar: NOAA NEXRAD Level II via the NOAA Open Data program on AWS; Europe mosaic from EUMETNET OPERA COMP DBZH via the Open Radar Data 24-hour cache (CC BY 4.0). Basemap: Β© OpenStreetMap contributors, ODbL, tiles by OpenFreeMap; Natural Earth, public domain. Location search: GeoNames, CC BY 4.0. Approximate location: wttr.in. METAR: NOAA/NWS Aviation Weather Center. Code: MIT, see LICENSE.

Contributing

Setup, checks, and pull requests are in CONTRIBUTING.md. Read DESIGN.md before proposing a product change. Open work that is ready for a first patch is labeled good first issue and help wanted.

Contributors

Thanks to these people (emoji key):

Wes Grimes
Wes Grimes

πŸ’» πŸ“– 🚧
Scott Jones
Scott Jones

πŸ’»
Casey Shields
Casey Shields

πŸš‡ πŸ’»
Chance Griffin
Chance Griffin

πŸ’»
Michael Pfeifer
Michael Pfeifer

πŸ’»
Fred Nix
Fred Nix

πŸ’»
Nathan Morton
Nathan Morton

πŸ’»
javi
javi

⚠️ πŸ‘€
Ryan Robitaille
Ryan Robitaille

πŸ’»
gw7523
gw7523

πŸ’» πŸ›
Yaniert Pascual
Yaniert Pascual

πŸ““
Michael Yockey
Michael Yockey

πŸ›
Justin Hagemeier
Justin Hagemeier

πŸ’» πŸ“–

This project follows the all-contributors specification.

About

Live weather radar for the Omarchy desktop, built with Rust and Quickshell.

Topics

Resources

Contributing

Stars

119 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Contributors

Languages