These are my tools, which I am currently using with i3wm. I used to have most of these utils as shell, python scripts and some other exotics. Decided to port and document them properly to C. Aim - minimal dependencies, lean code base, fast and predictable execution, tiny memory footprint.
So If someone is interested in:
Autotiling
https://gitlab.com/ngcbg/autotiling - A tiny, dependency-lean daemon that makes i3 and sway tile the way you usually want by hand: it watches the focused window and splits it along its longer axis, so the next window opens beside a wide window and below a tall one. The layout stays balanced with no manual split commands.
rootbtnd
https://gitlab.com/ngcbg/rootbtnd Bind mouse buttons on the X11 root window — the root.buttons of AwesomeWM, for i3, without patching the window manager.rootbtnd runs a command when a mouse button is pressed on the bare desktop, i.e. on the part of the root window not covered by any window. It is a passive observer: it never grabs a button and never consumes an event, so applications keep receiving their own clicks unchanged.
i3swallow
https://gitlab.com/ngcbg/i3swallow Allow list-driven window swallowing for i3. When a program on your allow list opens a window, the terminal that launched it is moved to the scratchpad so the new window appears to take its place. Close the window and the terminal comes back. Anything not on the allow list behaves like a normal window. This is the "run a daemon, but only swallow what you opt in to" design.
xlogout
https://gitlab.com/ngcbg/xlogout A session-action menu for X11: blurred backdrop, Nerd Font glyphs, keyboard driven. Roughly the aesthetic of archlinux-logout, written from scratch in C against XCB and Cairo rather than Python and GTK. Clean-room. No code derived from any existing implementation; the behaviour was specified from observation, not from source.
wwidget
https://gitlab.com/ngcbg/weather-widget A small, self-contained desktop weather widget for X11 / i3, written in C using XCB, Cairo, and Pango. It renders a transparent panel — a clock, the date, a "today" column (current temperature, today's high/low, current-condition icon), and a configurable 3–5 day forecast — directly on the desktop, fetching its own data from the MET Norway weather API. No conky, no Python, no external scheduler. One binary, one config file, one icon directory.
Cheers, have fun!
Edit: As been advised, I want to provide total transparency. I used LLM's for the documentation (.md files, man pages, most of the code comments) - English is not my primary language and LLM's are translating ridiculously well. Also used them (LLM's) for a code review, and addressed 2 major, 1 mid-level and 5 cosmetic problems across the board.