Files
menologion/quickshell/shot.qml
T
funkpower be81c682cb 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.
2026-09-18 10:52:56 -04:00

64 lines
2.0 KiB
QML

//@ pragma UseQApplication
// A harness for taking the README screenshots: the real widget, on a plain
// backdrop, at a known position. Not part of the shell -- run it with
//
// SHOT_JURISDICTION=rocor SHOT_DATE=2027-01-07 quickshell -p quickshell/shot.qml
//
// It sits on the overlay layer at a fixed offset so a screen grab of that
// rectangle is always the widget and never whatever was behind it.
import QtQuick
import QtQuick.Layouts
import Quickshell
import Quickshell.Wayland
import "."
import "modules"
import "services"
ShellRoot {
PanelWindow {
id: win
screen: Quickshell.screens[0]
WlrLayershell.layer: WlrLayer.Overlay
WlrLayershell.namespace: "menologion-shot"
exclusionMode: ExclusionMode.Ignore
color: "transparent"
anchors { top: true; left: true }
margins { top: 60; left: 60 }
// Fixed, so a screen grab of exactly this rectangle is exactly this
// window and never the desktop underneath it. The widget is shorter
// than this; the crop takes care of the difference.
implicitWidth: Config.width + 68
implicitHeight: 700
Rectangle {
anchors.fill: parent
gradient: Gradient {
GradientStop { position: 0.0; color: "#1b2016" }
GradientStop { position: 1.0; color: "#0e100c" }
}
ColumnLayout {
id: body
anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 34
width: Config.width
Menologion {
Component.onCompleted: {
const j = Quickshell.env("SHOT_JURISDICTION");
const d = Quickshell.env("SHOT_DATE");
if (j && j !== "") Typikon.jurisdiction = j;
if (d && d !== "") Typikon.forDate = d;
}
}
}
}
}
}