This is a brief list of projects which I have written or maintained in recent years. I also contribute to third party projects, and maintain a several packages in the Alpine Linux repositories.
Pimsync
pimsync is a command line tool to synchronise calendars and contacts between different storages, including CalDAV, CardDAV and a local filesystem. Pimsync is a successor and reimplementation of vdirsyncer.
Development of this project is possible thanks to funding and support from the NLnet foundation and the NGI Zero Entrust program of the European Commission.
A few additional projects exist under the umbrella of pimsync:
Candyboot
Candyboot is a minimal UEFI stub loader for the Linux kernel. It is used to produce a single UEFI bundle executables which include a kernel, cmdline and initrd. A UEFI system can run this executable directly to boot into a regular Linux setup. The bundle can be signed with Secure Boot keys and ensures that no portion of the load chain has been tampered.
Wayland utilities
I’ve written a few desktop utilities. Most of these are “done” and don’t require active maintenance:
- way-alive track the lifetime of a wayland compositor.
- way-secure create wayland security contexts.
- wlhc (wayland hot corners) executes a command when the pointer touches a corner of the screen.
- wayidle waits for wayland compositor idle timeout.
Shotman
Shotman takes a screenshot of the current screen (or a portion of it) and shows a small thumbnail window to copy, delete or dismiss it. It is optimised to be simple and fast. The thumbnail is typically displayed within one or two frames and appears virtually “instantaneous”.
Address Book tools
A couple of tiny tools to operate on local address books:
- ab-bday generates birthday iCalendar events for vCard contacts.
- ab-tidy renames vCard files to match their contact’s display name.
todoman
todoman is a simple, standards-based, command line todo (aka: task) manager. Todos are stored into iCalendar files, which means you can sync them via CalDAV using, for example, pimsync or vdirsyncer.
darkman
darkman is a daemon to control dark-mode and light-mode transitions. It allows executing custom actions, integrates with common APIs and can trigger automatic transitions at sundown/sunrise.
python-barcode
python-barcode generates standard barcodes in pure Python. It is a fork of an ancient library abandoned before 2017, mostly focused on maintaining a compatible API while still working on recent versions of Python.
Django libraries
I maintain a few libraries for Python/Django projects:
- django-afip submits invoices and other receipts to Argentina’s tax agency via their SOAP API. Also supports generating PDFs and implements a few other related features.
- django-renderpdf renders Django templates into PDF files.
- django-payments process payments via several payment processors. I adopted and maintained this projects, and did not implement most of it myself.
usvc
usvc is a minimal and experimental user
service manager based on s6 and s6-rc, which do most of the heavy lifting.
usvc
itself is mostly a frontend for the latter two.
Miscellaneous tools
- zone2desec writes a zone file into desec.io.
- timer waits for a specified number o
seconds, then exit. Unlike
sleep
, this command counts time while the system is suspended. - find-my-tux is a “Find Me” Bluetooth profile implementation.
Miscellaneous libraries
- utmpx-rs is a Rust binding and
wrapper around
utmpx.h
. - scfg-scanner is a scanner for the scfg configuration format.
Dotfiles
I keep my dotfiles under a public git repository. They are not indented for public use, but may be used as reference.