The install line still said pipx, which stopped being true when the engine was
rewritten. It is one static binary with the calendar compiled in, so there is
no runtime to install and no data file to find.
Also points a Byzantine Catholic at --typikon while they are setting a default,
since the flag is the one most of them will want, and notes that anything the
widget does not set follows what typikon remembered, so a widget and a terminal
on the same machine agree.
The Horologion is the Book of Hours: the fixed portions of the services
themselves. This shows the day's commemorations, its fast and its season,
which is a Menologion. Naming it for a book whose contents it does not carry
was a real error and worth the churn to correct.
typikon already uses the word internally, for menologion.py and the data file
it loads. That is not a collision: typikon provides a menologion, this
displays one.
Renamed throughout, not just the repo: the two scripts, the QML component and
its three qmldir modules, MENOLOGION_COLORS, ~/.config/menologion/colors.json,
the eww widgets and scss variables, the waybar class. Verified standalone and
embedded in a foreign shell, and the smoke suite still passes.
Also drops the em dashes from the prose.
`import qs.horologion.modules` was the README's headline instruction and it
fails outright: Quickshell resolves `qs` against the host config root, not
the subtree, so in an empty shell the type is unavailable and in a populated
one the widget would have silently bound to the host's Config and Theme
instead of its own. The imports inside are now relative and each directory
carries a qmldir, so `import "horologion/modules"` works in any host and the
three pieces really are usable on their own.
- refresh() dropped a request made while a run was in flight, so a
jurisdiction or date set a moment after startup never took effect until
midnight. It queues now.
- The waybar script exited non-zero on its error paths, and waybar hides a
module whose script does that -- so a missing typikon made the module
vanish rather than say so, and the .error CSS was dead. An unrecognised
--format field raised instead of rendering empty, and the tooltip
interpolated unescaped text into Pango markup, which matters because
--update-menaion fetches commemorations from a page nobody here controls.
- The installer aborted the whole run at the point where it printed
'leaving it alone', and a wholly successful run exited 1 because the last
statement was a failed [ -d ] test under set -e. --help demanded typikon,
which is what --help would have told you to install.
- eww painted every day with the feast colour and printed a dangling
separator, because it compares against "" and eww renders a JSON null as
the string "null". The parenthesised ?: form two lines away was already
right. The week list also repeated today.
pip install typikon installed nothing; there is no such package, and that was
the first line of every install path. Pascha now carries its label instead of
being a bare ISO date in a corner.
tests/smoke.sh covers the scripts, which is where all of this lived and where
nothing was covered. It caught two of these while being written.
Nobody installs a desktop widget they have not seen. Three shots go in the
README -- the Nativity Fast, where the week runs through three fasting
levels; ROCOR on 7 January, where the corner reads 25 December and makes the
old-calendar point in one glance; and Great Week, which uses nearly every
level there is.
shot.qml renders the real widget on a plain backdrop at a fixed position on
the overlay layer, so a screen grab of that rectangle is the widget and never
whatever was behind it. Typikon gains a forDate property, which is what lets
a screenshot show Great Week in September, and is worth having anyway for
looking ahead.
The header note now always carries the church date instead of repeating the
season the line below it already gives.
A Quickshell widget for Hyprland, a waybar module and an eww panel, all
reading the same JSON from the typikon CLI so none of them touches the
network and all three agree.
The Quickshell piece is three separable parts: a Typikon singleton that
wraps the CLI and re-reads only when the date rolls over, a Theme singleton
that takes colours from JSON with a default for every key, and the widget
itself.
The legend is built from the week in view rather than hardcoded, because the
levels a tradition uses are its own -- six under the Typikon, three under
Ruthenian particular law -- and the words for them differ too. The church
date shows beside the civil one whenever they differ, which on the old
calendar is always. Forefeasts and afterfeasts get their own line instead of
crowding out the commemoration that makes the day.