ITP: rxvt-W

Charles Wilson
Tue Mar 21 07:34:00 GMT 2006

Rxvt VT-100 terminal emulator for Windows, compiled to use libW11 and 
libXpm-W11 instead of internal routines.  Can be installed side-by-side 
with the "real" rxvt package without conflict.

This is just a proof of concept -- it isn't actually usable for real 
work.  I hope eventually -- with help -- to get libW11 into a good 
enough state that this version of rxvt performs as well or better than 
the "real" rxvt (native mode).  THEN, my next hope is that libW11 can 
then support a native mode rxvt-unicode (even if it doesn't actually 
support *unicode*, per se, given cygwin's newlib limitations).

The reason for this plan is:

(1) rxvt upstream development is dead.  Passed on.  No More.  Ceased to 
be.  Expired and gone to meet its maker.  A stiff.  Bereft of life. 
Rests in peace.  Pushing up daises.  Kicked the bucket.  Shuffled off 
this mortal coil.  Joined the choir invisible.  It is an EX-TERMINAL. 
The terminal is terminal. (with apologies to Monty Python).

(2) Current cygwin-rxvt development is, err, comatose.  Plus, I believe 
that the combo-nature of cygwin-rxvt (it's native! no, it's X!) gives us 
the worst of both worlds: all Xlib access must go thru a redirection 
wrapper to the runtime-loaded functions -- and the binary is compiled 
only with those options that work for both X11 and native-mode.  The 
cygwin-X server is good enough now that it can support a much richer 
version...such as that provided by:

(3) Development is active on the rxvt-unicode project.  This successor 
to rxvt has numerous bug fixes, fully refactored code, supports 
Xft-based fonts, fancy new options...  By splitting the X- and native- 
rxvt binaries, the X- version can go "there" now (see the rxvt-unicode-X 
ITP) and the native- version can catch up, eventually (or people can 
continue to use the basically unmaintained cygwin-rxvt-dual-mode binary 
for native windows.

(4) Lots of minor annoyances with rxvt's packaging and code: the cygwin 
package is not gbs-based (or scriptable at all).  The wrapper code uses 
hardcoded DLL names for runtime dynamic loading, and has no ability to 
"find" cygX11-6.dll if /usr/X11R6/bin isn't in the PATH (I've fixed this 
in my private version of old-rxvt, but since SteveO is AWOL...the 
official version isn't likely to see any fixes.  See EX-TERMINAL, above).

So, long term plan:
   (1) obsolete the current rxvt package (maybe not "officially" put
       it in the _obsolete category, but it's still on Corinna's
       missing-maintainer list, so...)
   (2) rxvt-unicode-X and rxvt-unicode-W packages, installed

Medium term plan:
   (1) keep using current rxvt package for native windows
   (2) provide rxvt-unicode-X for X-based operation -- see earlier ITP
   (3) provide libW11, libXpm-W11, and [broken]rxvt-W which uses them.
       Keep banging on libW11 and rxvt-W until it works as good as
       current rxvt.  Hope others help.
   (4) provide rxvt-W and rxvt-unicode-X installed side-by-side,
       obsoleting current rxvt completely

Medium-Long term plan
   (1) provide [broken]rxvt-unicode-W side by side with working rxvt-W
       and rxvt-unicode-X.
   (2) Bang some more on libW11 and rxvt-unicode-W until it works as well
       as rxvt-W (even if it doesn't actually support *unicode*, per se).
   (3) replace rxvt-W with rxvt-unicode-W

Current status:

rxvt-W kinda sorta works.  It can launch, host a shell, and that shell 
is usable.  rxvt-W supports xpm backgrounds, colors, ACS characters, and 
a rudimentary version of pseudo-transparency (it can find your current 
windows desktop image, and hosts it as the rxvt background. 
Unfortunately the scaling is off,'s not very good).

However, it sucks up 100% CPU -- and this is NOT the same problems as 
seen with rxvt-unicode-X + run.exe + loginShell.  This happens ALWAYS. 
I think this old rxvt's message loop worked better with the 'callback' 
mechanism in ntxlib/rxvt-own-W11, rather than the threaded message 
handler mechanism in new-libW11. [*] This obviously needs more 
investigation: it's the primary reason that rxvt-W can't substitute for 
(old) rxvt (native mode) right now.

[*] see libW11's cygwin README file for a discussion of the taxonomy of 
Win32 Xlib replacement libraries and their internal architectures.


Full voting procedures, especially as this package isn't really usable. 
  I'm ITP'ing it as a call for assistance, and it'll remain in 'test' 
state until libW11 + libXpm-W11 + rxvt-W works as well or better than 
the existing rxvt in native mode.


------------- rxvt-W.hint ---------------
category: Shells
requires: cygwin libXpm-W11_4 libW11_4
sdesc: "[BROKEN] VT102 terminal emulator for Windows"
ldesc: "This is rxvt, compiled to use the external libW11
library and a libW11-enabled Xpm library, instead of internal
routines.  It is currently only barely functional, as it
uses 100% CPU -- although it does support xpm backgrounds,
pseudo-transparency, and ordinary shell usage."

More information about the Cygwin-apps mailing list