aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukasz@arcofasiagroup.com>2026-08-20 23:16:01 +0200
committerLukasz Kasprzak <lukasz@arcofasiagroup.com>2026-08-20 23:16:01 +0200
commitc453d5c3ba41af61975a83ea553b41e410d88ae2 (patch)
tree7538f3d4f39cf574526d8a0cb2d7ff023ef3f55a /README.md
parent2fe328e64067f77070de3ba51f5cff3643afc47f (diff)
downloadcolitur-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.md32
1 files changed, 32 insertions, 0 deletions
diff --git a/README.md b/README.md
index e7b8c6e..a5662fc 100644
--- a/README.md
+++ b/README.md
@@ -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.