<p>I need a serviceable shell for MSYS.  This is my current dilemma: </p>

<p>The default rxvt.exe has a scroll bar and copy and paste, but doesn't send control characters or arrow keys to a running program in the shell (like interpreters/debuggers).  This is a real thorn when using the Haskell interpreter ghci.</p>

<p>The other shell sh.exe handles control characters (or at least some of them), but has no scroll bar or copy and paste.</p>

<p>rxvt also has (relatively) more issues with output buffering</p>

<p>What are my options?  Does the replacement shell need to be msys aware?  All I want is a sane environment to work with Haskell (ghc), C++ (gcc), and the basic tool chain (make and what not).  I'm willing to compile a shell if it doesn't involve crazy shenanigans.</p>

You are confusing "shell" and "terminal emulator".
```
sh.exe
```
is the former; rxvt is the latter. (mind you, under Windows you can do without a terminal emulator because Windows creates one (a "console window") for any console program (such as sh.exe) if it's not already running inside one)