SUCKLESS UPGRADE WORKFLOW

30 NOVEMBER 2025

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.