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.
This repository is a comprehensive educational reference and cheat sheet for 42 School's C programming curriculum. It contains extensive documentation covering C basics, common mistakes, clean coding practices, development tools, curated learning resources, and tutorials on optimization, graphics, and security. The repository also includes a collection of standalone C/C++ code examples demonstrating various programming techniques (SIMD vectorization, multithreading, bit manipulation, socket programming) and a set of remote coding challenges with automated testing. While not a deployable application, it serves as a valuable learning resource and provides reusable code snippets, particularly the SIMD abstraction header for fast word/line counting.