--- title: Projects --- Every public project on [GitHub](https://github.com/hugoocoto), grouped by kind. Forks are not listed. ## Tools and applications | Project | Description | Language | |---|---|---| | [pm](projects/pm.md) | Package manager configured in Lua, builds in parallel | C | | [pm-user-repository](projects/pm-user-repository.md) | Community registry of package definitions for pm | Lua | | [isf](projects/isf.md) | Two-way folder sync over ssh | C | | [vicel](projects/vicel.md) | Terminal spreadsheet editor with Vim motions | C | | [wl2kodi](projects/wl2kodi.md) | Screen mirroring from wlroots Wayland to Kodi | Shell | | [send2kodi](projects/send2kodi.md) | Send links and local videos, music and pictures to Kodi | Python | | [browser2kodi](projects/browser2kodi.md) | Browser extension to play pictures, videos, songs and links on Kodi | JavaScript | | [tffpr](projects/tffpr.md) | PDF RSVP speed reader | C | | [yaci](projects/yaci.md) | Calculator interpreter with a C FFI | C | | [dv](projects/dv.md) | Directory view with regex editing | C | | [b](projects/b.md) | Minimal Qt browser | C++ | | [zrun](projects/zrun.md) | Fuzzy application launcher | Zig | | [mybar](projects/mybar.md) | Wayland status bar configured in Lua, with plugin modules | C | | [eqnx](projects/eqnx.md) | Plugin-based application environment (archived) | Rust | | [tui-do](projects/tui-do.md) | Task list for the terminal, stored in Lua | C | | [todo](projects/todo.md) | The original to-do list for the terminal | C | | [fetch](projects/fetch.md) | Suckless-style system info fetcher | C | | [pdfjoin](projects/pdfjoin.md) | Merge PDFs keeping their outlines | Python | | [wallpapers](projects/wallpapers.md) | Wallpaper collection and rotation script | Shell | | [piano](projects/piano.md) | A piano for the terminal | C | ## C libraries | Project | Description | |---|---| | [flag.h](projects/flag.h.md) | Command line flag parser, inspired by argparse | | [conf.h](projects/conf.h.md) | Lua config file reader for C and C++ | | [cum.h](projects/cum.h.md) | Cursed yet Useful Macros | | [bt.h](projects/bt.h.md) | Red-black tree with string keys | | [timeslice.h](projects/timeslice.h.md) | Overhead-corrected wall-clock timer | | [cpu-usage](projects/cpu-usage.md) | CPU usage and RAPL energy readings on Linux | | [enc](projects/enc.md) | Base64 and SHA-256 | | [passimg](projects/passimg.md) | Passwords taken from an image | | [libpngstore](projects/libpngstore.md) | Store data in the pixels or chunks of a PNG | | [mmmalloc](projects/mmmalloc.md) | Misoptimised memory allocator | | [thread_pool](projects/thread_pool.md) | Apply a function to an array in parallel | | [printf](projects/printf.md) | A dumb printf | ## Languages and compilers | Project | Description | Language | |---|---|---| | [lang](projects/lang.md) | Lu, a programming language | C | | [malpp](projects/malpp.md) | Comment directives that make loops malleable | C | | [lineit](projects/lineit.md) | A blueprint-like language | C | | [nvim-lu](projects/nvim-lu.md) | Lu syntax highlighting for Neovim | Vim Script | ## Games | Project | Description | Language | |---|---|---| | [tetris](projects/tetris.md) | Tetris for the terminal | C | | [freecell](projects/freecell.md) | FreeCell solitaire with raylib | C++ | | [pokerish](projects/pokerish.md) | Texas Hold'em server for bots | C++ | | [freedoom](projects/freedoom.md) | Something like a naked game engine | C | | [minesweeper_bot](projects/minesweeper_bot.md) | Bot for minesweeper.org | Python | | [maze_generator](projects/maze_generator.md) | Draw a maze into an image and solve it | Python | ## Configuration and themes | Project | Description | |---|---| | [dotfiles](projects/dotfiles.md) | My configs | | [st](projects/st.md) | My patched suckless terminal | | [gogh-theme](projects/gogh-theme.md) | Base16 Gogh scheme for kitty and Neovim | | [nvim-gogh](projects/nvim-gogh.md) | The Gogh colorscheme for Neovim | | [vm-unsupported-releases](projects/vm-unsupported-releases.md) | Packages built for a 2018 Debian VM | ## Documents and Typst | Project | Description | |---|---| | [wired-ieee](projects/wired-ieee.md) | Multilanguage IEEE paper template | | [resume](projects/resume.md) | My resume | | [conf.h-paper](projects/conf.h-paper.md) | Paper about conf.h | ## Claude skills | Project | Description | |---|---| | [always-typst.skill](projects/always-typst.skill.md) | Make Claude build PDFs with Typst | | [cesga-ft3-skill](projects/cesga-ft3-skill.md) | Guide to CESGA's FinisTerrae III | ## Web and infrastructure | Project | Description | |---|---| | [hugocoto.com](projects/hugocoto.com.md) | The previous version of my website | | [grafana-template](projects/grafana-template.md) | Docker Grafana stack with MySQL and CSV sources | ## Other | Project | Description | |---|---| | [blank](projects/blank.md) | GitHub says that name cannot be blank |