omahoy.org github

AIS and collision alarmsearlyMIT

omalookout

The nearest vessel sits in your Omarchy bar. When one will pass within half a mile in the next 12 minutes, the bar turns the theme's urgent color and names it. Every vessel heard is a click away, nearest first, or in a window of its own beside the chartplotter.

omahelm · omalookouttiled on one workspace · 4× speed
omalookout tiled beside omahelm on the sample sail, sped up four times. BAY RUNNER, an invented ferry at 20 knots, is set to cross 0.2 nm from the boat, so it's flagged red in both windows while its CPA counts down to the closest approach.

What it shows

  • Every vessel heard in the last 10 minutes, nearest first: range and bearing, closest point of approach and when, speed, course, status and destination.
  • A collision course is flagged red and counted at the top: any vessel passing within 0.5 nm in the next 12 minutes.
  • The honest state. With no GPS fix it says there's nothing to range from, and with no hub it says so.
  • Night Watch. n turns this window red on black, and leaves the chartplotter beside it as it is.
In the bar
AIS 3 · 0.8 nm
Collision
⚠ BAY RUNNER 0.19 nm
No hub
AIS off
Keys
j k scroll, g G top and bottom, n Night Watch, q close

How it works

omalookout draws; omakeel listens. The hub decodes AIS from a receiver like the dAISy, keeps every vessel, and works out each one's closest point of approach against the boat's fix. It flags a collision course even with the laptop closed. omalookout reads the hub's targets over its socket and reconnects on its own.

Install

Omarchy on x86_64 or aarch64, with omakeel running on your GPS and AIS receiver:

$ omarchy plugin add https://github.com/shieldsworks/omalookout.git --enable

For the window, bind omarchy shell shell toggle org.omahoy.lookout '{}' to a key in ~/.config/hypr/bindings.lua. No boat? Replay omakeel's sample sail, ferry and all, with mise replay in its checkout.

Not yet

Theme press T