mirror of
https://git.pumpin.online/funkpower/menologion.git
synced 2026-10-23 03:07:12 +00:00
horologion was the wrong book
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.
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
# horologion
|
||||
# menologion
|
||||
|
||||
Desktop front ends for [`typikon`](https://git.pumpin.online/funkpower/typikon)
|
||||
— the Orthodox liturgical day on your desktop, in Hyprland (Quickshell),
|
||||
waybar or eww.
|
||||
Desktop front ends for [`typikon`](https://git.pumpin.online/funkpower/typikon).
|
||||
The Orthodox liturgical day on your desktop, in Hyprland (Quickshell), waybar
|
||||
or eww.
|
||||
|
||||
Everything is computed locally by `typikon`, so none of this touches the
|
||||
network, and the widget re-reads only when the date rolls over — the answer
|
||||
network, and the widget re-reads only when the date rolls over. The answer
|
||||
changes at midnight and at no other moment.
|
||||
|
||||

|
||||
@@ -22,8 +22,8 @@ $ typikon --set-default rocor # or antiochian, oca, greece, ...
|
||||
Then:
|
||||
|
||||
```console
|
||||
$ git clone https://git.pumpin.online/funkpower/horologion
|
||||
$ cd horologion && ./bin/horologion-install
|
||||
$ git clone https://git.pumpin.online/funkpower/menologion
|
||||
$ cd menologion && ./bin/menologion-install
|
||||
```
|
||||
|
||||
That links rather than copies, so `git pull` updates what you are running. Pass
|
||||
@@ -34,19 +34,19 @@ That links rather than copies, so `git pull` updates what you are running. Pass
|
||||
A desktop widget for Hyprland and anything else Quickshell runs on.
|
||||
|
||||
```console
|
||||
$ quickshell -p ~/.config/quickshell/horologion/shell.qml
|
||||
$ quickshell -p ~/.config/quickshell/menologion/shell.qml
|
||||
```
|
||||
|
||||
It sits on the background layer, so it behaves like part of the wallpaper —
|
||||
It sits on the background layer, so it behaves like part of the wallpaper:
|
||||
always under your windows, never stealing a click.
|
||||
|
||||
To drop it into a shell you already have, link this directory in beside your
|
||||
own and import it by path:
|
||||
|
||||
```qml
|
||||
import "horologion/modules"
|
||||
import "menologion/modules"
|
||||
|
||||
Horologion {}
|
||||
Menologion {}
|
||||
```
|
||||
|
||||
The imports inside are relative, so the widget always resolves its own
|
||||
@@ -57,16 +57,16 @@ Three pieces, each usable on its own:
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| `services/Typikon.qml` | a singleton wrapping the CLI — bind to it from anything |
|
||||
| `services/Typikon.qml` | a singleton wrapping the CLI; bind to it from anything |
|
||||
| `services/Theme.qml` | colours, from JSON, with defaults for every key |
|
||||
| `modules/Horologion.qml` | the widget |
|
||||
| `modules/Menologion.qml` | the widget |
|
||||
|
||||
Set a jurisdiction per-widget if you want one different from your default:
|
||||
|
||||
```qml
|
||||
import "horologion/services" // for Typikon
|
||||
import "menologion/services" // for Typikon
|
||||
|
||||
Horologion {
|
||||
Menologion {
|
||||
Component.onCompleted: Typikon.jurisdiction = "moscow"
|
||||
}
|
||||
```
|
||||
@@ -76,25 +76,24 @@ you look at what Great Week will ask of you before it arrives.
|
||||
|
||||
### Colours
|
||||
|
||||
`Theme.qml` reads `~/.config/horologion/colors.json`, or whatever
|
||||
`HOROLOGION_COLORS` points at, and watches it for changes. Every key has a
|
||||
`Theme.qml` reads `~/.config/menologion/colors.json`, or whatever
|
||||
`MENOLOGION_COLORS` points at, and watches it for changes. Every key has a
|
||||
default, so the widget is legible with no file at all. See
|
||||
`quickshell/colors.example.json` — the flat shape most theme generators
|
||||
`quickshell/colors.example.json`, the flat shape most theme generators
|
||||
already emit.
|
||||
|
||||
## waybar
|
||||
|
||||
```jsonc
|
||||
"custom/typikon": {
|
||||
"exec": "horologion-waybar",
|
||||
"exec": "menologion-waybar",
|
||||
"return-type": "json",
|
||||
"interval": 1800,
|
||||
"on-click": "typikon --days 7"
|
||||
}
|
||||
```
|
||||
|
||||
The module's CSS class is the fast level — `.xerophagy`, `.wine_oil`, `.fish`
|
||||
— so a day's discipline reads off the colour without reading the text.
|
||||
The module's CSS class is the fast level (`.xerophagy`, `.wine_oil`, `.fish`), so a day's discipline reads off the colour without reading the text.
|
||||
`.obligatory` is added only where a particular law actually binds, which under
|
||||
the Typikon is never: the Orthodox Church keeps the fast as tradition, not as
|
||||
precept. `waybar/style.css` has a starting palette.
|
||||
@@ -102,18 +101,18 @@ precept. `waybar/style.css` has a starting palette.
|
||||
Change what the text says with `--format`:
|
||||
|
||||
```console
|
||||
$ horologion-waybar --format '{emoji} {fastLabel}'
|
||||
$ horologion-waybar -j moscow --format '{emoji} {churchDate}'
|
||||
$ menologion-waybar --format '{emoji} {fastLabel}'
|
||||
$ menologion-waybar -j moscow --format '{emoji} {churchDate}'
|
||||
```
|
||||
|
||||
## eww
|
||||
|
||||
```lisp
|
||||
(include "horologion/horologion.yuck")
|
||||
(include "menologion/menologion.yuck")
|
||||
```
|
||||
|
||||
Then `(horologion)` for the full panel or `(horologion-bar)` for one line.
|
||||
`horologion.scss` carries the styling; its colours are `!default` variables, so
|
||||
Then `(menologion)` for the full panel or `(menologion-bar)` for one line.
|
||||
`menologion.scss` carries the styling; its colours are `!default` variables, so
|
||||
set your own before the `@import`.
|
||||
|
||||
## What it shows
|
||||
@@ -123,7 +122,7 @@ the week ahead, and Pascha.
|
||||
|
||||
**The church date is always in the corner.** On the new calendar it echoes the
|
||||
wall calendar; on the old it is the answer you came for. Below, ROCOR on 7
|
||||
January — which is 25 December, and the Nativity.
|
||||
January, which is 25 December, and the Nativity.
|
||||
|
||||

|
||||
|
||||
@@ -133,12 +132,12 @@ days at a time, and a widget that leads with "Post-festive Day of the
|
||||
Exaltation" for a week has told you nothing.
|
||||
|
||||
**The legend is built from the week in view**, not 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. Great Week uses
|
||||
levels a tradition uses are its own: six under the Typikon, three under
|
||||
Ruthenian particular law, and the words for them differ too. Great Week uses
|
||||
nearly all of them:
|
||||
|
||||

|
||||
|
||||
## Licence
|
||||
|
||||
GPL-2.0-only — see [LICENSE](LICENSE).
|
||||
GPL-2.0-only. See [LICENSE](LICENSE).
|
||||
|
||||
Reference in New Issue
Block a user