Skip to content

About

Omachron: dot-matrix day/night world map with city clocks for the Omarchy bar

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Omachron World Clock for Omarchy

A globe in the Omarchy bar that opens a dot-matrix world map showing where it is day and where it is night right now, with clocks for the cities you care about.

Omachron panel

Highlights

  • Dot-matrix map. Land is a grid of small square dots; oceans stay empty. Dots on the day side draw at full strength, dots on the night side are dimmed, and the two blend smoothly across civil twilight, so the terminator reads as a soft gradient rather than a hard line.
  • Monochrome and theme-following. Every colour is a blend of the active theme's foreground, background and accent. Markers and the sun use the accent; nothing is hard-coded, so it looks right on light and dark themes alike.
  • Sun and graticule. A ring marks the subsolar point and a faint 30° grid gives the map some bearings. An optional moon marker ("moon": true) shows where the moon is overhead, drawn with its current phase.
  • City clocks. One row per city with its zone abbreviation, UTC offset, the current time, and a +1d / −1d hint when that city is already on another calendar day.
  • Time scrubber. A slider under the map shifts the whole view up to 24 hours forward or back, snapping to wall-clock quarter hours (and back to now within fifteen minutes of centre), and moves the terminator, the sun and every clock together. Right-click the slider to snap back to now; it also resets when the panel closes.
  • In-panel editor. Type a city name in the search field at the bottom (Open-Meteo geocoding), pick a result to add it. Hover or move the cursor to a row and press its x to remove it, or drag rows to reorder them. The list is saved to your shell.json.

Install

omarchy plugin add https://github.com/NimbleAINinja/omarchy-omachron.git --enable

Or, to run this checkout directly, place it at ~/.config/omarchy/plugins/io.github.nimbleaininja.omachron and run omarchy plugin enable io.github.nimbleaininja.omachron --section center --after omarchy.clock.

Use

Action Effect
Left click the globe Open / close the panel
Right click the globe Refresh time-zone offsets
Hover the globe Tooltip with the first few clocks
j / k or arrows Move the cursor between rows
x Remove the city under the cursor
Drag a row, or J / K Reorder cities
h / l or ←/→ Step the scrubber to the previous / next quarter hour (H / L by an hour)
n or 0 Reset the scrubber to now
/, a or + Focus the search field
Enter in search Add the highlighted (or first) result
Esc Leave the search field, then close the panel
r Refresh time-zone offsets
Tab / Shift+Tab Switch to the neighbouring bar panel

Hovering a marker on the map highlights its row; the cursor row enlarges its marker.

From the command line:

omarchy-shell io.github.nimbleaininja.omachron toggle
omarchy-shell io.github.nimbleaininja.omachron refresh
omarchy-shell io.github.nimbleaininja.omachron status   # JSON of the current rows
omarchy-shell io.github.nimbleaininja.omachron shift 360  # scrub six hours ahead (minutes, 0 resets)
omarchy-shell io.github.nimbleaininja.omachron sky        # sun and moon positions for the shown time
omarchy-shell io.github.nimbleaininja.omachron moonPhase 90  # preview a phase (degrees, -1 restores the real one)
omarchy-shell io.github.nimbleaininja.omachron isOpen   # "open" or "closed"

Configure

Settings live inline on the widget's entry in ~/.config/omarchy/shell.json and hot-reload on save:

{
  "id": "io.github.nimbleaininja.omachron",
  "format": "HH:mm",
  "twilight": true,
  "graticule": true,
  "moon": false,
  "tint": 0.5,
  "cities": [
    { "label": "London", "tz": "Europe/London", "lat": 51.5074, "lon": -0.1278 },
    { "label": "Tokyo", "tz": "Asia/Tokyo", "lat": 35.6762, "lon": 139.6503 }
  ]
}
Key Default Meaning
format "HH:mm" Qt time format for the clock rows (e.g. "hh:mm AP")
twilight true Fade dots through civil twilight; false gives a hard day/night cut
graticule true Show the 30° grid
moon false Show a moon marker at the point where the moon is overhead, drawn with its current phase
tint 0.5 How far daylight and the twilight band lean toward the theme accent, from 0 (fully monochrome) to 1
cities seven defaults [{label, tz, lat, lon}]; tz is an IANA zone name. An empty array means no cities

Invalid zones are shown with ? instead of a time. Scrubbed times use the UTC offsets in effect now, so a scrub across a DST switch is off by that hour. Deleting the cities key restores the defaults.

Update and remove

omarchy plugin update io.github.nimbleaininja.omachron
omarchy plugin remove io.github.nimbleaininja.omachron

Dependencies and privacy

  • python3 (standard library only) resolves time-zone offsets from the system zoneinfo database.
  • curl is used only when you type in the search field; the query goes to geocoding-api.open-meteo.com. Nothing else leaves the machine, and there is no telemetry.
  • Map data is a 1° raster derived from Natural Earth (public domain); see assets/NOTICE.md.

Development

tests/run                      # manifest, node unit tests, offsets helper, headless QML tests, lint
node tools/build-land-grid.mjs # regenerate assets/land-grid.json from Natural Earth GeoJSON
omarchy plugin validate .

Saving any file under the plugin directory reloads it in the running shell; omarchy restart shell if a change does not take.

License

MIT

About

Omachron: dot-matrix day/night world map with city clocks for the Omarchy bar

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages