# Free Software Works @def maxtoclevel = 2 \toc ## Packaging ### Floating Cheeses The interplanetary wheels (or [floating cheeses][ipwhl]) are platform-unique, single-versioned Python binary distributions backed by [IPFS] for security and reproducibility. I no longer work on this. ### Nix Packages I sometimes contribute to [nixpkgs], a collection of software packages that can be installed with the Nix package manager. ### Guix System I occasionally package software for [Guix] System, a declarative GNU/Linux distribution like NixOS but takes bootstrapping more seriously. ## Applications ### threa [threa] is a X11 clipboard manager written in [Raku]. It synchronizes clipboard and primary selection and stores the history as separate files to facilitate manipulation by third-party tools. ### formbox [formbox] formats an mbox as HTML or XML. It is intended for rendering email [replies] on websites and their RSS feed. ### fead [fead] is a tool for advertising other blogs you like on your own by embedding the summary of their latest post(s) extracted from their web feed. It is a rewrite of [openring] with concurrency support in Python without any third-party library. ### rsskey [rsskey] is a simple script for mirroring [RSS] or [Atom] feeds on [Misskey]. It was known for replicating Richard Stallman's political notes to [rms@birb.space]. ### mepo [Mepo] is a fast, simple and hackable [OpenStreetMap] viewer for X11 and Wayland on desktop and mobile devices. I occasionally contribute to the project. ### zig I made trivial contributions to the [Zig programming language][Zig]'s reference implementation, documentation and specification. ### comp [Curses Omni Media Player][comp] is a [mpv] front-end using curses. ![comp screenshot](/assets/comp.png) It has basic media player functions and can to extract playlists from multiple sources such as media sites supported by [youtube-dl], local and direct URL to video/audio and its own JSON playlist format. ### pip [pip] is a package installer for Python. [Summer 2020](/blog/2020/gsoc), I worked on improving its new resolver's networking performance. The final result was not quite satisfying, but I got to meet some really nice and talented people (-; ## Libraries ### Loca [Loca] is a collection of local locations implementation in multiple programming languages. ### Palace [Pythonic Audio Library and Codecs Environment][palace] provides common higher-level API for audio rendering using OpenAL: * 3D positional rendering, with [HRTF] support for stereo systems * Environmental effects: reverb, atmospheric air absorption, sound occlusion and obstruction * Out-of-the-box codec support: FLAC, MP3, Ogg Vorbis, Opus, WAV, AIFF, etc. Palace wraps around the C++ interface [alure] using [Cython] for a safe and convenient interface with type hinting, data descriptors and context managers, following {{pep 8 naming-conventions}} (`PascalCase.snake_case`). ### Tzigame [Tzigame] is a collection of libraries for video game development in [Zig]. ## Video Games ### Brutal Maze [Brutal Maze] is a thrilling shoot ‘em up game with minimalist art style. [![Brutal Maze screenshot](/assets/brutalmaze.png)][brutalmaze-recplayer] The game features a trigon trapped in an infinite maze. As our hero tries to escape, the maze's border turns into aggressive squares trying to stop per. Your job is to help the trigon fight against those evil squares and find a way out (if there is any). Be aware that the more get killed, the more will show up and our hero will get weaker when wounded. ### Black Shades I am maintaining [Black Shades], a psychic bodyguard FPS written by David Rosen. In Black Shades you control a psychic bodyguard, and try to protect the VIP from a horde of zombies, snipers and other assorted would-be assassins. ### Axuy [Axuy] is a minimalist peer-to-peer first-person shooter. ![Axuy screenshot](/assets/axuy.png) It is a WIP game for me to experiment with various concepts in P2P networking as well as 3D game development. ### Slacker [Slacker] is a clone/parody of the popular arcade game [Stacker]. ## Plugins ### Vicious [Vicious] is a modular widget library for window managers, but mostly catering to users of the [awesome window manager]. It was derived from the old *wicked* widget library, and has some of the old *wicked* widget types, a few of them rewritten, and a good number of new ones. Vicious widget types are a framework for creating your own widgets. Vicious contains modules that gather data about your system, and a few *awesome* helper functions that make it easier to register timers, suspend widgets and so on. Vicious doesn't depend on any third party [Lua] library, but may depend on additional system utilities. ### Alful [Alful] is a six-line extension making Firefox Quantum open all windows in fullscreen to hide the toolbars in windowed mode (`full-screen-api.ignore-widgets = true`). All credits go to tazeat, who wrote the original version and suggested the change [to achieve the current behavior][alful patch]. ### vim-octave I wrote [Octave indentation support for Vim][vim-octave]. ## Localizations ### Simplified Vietnamese Keymaps I am the author of the [simplified Telex and VNI keymaps][tevnex] for [Vim][vim-tevnex] and [ibus-table]. ### Vietnamese Translation of Akkoma I help a bit with the Vietnamese translation of [Akkoma], a federated social network implementation. ### Vietnamese Translation of Flare I have translated the [Free/Libre Action Roleplaying Engine][flare] \(yep, just the engine) to Vietnamese. The translation of the [Empyrean Campaign] is work in progress---admittedly it does not get enough priority lately. ## Themes ### Add-Waiter Add-Waiter is a [GTK+ 2][add-waiter-gtk2] and [xfwm4][add-waiter-xfwm4] clone of the dark variant of the default GTK+ 3 theme [Adwaita]. It was created using screenshots of the original theme on GTK+ 3.16. ![Add-Waiter screenshot](/assets/add-waiter.png) The theme was released under GPLv2+, although after the redesign of openDesktop.org, such information is no longer available on the website. ### MathieWD [MathieWD] is a flat and clean xfwm4 theme that uses colors from the active GTK+ theme. It is inspired by elementary mathematical symbols. ![MathieWD screenshot](/assets/mathiewd.png) The theme was released under GPLv2+, although after the redesign of openDesktop.org, such information is no longer available on the website. ### Miscellaneous Other themes and configurations are cooperated into my personal [dotfiles]. ## Services ### SourceHut [SourceHut] is a fast and lightweight software development platform. It is entirely powered by free software, self-hostable and federated via email. I used to send trivial patches for random issues I run into every now and then. ### Loang [Loang] is a collection of services, including (but not limited to) [Matrix] homeserver, mail server, web server, authoritative name server, Git web UI, CI/CD, [UnifiedPush] server, IRC bouncer and shell access. ### Phylactery [Phylactery] is a web server rendering comic books directly from ZIP archives. ### Anonymous Overflow [Anonymous Overflow] is a lightweight and tracker-free front-end for Q&A on the Stack Exchange network. I contributed minor improvements in responsive styling. [ipwhl]: https://man.sr.ht/~cnx/ipwhl [IPFS]: https://ipfs.io [nixpkgs]: https://github.com/NixOS/nixpkgs [Guix]: https://guix.gnu.org [threa]: https://sr.ht/~cnx/threa [Raku]: https://raku.org [formbox]: https://trong.loang.net/~cnx/formbox [replies]: /blog/reply [fead]: https://trong.loang.net/~cnx/fead [openring]: https://sr.ht/~sircmpwn/openring [rsskey]: https://trong.loang.net/~cnx/rsskey [RSS]: https://www.rssboard.org/rss-specification [Atom]: https://tools.ietf.org/html/rfc5023 [Misskey]: https://join.misskey.page [rms@birb.space]: https://birb.space/@rms [Mepo]: https://sr.ht/~mil/mepo [OpenStreetMap]: https://www.openstreetmap.org [Zig]: https://ziglang.org [comp]: https://pypi.org/project/comp [mpv]: https://mpv.io [youtube-dl]: https://youtube-dl.org [pip]: https://pip.pypa.io [Loca]: https://sr.ht/~cnx/loca [palace]: https://mcsinyx.gitlab.io/palace [HRTF]: https://en.wikipedia.org/wiki/Head-related_transfer_function [alure]: https://github.com/kcat/alure [Cython]: https://cython.org [Tzigame]: https://sr.ht/~cnx/tzigame [Brutal Maze]: https://brutalmaze.rtfd.io [brutalmaze-recplayer]: https://brutalmaze.rtfd.io/recplayer.html [Black Shades]: https://sr.ht/~cnx/blackshades [Axuy]: https://sr.ht/~cnx/axuy [Slacker]: https://pypi.org/project/slacker-game [Stacker]: https://en.wikipedia.org/wiki/Stacker_(arcade_game) [Vicious]: https://vicious.rtfd.io [awesome window manager]: https://awesomewm.org [Lua]: https://www.lua.org [Alful]: https://addons.mozilla.org/en-US/firefox/addon/alful [alful patch]: https://github.com/tazeat/AutoFullscreen/issues/4#issuecomment-509723353 [vim-octave]: https://github.com/gnu-octave/vim-octave [tevnex]: https://github.com/McSinyx/ibus-table-vietnamese#phương-thức-gõ [vim-tevnex]: https://github.com/vim/vim/commit/a02a551 [ibus-table]: https://github.com/moebiuscurve/ibus-table-others/commit/b6fafd0 [Akkoma]: https://akkoma.social [flare]: https://flarerpg.org [Empyrean Campaign]: https://flarerpg.org/index.php/mods/flare-empyrean [add-waiter-gtk2]: https://www.opendesktop.org/p/1078597 [add-waiter-xfwm4]: https://www.opendesktop.org/p/1016170 [Adwaita]: https://blogs.gnome.org/mclasen/2014/06/13/a-new-default-theme-for-gtk [MathieWD]: https://www.opendesktop.org/p/1016294 [dotfiles]: https://trong.loang.net/~cnx/dotfiles [SourceHut]: https://sourcehut.org [Loang]: https://loang.net [Matrix]: https://matrix.org [UnifiedPush]: https://unifiedpush.org [Phylactery]: https://trong.loang.net/phylactery [AnonymousOverflow]: https://github.com/httpjamesm/AnonymousOverflow