diff options
| author | Lukasz Kasprzak <lukasz@arcofasiagroup.com> | 2026-08-20 23:16:01 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukasz@arcofasiagroup.com> | 2026-08-20 23:16:01 +0200 |
| commit | c453d5c3ba41af61975a83ea553b41e410d88ae2 (patch) | |
| tree | 7538f3d4f39cf574526d8a0cb2d7ff023ef3f55a /README.md | |
| parent | 2fe328e64067f77070de3ba51f5cff3643afc47f (diff) | |
| download | colitur-x-c453d5c3ba41af61975a83ea553b41e410d88ae2.tar.gz colitur-x-c453d5c3ba41af61975a83ea553b41e410d88ae2.zip | |
colitur-mu: an editable microui front-end, and its Xlib backend
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.
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -35,3 +35,35 @@ how it is painted. correct rendering for `æ`/`œ` and Polish diacritics. Not worth it. - A tiling window manager will ignore the size hints and give the grid its own tile; the layout handles that, the empty space is the WM's choice. + +## colitur-mu — the microui variant + +`colitur-mu` is the same idea with an *editable* surface: year, language, +book-name form and numbering tradition are buttons, and changing any of them +re-runs colitur and reloads. It reimplements no calendar logic — every value +on screen came out of `colitur emit --format csv`, and the exact command is +shown in the status line. + + make colitur-mu && ./colitur-mu + +microui (MIT, rxi) is **vendored** in `vendor/`, 1504 lines. That is the point: +a copied-in dependency cannot rot. `mu_x11.c` is the Xlib/Xft backend, ~150 +lines — microui emits a command list and asks two font-metric questions; this +answers them. + +### One bug worth recording + +microui resets its scissor by emitting an "unclipped" rectangle of +`0x1000000` × `0x1000000`. `XRectangle`'s width and height are **unsigned +short**, so that truncates to **0** — turning "clip nothing" into "clip +everything". The symptom is that a scrolling panel draws its first screenful +and everything after it silently disappears, which looks like a layout or +buffer-overflow bug and is neither. `set_clip()` clamps to the buffer bounds +before converting. + +### Which to use + +`colitur-x` renders; `colitur-mu` renders and lets you change the invocation. +Neither is the right answer for a non-technical user on a machine that is not +yours — both are X11-only and must be compiled. For that, a static site or a +small local web UI wins. |
