Note: The window decoration shown is part of my desktop theme.
mrxvt is currently dead (I can't even find the VB source code for it anymore). The primary reason for discontinuing it was that the W11 library handles focus in such a way that I wasn't able to subclass the window handle properly in VB (they also make a point of using a different window class for each rxvt, which does not help things). There is a feature request for adding tabs to the base rxvt, and that seems the best way to go about this.
Being a heavy Cygwin and Mozilla user, I have long wished for tabbed terminals in Windows. Since rxvt works just fine for me and I understand Win32 API calls, I decided to have a go at hacking one myself with the minimum of fuss.
I could have used screen (and I do, every time I get the chance), but there wasn't a stable port of screen for Cygwin at the time, and I used to have all kinds of irritating little issues with it on Cygwin (mosty termcap stuff that I didn't want to have to deal with). That's now gone away.
mrxvt was written in Visual Basic 6.0 (SP5). I did not use .NET or a "proper" programming language because:
- I can do everything I need (in terms of raw API calls) inside VB
- It cut down development time to no end (saved me the bother of writing a lot of layout and window management crud in C/C++)
- Most people already have the necessary runtimes installed - hence a smaller, easier to distribute executable
- .NET was not very widespread (most people don't have runtimes, etc.)
- It was supposed to be a very simple solution, not have multitudes of bells and whistles.
- There was a lot of flickering when launching new rxvt instances. This was due to the way the rxvt port interacts with Windows, but I could not find ways to minimize it.
- There were no hotkeys to change between windows
- rxvt processes kept "hanging" (this is an rxvt issue on some systems, not a mrxvt issue, but since it affects usage, it's listed here)