Cygwin packages, like openssh and git, follow the standard Unix conventions and
$HOME/.config directory for storing the user configuration
/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%\.config\appname, or they will prefer the
USERPROFILE and store their configuration in
$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
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.