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.
- 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/−1dhint 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
xto remove it, or drag rows to reorder them. The list is saved to yourshell.json.
omarchy plugin add https://github.com/NimbleAINinja/omarchy-omachron.git --enableOr, 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.
| 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"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.
omarchy plugin update io.github.nimbleaininja.omachron
omarchy plugin remove io.github.nimbleaininja.omachronpython3(standard library only) resolves time-zone offsets from the system zoneinfo database.curlis used only when you type in the search field; the query goes togeocoding-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.
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.
MIT
