libxrx - RX Web Browser Plug-in


The RX Plug-in may be used with web browsers in the Mozilla family, including Netscape Navigator (3.0 or later), Firefox, and SeaMonkey, to interpret documents in the RX MIME type format and start remote applications.

The RX Plug-in reads an RX document, from which it gets the list of services the application wants to use. Based on this information, the RX Plug-in sets the various requested services, including creating authorization keys if your X server supports the SECURITY extension. It then passes the relevant data, such as the X display name, to the application through an HTTP GET request of the associated CGI script. The Web server then executes the CGI script to start the application. The client runs on the web server host connected to your X server. In addition when the RX document is used within the EMBED tag (a Netscape extension to HTML), the RX Plug-in uses the XC-APPGROUP extension, if it is supported by your X server, to cause the remote application to be embedded within the browser page from which it was launched.


To install the RX Plug-in so that the web browser can use it, find the file named or (or similar, depending on your platform) in __ProjectRoot__/lib and copy it to the browser plugin directory in the system installation or your home directory (such as /usr/lib/firefox/plugins or $HOME/.firefox/plugins).

If you have configured the web browser to use the RX helper program (xrx), you must reconfigure it. Generally you simply need to remove or comment out the line you may have previously added in your mailcap file to use the RX helper program. Otherwise the plug-in will not be enabled. (The usual comment character for mailcap is ‘‘#’’.)

If you are already running the web browser, you need to exit and restart it after copying the plug-in library so the new plug-in will be found. Once this is done you can check that the browser has successfully loaded the plug-in by checking the ‘‘About Plug-ins’’ page from the Help menu. This should show something like:

RX Plug-in

File name: /usr/local/lib/netscape/plugins/

X Remote Activation Plug-in

Mime Type Description Suffixes Enabled
application/x-rx X Remote Activation Plug-in xrx Yes

Once correctly configured, the web browser will activate the RX Plug-in whenever you retrieve any document of the MIME type application/x-rx.


The RX Plug-in looks for resources associated with the widget netscape.Navigator (class Netscape.TopLevelShell) and understands the following resource names and classes:
xrxHasFirewallProxy (
class XrxHasFirewallProxy)

Specifies whether an X server firewall proxy (see xfwp) is running and should be used. Default is ‘‘False.’’ The X firewall proxy uses the X Security Extension and this extension will only allow clients to connect to the X server if host-based authentication is turned on. See xfwp(1) for more information.

xrxInternalWebServers (class XrxInternalWebServers)

The web servers for which the X server firewall proxy should not be used (only relevant when xrxHasFirewallProxy is ‘‘True’’). Its value is a comma separated list of mask/value pairs to be used to filter internal web servers, based on their address. The mask part specifies which segments of the address are to be considered and the value part specifies what the result should match. For instance the following list:,

matches the address sets: 198.112.45.* and 198.112.46.*. More precisely, the test is (address & mask) == value.

xrxFastWebServers (class XrxFastWebServers)

The web servers for which LBX should not be used. The resource value is a list of address mask/value pairs, as previously described.

xrxTrustedWebServers (class XrxTrustedWebServers)

The web servers from which remote applications should be run as trusted clients. The default is to run remote applications as untrusted clients. The resource value is a list of address mask/value pairs, as previously described.


If the RX document requests X-UI-LBX service and the default X server does not advertise the LBX extension, the RX Plug-in will look for the environment variable ‘‘XREALDISPLAY’’ to get a second address for your X server and look for the LBX extension there. When running your browser through lbxproxy you will need to set XREALDISPLAY to the actual address of your server if you wish remote applications to be able to use LBX across the Internet.

If the RX document requests XPRINT service, RX Plug-in looks for the variable ‘‘XPRINTER’’ to get the printer name and X Print server address to use. If the server address is not specified as part of XPRINTER, RX Plug-in uses the first one specified through the variable ‘‘XPSERVERLIST’’ when it is set. When it is not RX Plug-in then tries to use the video server as the print server. If the printer name is not specified via XPRINTER, RX Plug-in looks for it in the variables ‘‘PDPRINTER’’, then ‘‘LPDEST’’, and finally ‘‘PRINTER’’,

Finally, if you are using a firewall proxy, RX Plug-in will look for ‘‘PROXY_MANAGER’’ to get the address of your proxy manager (see proxymngr). When not specified it will use ":6500" as the default.


When an authorization key is created for a remote application to use the X Print service, the RX Plug-in has to create the key with an infinite timeout since nobody knows when the application will actually connect to the X Print server. It then revokes the key when its instance is destroyed (that is when you go to another page). However, if the Plug-in does not get destroyed properly, which happens when the browser dies unexpectedly, the print authorization key will never get revoked.


xrx (1), xfwp (1), lbxproxy (1), proxymngr (1), The RX Document specification


Arnaud Le Hors and Kaleb Keithley, X Consortium

More Linux Commands

mvgetnstr(3ncurses) - accept character strings from curses t
The function getstr is equivalent to a series of calls to getch, until a newline or carriage return is received (the terminating character is not included in th

ycp(3pm) - a Perl module for parsing and writing the YaST2 C
PerlYCPValue is a convention for storing a YCP value in a Perl variable. "ParseYcp" parses YCP string representation into PerlYCPValues. A PerlYCPValue canno...

udisks(8) Disk Manager (Administration - Linux man page)....
udisks provides interfaces to enumerate and perform operations on disks and storage devices. Any application (including unprivileged ones) can access the udisks

ExtUtils::MM_MacOS(3pm) - once produced Makefiles for MacOS
Once upon a time, MakeMaker could produce an approximation of a correct Makefile on MacOS Classic (MacPerl). Due to a lack of maintainers, this fell out of sync

lrand48(3) - generate uniformly distributed pseudo-random nu
These functions generate pseudo-random numbers using the linear congruential algorithm and 48-bit integer arithmetic. The drand48() and erand48() functions retu

clone2(2) - create a child process - Linux manual page......
clone() creates a new process, in a manner similar to fork(2). This page describes both the glibc clone() wrapper function and the underlying system call on whi

ttk_scale(n) Create and manipulate a scale widget (ManPage)
A ttk::scale widget is typically used to control the numeric value of a linked variable that varies uniformly over some range. A scale displays a slider that ca

gluNextContour(3gl) - mark the beginning of another contour
gluNextContour is used in describing polygons with multiple contours. After the first contour has been described through a series of gluTessVertex calls, a gluN

__malloc_hook(3) - malloc debugging variables (Man Page)....
The GNU C library lets you modify the behavior of malloc(3), realloc(3), and free(3) by specifying appropriate hook functions. You can use these hooks to help y

XF86VidModeModModeLine(3) - Extension library for the XFree8
These functions provide an interface to the server extension XFree86-VidModeExtension which allows the video modes to be queried and adjusted dynamically and mo

waddch(3ncurses) - add a character (with attributes) to a cu
The addch, waddch, mvaddch and mvwaddch routines put the character ch into the given window at its current window position, which is then advanced. They are ana

showconsolefont(8) - Show the current EGA/VGA console screen
The showconsolefont command outputs the current console font to stdout. The option -v prints additional information, while the option -V prints the program vers

We can't live, work or learn in freedom unless the software we use is free.