aa_printf(3)
π aa_printf(3) π
okay bestie, gather round, because we're talking about aa_printf β a little function from the Library Functions Manual (yes that's the manual it lives in, and yes it's iconic) and it's about printing text straight into your AA-lib output buffers. text on pixels, no cap. π
β¨ NAME β¨
aa_printf β print text to AA-lib output buffers. that's it, that's the whole job, and she does it flawlessly. π
πΈ SYNOPSIS πΈ
#include <aalib.h>
int aa_printf
(
aa_context *c,
int x,
int y,
enum aa_attribute attr,
const char *fmt,
...
);
look at her. six whole things to hand her and she'll give you back an int. we love a low-maintenance queen. π«Ά
π PARAMETERS π
aa_context *cβ the AA-lib context you wanna operate on. like, which little canvas are we decorating today, bestie? πΌοΈint xβ the X coordinate of the first character. where the text starts horizontally, fr.int yβ the Y coordinate of the first character. same vibe but vertical, you know the drill.enum aa_attribute attrβ the attribute to use. this is the glow up setting, the whole aesthetic. β¨
here's every single possible value for an enum aa_attribute, no gatekeeping:
AA_NORMALβ normal characters. the default serve, nothing extra.AA_DIMβ dark characters. moody, lowkey, mysterious. π€AA_BOLDβ bright characters. she's loud, she's confident, she's on.AA_BOLDFONTβ characters rendered in the bold font. (different from bright! the font is bold, not just the brightness, iykyk)AA_REVERSEβ reversed characters, i.e. black on white. flipping the whole look, main character energy. πAA_SPECIALβ renders characters in a way that's easily visible on the screen. the exact rendering here is driver dependent, but this mode is meant to be used for text you want to make easily visible in the image. so like, use it when you need people to Actually See It. π
const char *fmtβ the text you wanna output, in standardprintfformat. all the%d-core you could ever want. π...β Not Documented. literally nobody wrote it down. it's giving mystery. π (it's the varargs that go withfmt, but the manpage said "Not Documented" and I'm not out here inventing lore.)
π DESCRIPTION π
prints the given text into AA-lib output buffers. that's the whole thing. so simple. so clean. so slay.
β οΈ okay but the important part, bestie: to actually SEE the effect, you need to call aa_flush too. don't come crying to me when nothing shows up on screen because you forgot the flush. that's the number one heartbreak in this fandom. π
π SEE ALSO π
the whole extended friend group, alphabetically-ish, all of them, every last one, because we don't leave anyone out of the group chat:
save_d(3), mem_d(3), aa_help(3), aa_formats(3), aa_fonts(3), aa_dithernames(3), aa_drivers(3), aa_kbddrivers(3), aa_mousedrivers(3), aa_kbdrecommended(3), aa_mouserecommended(3), aa_displayrecommended(3), aa_defparams(3), aa_defrenderparams(3), aa_scrwidth(3), aa_scrheight(3), aa_mmwidth(3), aa_mmheight(3), aa_imgwidth(3), aa_imgheight(3), aa_image(3), aa_text(3), aa_attrs(3), aa_currentfont(3), aa_autoinit(3), aa_autoinitkbd(3), aa_autoinitmouse(3), aa_recommendhi(3), aa_recommendlow(3), aa_init(3), aa_initkbd(3), aa_initmouse(3), aa_close(3), aa_uninitkbd(3), aa_uninitmouse(3), aa_fastrender(3), aa_render(3), aa_puts(3), aa_gotoxy(3), aa_hidecursor(3), aa_showcursor(3), aa_getmouse(3), aa_hidemouse(3), aa_showmouse(3), aa_registerfont(3), aa_setsupported(3), aa_setfont(3), aa_getevent(3), aa_getkey(3), aa_resize(3), aa_resizehandler(3), aa_parseoptions(3), aa_edit(3), aa_createedit(3), aa_editkey(3), aa_putpixel(3), aa_recommendhikbd(3), aa_recommendlowkbd(3), aa_recommendhimouse(3), aa_recommendlowmouse(3), aa_recommendhidisplay(3), aa_recommendlowdisplay(3)
and that's the whole page, bestie!! π¦β¨ this one was generated by c2man from aalib.h, and it's dated 8 September 1999 β yeah, a genuine 90s icon, still serving looks in the terminal to this day. periodt. π
ππΈ
π¦ where this page comes from
- arch rolling: aalib 1.4rc5-19 Β· LGPL-2.0-or-later
- debian bookworm: libaa1-dev 1.4p5-50
- debian trixie: libaa1-dev 1.4p5-51.1+b1
- epel 10: aalib-devel 1.4.0-0.52.rc5.el10_0 Β· LGPL-2.1-or-later
- epel 9: aalib-devel 1.4.0-0.42.rc5.el9 Β· LGPLv2+
- fedora 43: aalib-devel 1.4.0-0.56.rc5.fc43 Β· LGPL-2.1-or-later
- fedora 43: aalib-devel 1.4.0-0.56.rc5.fc43 Β· LGPL-2.1-or-later
- fedora 44: aalib-devel 1.4.0-0.58.rc5.fc44 Β· LGPL-2.1-or-later
- fedora 44: aalib-devel 1.4.0-0.58.rc5.fc44 Β· LGPL-2.1-or-later
- nixpkgs unstable: aalib 1.4rc5
- opensuse-leap 16.0: aalib-devel 1.4.0-bp160.1.14 Β· GPL-2.0-or-later
- opensuse-leap 16.0: aalib-devel 1.4.0-bp160.1.14 Β· GPL-2.0-or-later
- opensuse-leap 16.0: aalib-devel 1.4.0-bp160.1.14 Β· GPL-2.0-or-later
- opensuse-leap 16.0: aalib-devel 1.4.0-bp160.1.14 Β· GPL-2.0-or-later
- ubuntu jammy: libaa1-dev 1.4p5-50build1
- ubuntu noble: libaa1-dev 1.4p5-51.1
- ubuntu questing: libaa1-dev 1.4p5-51.1
- ubuntu resolute: libaa1-dev 1.4p5-51.1build1
- ubuntu stonking: libaa1-dev 1.4p5-51.1build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms