How can I change my MinGW/MSYS + mintty home directory?

I use mintty as my console emulator for MinGW/MSYS. Recently (I'm not certain exactly when), the home directory used by this combination changed from my Windows user folder (/c/Users/<me>/) to /home/<me>/, which is causing minor havoc for me.

How can I change my home directory back? I've done some searching online, but all of the information I've been able to find so far is Cygwin-specific and hasn't translated well to MinGW/MSYS.

The most likely-looking avenues I've pursued so far are /etc/passwd and /etc/nsswitch.conf, both of which are entirely absent from MSYS' root. I've tried creating an /etc/nsswitch.conf containing a db_home: windows line, but this seemed to have no effect. I've not yet tried creating an /etc/passwd file as mkpasswd isn't present in MinGW/MSYS and I don't know what its contents should be.

I'm running:

  • Windows 10 (w/ Anniversary Update)
  • the latest version of all my installed MinGW and MSYS packages
  • …including msys-mintty 1.0.3-1-msys-1.0.17

Unlike Cygwin, MSYS relies on the HOME environment variable. To set or change your HOME variable:

  1. Press Win-r on your keyboard or select "Run…" from the Start menu.
  2. Type "sysdm.cpl" and click OK.
  3. Select the Advanced tab and click Environment Variables…
  4. Click New… to create a new HOME variable or select the existing one and click Edit…
  5. When finished, keep clicking OK until all windows are closed.

The solution for MSYS2 is creating/updating /etc/nsswitch.conf with a line

db_home: windows

as described in Cygwin docs: https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-nsswitch-home.

After that all MSYS applications and terminals must be closed, as the configuration is only read once at MSYS DLL load time. (See https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-nsswitch.)

As of Oct, 2019, it works for me in a fresh installation of MSYS2. Probably, in MSYS 1 nsswitch.conf was not supported.

Creating HOME environment variable works for shell, but does not work for ssh, which tries to access /home/User/.ssh anyway.