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
FAQ
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.