Linux

Where Is the st Config File?

st has no settings file: fonts, colors and shortcuts compile in from config.h in the source tree.

Last updated

st treats configuration as source code. Everything (font, colors, scrollback behavior, shortcuts) is a C variable in config.h, baked in at compile time. Upstream ships only config.def.h with sane defaults; your copy is the config.

Back up config.h, not the binary. A fresh checkout plus your header plus make reproduces the exact terminal anywhere, patches included.

Where st stores this, by platform

Linux
[SourceDir]/config.h

Font, colors, shortcuts and behavior as C defines. Created by copying config.def.h. Recompile and restart after every change; nothing reads at runtime.

Frequently asked questions

How do I change the font or colors in st?

Edit config.h and run make clean install. There is no reload mechanism; the running binary keeps the old build until you restart the terminal.

How do I apply a suckless patch to my customized st?

Copy config.def.h to config.h, then apply the patch and recompile. Patches target the template, so keep your config.h backed up before rebasing onto a new release.

Notice an outdated path? Let us know.