Skip to content

Configuration Locations

Cygwin packages, like openssh and git, follow the standard Unix conventions and use your $HOME or $HOME/.config directory for storing the user configuration and /etc for the system configuration.

For native Windows programs the situation is a bit more complicated. For the user configuration some programs use the standard Windows paths, such as %USERPROFILE%\AppData\Roaming. In some cases native Windows programs are minimally ported from Unix and will write to %USERPROFILE%\.appname or %USERPROFILE%\.config\appname, or they will prefer the HOME environment variable over USERPROFILE and store their configuration in $HOME\.appname or $HOME\.config\appname like their Unix variants. For the system configuration some programs might store them alongside their other data files or in case they were ported from Unix they might follow the Unix layout and store things in $MINGW_PREFIX/etc/appname


Can't all programs use the same location for their user configuration?

While having two locations for configuration can be confusing we want native programs to follow Windows conventions and be independent from MSYS2. Also we don't want to change the behavior of programs compared to their upstream versions unless we have to.