aboutsummaryrefslogtreecommitdiff
path: root/colitur-x.c
Commit message (Collapse)AuthorAgeFilesLines
* feat(colitur-x): fill the window instead of a fixed gridLukasz Kasprzak2026-08-211-7/+32
| | | | | | | | | | | | | | | | | Cell size is now computed from the window -- width divided seven ways, height six -- and the number of lines a feast name gets is whatever fits the resulting cell. config.h holds minimums rather than sizes. Under a tiling window manager the calendar now uses its whole tile. It previously drew a fixed 196x116 grid and left the rest of the tile black, which is what every screenshot of it has shown. The size hint is now PREFERRED plus MINIMUM, never fixed. Pinning it fought the WM, which ignored it anyway, and stopped the grid using a larger tile. Added -g WxH, the same flag st takes, mainly because it makes the reflow testable: verified at 1365x687 (two name lines) and 1852x1024 (three).
* config: Terminus by default, and stop hiding knobs in the sourceLukasz Kasprzak2026-08-211-16/+17
| | | | | | | | | | | | | | | | | | | config.h now carries everything a reader would reasonably want to change: both fonts, the liturgical palette and the fallback for an unlisted colour, the selection rings, geometry, weekday headings, the detail-pane labels, the window title, and which rank earns a badge and what it says. Several of those were literals buried in colitur-x.c. Default font is Terminus:pixelsize=20:antialias=false, matching st. Terminus is a bitmap face, so it exists only at fixed pixelsizes -- the list is in the comment, because asking for one it lacks silently gets a substitute rather than an error. Layout metrics now come from the font instead of magic numbers: line height and the badge from XftFont ascent/descent in colitur-x, column widths in characters rather than pixels in colitur-mu. Before this, changing the font size left a 13px line height and a 110px date column that quietly truncated their contents.
* fix(colitur-x): make the selection and the I-class marker legibleLukasz Kasprzak2026-08-211-11/+95
| | | | | | | | | | | | | | | | | | Both markers were drawn in gold, which works on a dark cell and very nearly disappears on a white one -- and most days are white. The selection is now ringed twice, dark outside and bright inside, so it reads against a white cell and a red one without knowing which it is. The I-class marker is a badge rather than coloured text: filled with the cell's own foreground and lettered in its background, so it inverts against whatever the day's liturgical colour is. It also opens on TODAY when the input covers it, which is what a viewer should do; colitur's kernel still never reads a clock. Drawing now goes to an off-screen pixmap and CX_DUMP writes one frame out, so the result can be checked without screenshotting a window whose contents X does not retain while it is obscured.
* fix(colitur-x): detect the CSV header instead of assuming itLukasz Kasprzak2026-08-211-2/+15
| | | | | | | | | | | | | | | | Skipping the first line unconditionally punished the obvious way to view one month -- colitur emit --format csv ... | grep '^2027-04' | colitur-x -- by silently eating 1 April, because grep had already removed the header the program still expected. A filter is exactly what this program should compose with. A header is the line beginning 'date,'; anything else is a day. Verified all three ways: full year with header 365 rows from 01-01, a grepped month without header 30 rows from 04-01, and the old head -1 incantation still 30 rows.
* colitur-x: raw Xlib month grid for coliturLukasz Kasprzak2026-08-201-0/+256
Reads colitur emit --format csv on stdin and draws the year as a month grid coloured by liturgical colour, with the selected day's readings below. A separate program on purpose: colitur's dependencies are frozen and its kernel is pure, so a front-end composes with it rather than living in it. Configuration is compile-time, the same model clectio uses.