aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* chore: stop tracking the built binaryHEADmainLukasz Kasprzak2026-08-212-0/+4
| | | | | | An earlier 'git add -A' swept colitur-x itself into the repo. A 27 KB artefact rebuilt by 'make' has no business in version control, and it would have conflicted on every pull.
* split: colitur-mu moves to colitur-experimentsLukasz Kasprzak2026-08-219-1968/+15
| | | | | | | | This repo now holds one finished program rather than a finished one and a sketch. The microui front-end, its Xlib backend and the vendored microui went to ../colitur-experiments with their history intact. Makefile, config.h and README trimmed to match.
* feat(colitur-x): fill the window instead of a fixed gridLukasz Kasprzak2026-08-214-18/+59
| | | | | | | | | | | | | | | | | 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-215-42/+84
| | | | | | | | | | | | | | | | | | | 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-214-12/+115
| | | | | | | | | | | | | | | | | | 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-213-4/+21
| | | | | | | | | | | | | | | | 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.
* debug: MUX_DUMP writes one frame from the pixmap, then exitsLukasz Kasprzak2026-08-213-0/+40
| | | | | | | | | | | | Verifying what the program actually draws by screenshotting its window is unreliable: X does not retain a window's contents while it is obscured or on an unfocused tag, so import and xwd can both return solid black while the rendering is correct. Reading back the off-screen pixmap always works. Used to confirm the XRectangle clip-truncation fix: rows now run unbroken from 2027-01-01 to 2027-01-29 with every column populated, where before the twelfth row lost everything but its name.
* build: proper Makefile with install, and usage in the READMELukasz Kasprzak2026-08-212-8/+48
| | | | | | PREFIX ?= $(HOME)/.local and a '## '-comment help target, matching the sibling projects. The old file had no all target, no install, and a clean that removed only one of the two binaries.
* colitur-mu: an editable microui front-end, and its Xlib backendLukasz Kasprzak2026-08-209-0/+1924
| | | | | | | | | | | | | | | | Same data as colitur-x, but the invocation is editable: year, language, book-name form and numbering tradition are buttons that re-run colitur. No calendar logic is reimplemented; the status line shows the exact command that produced what is on screen. microui (MIT, rxi) is vendored rather than packaged -- a copied-in dependency cannot rot, which is the whole reason to prefer it over a toolkit here. mu_x11.c carries one bug worth recording: microui resets its scissor with an unclipped rect of 0x1000000, and XRectangle's w/h are unsigned short, so it truncated to 0 and turned 'clip nothing' into 'clip everything'. A panel drew its first screenful and the rest vanished.
* colitur-x: raw Xlib month grid for coliturLukasz Kasprzak2026-08-204-0/+321
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.