Hugo's weblog

Hi there! I’m a software developer and researcher, passionate about open source, sustainable technology, and ethical software. I write programs and tools that are available for anyone to execute, study, modify, or redistribute. If you appreciate my work, consider sponsoring me.

[rss feed]

Journal entries

Pimsync status update 2024-12
#pimsync #status-update #vdirsyncer
Injecting project versions into builds
#development #git #rust
Vdirsyncer status update 2024-11: renaming to pimsync
#pimsync #status-update #vdirsyncer
Snooze: a simpler cron
#open-source
Vdirsyncer status update 2024-10: security audit
#status-update #vdirsyncer
Vdirsyncer status update 2024-09
#status-update #vdirsyncer
Transcribing audio with whisper.cpp
#experiment #how-to #tts
Writing an emoji input method, part 1
#input-method #keyboard #wayland
Dark mode is not about aesthetics
#accessibility #dark-mode #ui #usability #ux
Status update 2024-08
#status-update #vdirsyncer
Unix domain socket support for vdirsyncer
#design #vdirsyncer
Quickly render the Clipboard as a QR code
#clipboard #desktop #qr
Typing non-English characters
#input-method #keyboard #notes
Introducing wlhc: wayland hot corners
#wayland
Editing filenames and directories in Vim
#open-source #tools
Status update 2024-06
#status-update #vdirsyncer
IRC is great for public spaces
#instant-messaging #internet #irc
Notes on saving coredumps
#experiment #notes
SSH as a sudo replacement
#experiment #notes
Status update, May 2024
#status-update #vdirsyncer
Growing my root partition to the left
#alpine #btrfs #how-to
Darkman portal configuration
#darkman #desktop #linux
Vdirsyncer status update, March 2024
#status-update #vdirsyncer
Notes on s6
#notes #open-source #s6
My 'lock-and-sleep' script
#open-source #sway #wayland
vdirsyncer: rewriting status management
#status-update #vdirsyncer
Nine months of Xendmail
#email #open-source #status-update
Setting up an IRC bouncer (soju) on OpenBSD
#bouncer #irc #openbsd #soju
Extended usages of the primary selection
#desktop #idea #linux #selection #wayland #xorg
vdirsyncer: preparing for alpha version
#status-update #vdirsyncer
Specification and development status for valarmd
#calendar #open-source #plan
vdirsyncer status update, November 2023
#open-source #status-update #vdirsyncer
Measuring test coverage in Rust
#how-to #rust
Setting a battery charge threshold
#alpine #hardware #openrc
Setting up an Alpine Linux workstation
#alpine #desktop #how-to #linux
vdirsyncer status update, October 2023
#open-source #status-update #vdirsyncer
A configuration format for vdirsyncer v2
#open-source #status-update #vdirsyncer
Debugging a non-functional pylsp
#lsp #neovim #open-source
vdirsyncer status update, August 2023
#open-source #status-update #vdirsyncer
Building and running sway-master
#alpine #open-source #sway
vdirsyncer status update, July 2023
#open-source #status-update #vdirsyncer
Extending an expired GPG key
#gpg #open-source #security #yubikey
senpai: a modern IRC terminal client
#irc #open-source
vdirsyncer status update, June 2023
#open-source #status-update #vdirsyncer
Understanding the XDG access portal
#flatpak #open-source #xdg-desktop-portal
vdirsyncer status update, May 2023
#open-source #status-update
Introducing davcli
#open-source #status-update #vdirsyncer
DNS-based discovery for CalDav and CardDav
#open-source #vdirsyncer
libdav live test results
#status-update #vdirsyncer
Tracking dotfiles
#dotfiles
Installing postmarketOS on a OnePlus 6 with an encrypted filesystem
#how-to #linux-mobile #open-source #qemu
Thoughts on sendmail in 2023
#email #open-source
vdirsyncer status update 2023-03
#status-update #vdirsyncer
AI-assisted computer interfaces of the future
#interfaces #sci-fi #tng
Notes on Podman
#notes #open-source
Using a Yubikey for both GPG and TOTP
#gpg #notes #yubikey
In praise of Alpine and apk
#alpine #linux #open-source
OpenWrt with KPN fibre optics
#networking #notes
vdirsyncer: looking for hosted Dav servers
#open-source #vdirsyncer
icalendar bug at NS International
#bug #icalendar #journal
Setting up IRC redirects
#instant-messaging #irc #notes
Notes on ruff
#development #open-source #python
Notes on pre-commit
#development #open-source #python
Selection / clipboard cheatsheet
#clipboard
Copying with Super+C
#clipboard #history
Systemd, locking and sleeping
#desktop #open-source
How the clipboard works
#clipboard #desktop #programming
Shotman 0.2 development update part 2
#open-source #shotman #status-update #wayland
Shotman 0.2 development update part 1
#open-source #shotman #status-update #wayland
My packaging policy
#open-source
Please verify it's you
#satire
Meson for Python applications
#open-source
Announcing caffeine-ng v4.0.0
#open-source #release
Using a Yubikey for GPG
#gpg #open-source #security #yubikey
Quick and simple VMs with qemu
#how-to #notes #open-source #qemu
Status update, May 2022
#open-source
How I secure my setup with a YubiKey
#open-source #security #yubikey
Open source platforms for open source software
#ethics #open-source #sustainability
A vdirsyncer rewrite
#open-source #sponsors #vdirsyncer
Introducing darkman v1.0.0
#darkman #desktop #open-source
I like that Signal is looking for sponsors
#open-source #signal #sustainability
Running Eve-Online on Linux/Wayland
#gaming #guide #linux #steam
The issue with flatpak's permissions model
#flatpak #isolation #linux #packaging #security
How disk encryption works
#desktop #linux #security
My desktop-wide microphone mute toggle
#desktop #discord #kiss #linux #meet
A simple boot setup with SecureBoot
#boot #kiss #linux #sbctl #uefi
Zoom screen sharing on ArchLinux
#unix #wayland #zoom
What is git?
#tech
Spotify review
#rant #review #tech
Using FreeOTP with Battle.net
#battle.net #security
Using letsencrypt with HKPK
#internet #security #tls
I'm giving up on IM
#instant-messaging #internet #rant
Start small, then grow
#development
Introducing Todoman
#caldav #getting things done #unix
Open source your website
#open-source
Opensmtpd and dovecot with a shared SQL database
#dovecot #opensmtpd
Performing backups the right way
#backups #unix