<feed xmlns='http://www.w3.org/2005/Atom'>
<title>colitur-x.git/colitur-x.c, branch main</title>
<subtitle>raw Xlib month grid for colitur, reads its CSV on stdin, about 250 lines of C with no toolkit</subtitle>
<id>https://git.labunix.xyz/colitur-x.git/atom?h=main</id>
<link rel='self' href='https://git.labunix.xyz/colitur-x.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur-x.git/'/>
<updated>2026-08-21T08:16:51Z</updated>
<entry>
<title>feat(colitur-x): fill the window instead of a fixed grid</title>
<updated>2026-08-21T08:16:51Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukasz@arcofasiagroup.com</email>
</author>
<published>2026-08-21T08:16:51Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur-x.git/commit/?id=69add3767988d0dfc6ecac37405cfb10abe8dbb7'/>
<id>urn:sha1:69add3767988d0dfc6ecac37405cfb10abe8dbb7</id>
<content type='text'>
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).
</content>
</entry>
<entry>
<title>config: Terminus by default, and stop hiding knobs in the source</title>
<updated>2026-08-21T08:09:04Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukasz@arcofasiagroup.com</email>
</author>
<published>2026-08-21T08:09:04Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur-x.git/commit/?id=31db51d7fb782c8e79bf1df067dadc1a8be63255'/>
<id>urn:sha1:31db51d7fb782c8e79bf1df067dadc1a8be63255</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>fix(colitur-x): make the selection and the I-class marker legible</title>
<updated>2026-08-21T07:58:05Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukasz@arcofasiagroup.com</email>
</author>
<published>2026-08-21T07:58:05Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur-x.git/commit/?id=5312537c9fc12eed4d14d89d9cc1a226f2df94c3'/>
<id>urn:sha1:5312537c9fc12eed4d14d89d9cc1a226f2df94c3</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>fix(colitur-x): detect the CSV header instead of assuming it</title>
<updated>2026-08-21T07:51:36Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukasz@arcofasiagroup.com</email>
</author>
<published>2026-08-21T07:51:36Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur-x.git/commit/?id=147932ae2da02b5eceb6be6e1d704e1199bcb72e'/>
<id>urn:sha1:147932ae2da02b5eceb6be6e1d704e1199bcb72e</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>colitur-x: raw Xlib month grid for colitur</title>
<updated>2026-08-20T21:00:32Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukasz@arcofasiagroup.com</email>
</author>
<published>2026-08-20T21:00:32Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur-x.git/commit/?id=2fe328e64067f77070de3ba51f5cff3643afc47f'/>
<id>urn:sha1:2fe328e64067f77070de3ba51f5cff3643afc47f</id>
<content type='text'>
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.
</content>
</entry>
</feed>
