TICKIT_DEBUG(7)
โจ NAME โจ
Tickit_Debug โ debug logging support for libtickit, bestie ๐
๐ธ SYNOPSIS ๐ธ
$ TICKIT_DEBUG_FLAGS=W TICKIT_DEBUG_FILE=tickit.log a-tickit-program
๐ฆ DESCRIPTION ๐ฆ
okay so. libtickit has a whole debug logging system inside it, and other parts of the library use it to spill the tea about interesting events and behaviours ๐. it's basically there so developers can peek at the internal details and get help developing and debugging apps that use the library. very behind-the-scenes, very main character.
every debug message has its own flag name โ a little short string that IDs which library component or event made that message happen. you can enable a specific set of these flags during a debugging session, and then only those messages get printed โจ. messages for flags you didn't enable? not printed. not invited. blocked. ๐
๐ FLAGS ๐
every flag name starts with an upper-case letter that says which library component it's about, and then lower-case letters after that to say which particular kind of event or message it is within that component. it's giving... a naming convention that ate ๐
B
these messages are all about TickitRenderBuffer (see tickit_renderbuffer(7)).
Bdโ drawing operations, liketickit_renderbuffer_text(3)โ๏ธBfโ flushingBsโ stack state save and restoreBt
I
these ones are about input-system events ๐ฎ
Ikโ keyboard keypresses โจ๏ธImโ mouse movement and button or wheel events ๐ฑ๏ธIrโ terminal resize. Transformations (translation, clipping and masking).
W
and these relate to windows ๐ช
W*โ window destroyed ๐Wdโ damage to root windowWxโ window is exposed ๐๏ธWhโ window hierarchy changedWsโ window scrollsWsrโ window propagates a scrollrect to its underlying terminal
๐ ENVIRONMENT ๐
the debugging support is controlled by these environment variables, and fr fr you should set them before the application starts, or early during its initialisation before it's called any libtickit functions. no cap.
TICKIT_DEBUG_FLAGSโ a comma-separated list of the flags or flag categories you want enabled for printing. you can turn on entire categories of flags by just listing the initial capital letter of the name. and if you want literally all of them at once, set the name to*๐TICKIT_DEBUG_FILEโ gives the name of a file to open in append mode and write logging lines to ๐TICKIT_DEBUG_FDโ gives a file descriptor number to write logging lines to
one technique that may be useful for watching logging in real-time while the app runs: arrange for the app to run in a new terminal, but have it log its debugging output to an existing one ๐ซถ. you do that with
$ TICKIT_DEBUG_FD=3 TICKIT_DEBUG_FLAGS=... $TERM my-tickit-app 3>&2
so this asks libtickit to log to file descriptor 3, which was made by dup(2)ing the original shell's standard output. so the debug logging gets printed to the existing terminal where you ran this command, while the application itself draws its output to the newly-created one. iconic setup honestly ๐
โญ FUNCTIONS โญ
the debug system gets initialised by calling tickit_debug_init(3). and you can log messages with tickit_debug_logf(3) and tickit_debug_vlogf(3) โจ
๐ฅ SEE ALSO ๐ฅ
tickit(7), tickit_term(7), tickit_renderbuffer(7), tickit_window(7)
and that's the whole page, bestie โ this was TICKIT_DEBUG(7) from the Miscellaneous Information Manual, footer and all, so go forth and debug slay ๐
๐ mwah ๐
๐ฆ where this page comes from
- alpine 3.24: libtickit-doc 0.4.6-r0 ยท MIT
- debian bookworm: libtickit-dev 0.4.3-1 ยท MIT
- debian trixie: libtickit-dev 0.4.3-2 ยท MIT
- fedora 43: libtickit-devel 0.4.5-2.fc43 ยท MIT
- fedora 43: libtickit-devel 0.4.5-2.fc43 ยท MIT
- fedora 44: libtickit-devel 0.4.5-3.fc44 ยท MIT
- fedora 44: libtickit-devel 0.4.5-3.fc44 ยท MIT
- nixos 26.05: libtickit 0.4.5
- nixpkgs unstable: libtickit 0.4.6
- ubuntu jammy: libtickit-dev 0.4.1-1 ยท MIT
- ubuntu noble: libtickit-dev 0.4.3-1.1build1 ยท MIT
- ubuntu questing: libtickit-dev 0.4.3-2
- ubuntu resolute: libtickit-dev 0.4.3-2build1 ยท MIT
- ubuntu stonking: libtickit-dev 0.4.3-2build1 ยท MIT
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms