Mark Edgar wrote a patch for PuTTY called PuTTYcyg that makes it work as a terminal emulator for Cygwin. I'd been using it for several months at work and it cohabits quite peacefully with PuTTY. It is not an ideal solution and I'd much prefer it if the functionality was included in the official PuTTY source but since I'll only use the binary for connecting to the localhost I guess security isn't that big a deal.
1. Download PuTTYcyg from here and install puttycyg.exe and cthelper.exe (I installed them to the same folder as PuTTY, e.g. "C:\Program Files\PuTTY\").
2. Create a shortcut to puttycyg.exe with the command line arguments "-cygterm -" in the Target: box, e.g. "C:\Program Files\PuTTY\puttycyg.exe" -cygterm -
This will start a Cygwin terminal using your default shell (specified in /etc/login).
That's pretty much it! No more horrible Command Prompt with Cygwin.
(Oh, you might want to change the icon of that shortcut to Cygwin's icon - there should be a cygwin.ico file in Cygwin's root install directory.)
I find it useful when I right-click on a directory to have a target called "Cygwin Prompt Here" that, as the name implies, opens a Cygwin terminal in that directory. Here's what I did:
1. Start the Registry Editor (regedit).
2. Browse to HKEY_CLASSES_ROOT\Directory\shell\
3. Create a new key called "Cygwin Prompt".
4. Modify the default value of Cygwin Prompt to "Cygwin &Prompt Here".
5. Create a new key under Cygwin Prompt called "command".
6. Modify the default value of command to (include the quotes and modify the path to puttycyg.exe as appropriate): "C:\Program Files\PuTTY\puttycyg.exe" -cygterm bash --rcfile ~/.bash_login -i
That's it! You should be able to right-click a directory and get a shell in that directory.
Here's a summary of what you should have:
HKEY_CLASSES_ROOT\Directory\shell\Cygwin Prompt (Default) REG_SZ Cygwin &Prompt Here HKEY_CLASSES_ROOT\Directory\shell\Cygwin Prompt\command (Default) REG_SZ "C:\Program Files\PuTTY\puttycyg.exe" -cygterm bash --rcfile ~/.bash_login -i