I host most of my more recent projects at https://sr.ht/~ser. Some of the projects there are forks, but the ones I’ve authored are:
- Forage is a shopping list app backed by your (self-hosted) Mealie server. It features an offline mode, syncing and merging, the ability to add lists and items, and it runs as a native app on your desktop and mobile devices.
- legume tracks issues in sourcecode TODO/FIXME comments
- quasiauto is an autotype tool. It was written to add autotype functionality to kpmenu (you’ll need my fork for the integration).
- gocryptkeeper provides a systray applet for mounting & unmounting gocrypt shares
- i3quake is a lightweight hotkey popup system for i3, originally developed to provide i3 with a Quake terminal
- kbplug tries to be a non-root udev system, designed to run programs when smart keyboards are plugged in.
- I’m now the maintainer and main developer of gotop, a popular cross- platform, terminal
top
application - todotxt-merge is a utility for merging todo.txt files, like the sync conflicts created by SyncThing.
- importicals is a short script that helps keep icals in sync with remind events. May be useful in a vdirsyncer/khal/remind toolchain.
- invoice is a PDF invoice generator from TimeWarrior records
- i3-tracker is a script to track time in TimeWarrior based on which i3 workspace is displayed
- orgchart generates organization charts from spreadsheet data, written originally out of frustration watching an admin manually maintain one in Powerpoint
- An implementation of the MARS voting system, an explatory improvement on STAR
- Restic/BackBlaze backups, config files and a how-to for setting up restic backups with Backblaze
Most of these are version controlled in Mercurial, but recently I’ve been working with a tool called Jujutsu which is a mash-up of Git, Mercurial, and DARCS, attempting to combine the best features of the three. One important feature is that it is backed by git, meaning it’s compatible with exterior git servers; consequently, I’ve been leaving more projects in git:
I also contributed bug fix and feature PRs to a number of projects. Some of the more active ones which may have useful changes not yet upstream are kept on Sourcehut:
- gonic - a media streaming server implementing the Subsonic API. I provided support for loading server-side playlists from a directory.
- stmp - a terminal client for *sonic music servers. Inspired by ncmpcpp. I’ve been working off a fork of a fork, and have put in a bit of time on this to get it to where I can use it daily. I’ve added MPRIS support, search, and sorting, in addition to fixing bugs and addressing concurrency issues.
Legacy applications, for hysterical reference (maybe someone will find some useful code in here)
- Given two images, perceptualdiff provides a perceptually difference score; originally written as part of a testing tool for web sites to track the magnitude of CSS changes
- disp is another utility for i3 to manage display plug/unplug events; use https://github.com/rliou92/python-umonitor instead
- vaccinewatcher, now obsolete… or is it?
- duodecimal provides libraries for Ruby and Haskell for working with dozenal
- RML is another markup language; obviously the superior one, but markdown – like Windows, git, and VHS – has won through ubiquity despite technical inferiority
- ditz-trac was a system to sync Ditz bugs with Trac. I haven’t used either in so long, and ditz has been unmaintained for years, so this is probably of hysterical historical interest only
- autocompare helps track changes on websites. Designed for large numbers of sites (on the order of 2-3 hundred thousand pages), it produces a perceptual difference between two versions of a website and flags if the amount of change is larger than a configured amount.
- configserver is a little process to provide versioned configuration information through a simple REST interface, supporting set inheritance. It is schema-less and ad-hoc.
- Gozirra is a lightweight Java (1.4) implementation of the Stomp specification.
- Sashay is an OpenAPI code generator for golang.
- marcinator is a tool for managing software releases and deployments
- svggraph (SVG:::Graph) is a pure Ruby library for generating charts, which are a type of graph where the values of one axis are not scalar.
- TimeTracker is an Android app that helps you record the amount of time you spend on activities
- REXML is an XML parser for Ruby, in Ruby. Note REXML is now part of the Ruby standard library; this repository is historical, and represents development up to inclusion into Ruby.