Linux

Where Is the st Config File?

st has no runtime config file. Fonts, colors, and keys live in config.h in the source tree, baked in at compile time.

Last updated

st follows the suckless rule: no config files at runtime, only a C header at build time. Every behavior (font, colors, scrollback, keybindings) is a constant in config.h inside your source checkout. Changing anything means editing and recompiling.

Fresh clones ship config.def.h as the template. The Makefile copies it to config.h on first build, and your edits persist through later pulls. Patches extend the same file, so the source dir itself is the backup unit. Scrollback and clipboard integration arrive as patches, not options.

Where st stores this, by platform

Linux
/home/<username>/src/st/config.h

Live config header. Created from config.def.h on first build. Fonts, colors, and shortcuts live here.

Frequently asked questions

How do I change st fonts and colors?

Copy config.def.h to config.h in the source dir, edit it, then run make clean install. The build picks up config.h automatically.

How do I sync my st setup?

Keep the whole source dir in version control. Patches and config.h travel together, and rebuilds stay reproducible across machines.

Notice an outdated path? Let us know.