--- title: Suckless upgrade workflow date: 2025-11-30 layout: post --- Workflow for managing suckless patches across upgrades: Initial setup: - Clone from suckless - Reset to stable tag - Set push URL to my repo (git.asciimx.com) - Pull from upstream, push to mine Config changes only: - Edit config.h (or let make generate it) - make clean install - Commit, push dwm/slstatus installs: - Can't replace running binaries - Kill dwm (Mod+Shift+q) - Switch to tty (Ctrl+Alt+F1 on OpenBSD) - make install - Back to X (Ctrl+Alt+F5) Upgrades: - git pull --rebase - git rebase -i to drop commits between my patch and new stable - Keep only: my patches + new stable tag + old history - Install, commit, push Example: Before: [my patch] -> [6.5]
After pull: [my patch] -> [random commits] -> [6.6] -> [old stuff] -> [6.5]
After rebase: [my patch] -> [6.6] -> [old stuff] -> [6.5] Note: This keeps patch history clean while staying current.