Darkman portal configuration
Vdirsyncer status update, March 2024
My 'lock-and-sleep' script
vdirsyncer: rewriting status management
Setting up an IRC bouncer (soju) on OpenBSD
Extended usages of the primary selection
vdirsyncer: preparing for alpha version
Specification and development status for valarmd
vdirsyncer status update, November 2023
Measuring test coverage in Rust
Setting a battery charge threshold
Setting up an Alpine Linux workstation
vdirsyncer status update, October 2023
A configuration format for vdirsyncer v2
Debugging a non-functional pylsp
vdirsyncer status update, August 2023
Building and running sway-master
vdirsyncer status update, July 2023
Extending an expired GPG key
senpai: a modern IRC terminal client
vdirsyncer status update, June 2023
Understanding the XDG access portal
vdirsyncer status update, May 2023
DNS-based discovery for CalDav and CardDav
Installing postmarketOS on a OnePlus 6 with an encrypted filesystem
Thoughts on sendmail in 2023
vdirsyncer status update 2023-03
AI-assisted computer interfaces of the future
Using a Yubikey for both GPG and TOTP
In praise of Alpine and apk
OpenWrt with KPN fibre optics
vdirsyncer: looking for hosted Dav servers
icalendar bug at NS International
Selection / clipboard cheatsheet
Systemd, locking and sleeping
Shotman 0.2 development update part 2
Shotman 0.2 development update part 1
Meson for Python applications
Announcing caffeine-ng v4.0.0
Quick and simple VMs with qemu
How I secure my setup with a YubiKey
Open source platforms for open source software
Introducing darkman v1.0.0
I like that Signal is looking for sponsors
Running Eve-Online on Linux/Wayland
The issue with flatpak's permissions model
How disk encryption works
My desktop-wide microphone mute toggle
A simple boot setup with SecureBoot
Zoom screen sharing on ArchLinux
Using FreeOTP with Battle.net
Using letsencrypt with HKPK
Opensmtpd and dovecot with a shared SQL database
Performing backups the right way