$ account jgmenu
jgmenu is a lightweight, standalone X11 menu application written in C, designed for scripting, modding, and tweaking. It renders menus using Cairo and Pango, reading menu data from CSV files or piped commands. The architecture is modular: a core menu engine (src/jgmenu.c) handles event loops, drawing, and item management, while separate generators (jgmenu-apps, jgmenu-ob, jgmenu-lx, jgmenu-pmenu) produce CSV data from .desktop files, Openbox XML, or XDG menus. Configuration is via a jgmenurc file with 80+ options, and IPC via Unix sockets enables integration with tint2 and XFCE panels. The codebase demonstrates strong C engineering practices: banned unsafe functions, custom safe string buffers (sbuf), a generic linked list (list.h), a hashmap, and a CSV parser with triple-quote support. It includes a comprehensive test suite using a sharness-like framework and CI via GitHub Actions. While tightly coupled to X11, the utility modules are cleanly isolated and reusable in other C projects.