Skip to content

v0.4.0 — prayer icons, 12-hour time, coloured names

Choose a tag to compare

@mrCode mrCode released this 03 Sep 21:15
· 21 commits to master since this release

Bar display options, contributed by @ch-arslanahmad in #4.

Three optional ways to change how the bar reads. All are off by default — nothing about your bar changes on upgrade.

{icon} — a per-prayer emoji

A fifth format placeholder, alongside {city}, {prayer}, {time} and {countdown}:

[bar]
format = "{icon} {prayer} {countdown}"
⛅ Asr 2h 14m

Glyphs are keyed to time of day: 🌛 Fajr, ☀️ Dhuhr, ⛅ Asr, 🌇 Maghrib, 🌙 Isha.

time_12h — 12-hour clock

omarchy-prayer bar time12 on

Applies to the pill, the tooltip, and the Quickshell panel — everywhere the bar shows a time.

colored — prayer name coloured by time of day

omarchy-prayer bar colored on

Dawn purple through night blue. waybar only — the Quickshell widget renders plain text by design, so markup would appear there as literal tags rather than colour. Enabling it also switches waybar's module into Pango markup mode, which is why it is opt-in rather than automatic.


The glyphs, the time-of-day palette, and the 12-hour formatting are @ch-arslanahmad's. Their PR was written against pre-0.2.0 code and could not be rebased — [waybar] had become [bar], the renderer had moved onto the shared Status structure, and 0.3.0 had added presets on the same path — so the plumbing was rewritten while keeping their design.

Three deliberate differences from that PR:

  • Icons are a placeholder, not an on-by-default switch. The original would have added emoji to every existing waybar user's bar on upgrade.
  • 12-hour time is applied in Status, so the Quickshell panel honours it too, not only waybar.
  • markup: true is emitted only when colours are on. CORRECTED — see v0.4.1. This bullet was wrong. A security review after release established that waybar has no markup key at all — its custom-module contract is {text, tooltip, class, percentage} — and that it renders these labels through Pango markup unconditionally. The key was inert, and {city} has been reaching a markup-parsing label since the waybar module first shipped, so the sanitiser was already load-bearing for every user regardless of this setting. @ch-arslanahmad's unconditional version was not the riskier choice it is described as here. v0.4.1 removes the key and corrects the comment in the source.