# X Window System, Version 11, Release 4 X11R4 was the fourth release of the X Window System, Version 11 from MIT. It was released in , with the following changes excerpted from the release notes. The sources are available for download for historical reference from http://www.x.org/releases/X11R4/. [[!toc levels=4 startlevel=2]] ## Overview Substantial progress has been made in optimizing the sample server, window manager, and programming libraries. In addition, major improvements to the user interface of several of the key applications (in particular, *xmh*, *twm*, *xman*, and *xterm*) should make release noticably nicer to use. Sample implementations of the various new Consortium Standards are included as well as prototype implementations of several efforts currently under development. No incompatible changes have been made to either the core Protocol or to the *Xlib* programming library. The *Xt Intrinsics* should be source compatible with the previous release. Changes have been made to the *Xaw* widget set, but a configuration option for providing backwards compatibility interfaces is available. Several new sets of fonts have been added: a new fixed width family of fonts, a Kanji and Kana font, the Lucida family from Bigelow & Holmes and Sun Microsystems, a terminal emulator font from Digital Equipment Corporation, and 100 dots-per-inch (dpi) versions of all 75dpi fonts. Since the last release, the X Consortium has made significant additions to the Xlib standard (see `mit/doc/Xlib/R4Xlib.tbl.ms`) and to the X Toolkit Intrinsics standard, and has approved the following specifications as new standards: * *Inter-Client Communications Conventions Manual* The Inter-Client Communications Conventions Manual (ICCCM, whose specification may be found in `mit/doc/ICCCM/icccm.tbl.ms`) establishes a set of conventions that allow clients to cooperate in the areas of selections, cut buffers, window management, session management, and resources. Programming interfaces have been added to both *Xlib* and the *Xt Intrinsics* to simplify the task of writing compliant applications. The core *twm* window manager, as well as the user-contributed *gwm*, *olwm*, and *tekwm* window managers, is intended to be be compliant. * *X11 Non-rectangular Window Shape Extension* The SHAPE extension (whose specification may be found in `mit/doc/extensions/shape.ms`) provides non-rectangular, disjoint windows. Samples of its use may be found in the *Xaw* **Command** and **Mailbox** widgets, in the *twm* window manager, and in the *oclock* and *xeyes* clients. * *X Display Manager Control Protocol* The X Display Manager Control Protocol (XDMCP) (whose specification may be found in `mit/doc/XDMCP/xdmcp.ms`) is a datagram-based protocol for managing remote displays (particularly X terminals) in a network. Implementations of the various elements of the protocol are provided in the sample server and the *xdm* display manager. * *Compound Text Encoding* Compound Text (whose specification may be found in `mit/doc/CTEXT/ctext.tbl.ms`) is an interchange format for multiple character set data such as multi-lingual text. It is based on ISO standards for encoding and combining characters and is intended to be used in the following contexts: inter-client communication using selections, window properties, and resources. Routines for parsing Compound Text may be found in `mit/lib/Xmu/Xct.c`. * *X Logical Font Description Conventions* The X Logical Font Description Conventions (XLFD, whose specification may be found in `mit/doc/XLFD/xlfd.tbl.ms`) are a set of guidelines for naming fonts and font properties such that fonts can be uniquely named and queried in a consistent manner by applications. All of the text fonts in the core distribution follow the XLFD conventions. In addition, the new *xfontsel* program can be used to view and select fonts that have XLFD names. This release been built on the following operating systems: Ultrix 3.1 (both VAX and RISC), SunOS 4.0.3, HP-UX 6.5, Domain/OS 10.1, A/UX 1.1, AIX RT-2.2 and PS/2-1.1, AOS-4.3, UTEK 4.0, NEWS-OS 3.2, UNICOS 5.0.1, and UNIX System V, Release 3.2 (AT&T 6386 WGS). It should work correctly, or with a minor amount of work, on a variety of other systems as well. ## What's New in this Release The primary focus of this release has been optimization of the server and improvements in the key applications. ### Changes to the core distribution The following additions, deletions, and modifications have been made to the software in the core distribution. Widget writers should read the new X Toolkit Intrinsics specification. Application developers who use the Athena Widget Set should read the list of changes in the file `mit/lib/Xaw/CHANGES` and the conversion document `mit/doc/Xaw/ConvertToR4`, and read the new *Athena Widget Set* documentation. #### many, many bugs fixed A large number of bugs have been fixed in the server, the libraries, and the clients. Servers are now robust enough that they have been known to run for more than 3 months without experiencing any problems. The server is now much stricter about disallowing extraneous bits in masks (particularly the *do_not_propagate_mask* window attribute), causing some improperly coded applications to generate protocol errors. A new, non-standard extension is provided (see *xset bc*) to enable backwards-compatibility for broken clients. #### server optimized, data space reduced A substantial number of optimizations to both the device-independent (dix) and device-dependent (ddx) code. The monochrome (mfb) and color (cfb) frame buffer code is now capable of driving many displays at memory speeds. In addition, the amount of heap memory that is used by the server has been reduced by roughly two-thirds since the last release. #### SHAPE extension Non-rectangular windows are now supported by the new SHAPE extension. Round windows such as round clocks (see *oclock*), oval buttons (see *xmh* and *xcalc*), and shaped desktop icons (see *xbiff*) are now possible. This extension is a Consortium standard. #### prototype extensions Prototypes of two extensions that are currently under development are provided in this release. The *Multi-Buffering* extension provides the ability to do simple animation (see *ico -dbl*), and the *XInputExtension* provides access to alternate input devices. These extensions are **draft** Consortium standards and are subject to change. #### build configuration moved and simplified The configuration files have been moved to `mit/config/` and have been rewritten to make better use of preprocessor symbols and macros. Support for System V with and without the STREAMS transport layers has been added. #### new servers New support has been added to the sample server for the following platforms: Sun *cgthree* and *cgsix* frame buffers, Digital DECstation frame buffers, Tektronix 4319 frame buffer, and all HP framebuffers. Reorganizations within the machine-independent (mi) graphics code make porting to new platforms even easier than it was before. #### security hooks Programming hooks in *Xlib* and the server are provided for passing authorization information at connection setup time. A sample implementation (called MIT-MAGIC-COOKIE-1) based on secret tokens is used by *xdm* and the server to provide greater security than the host-based mechanism. #### new fonts Adobe Systems and Digital Equipment Corporation have jointly donated 100dpi versions of the 75dpi fonts that they provided in the last release. In addition, Digital has donated a set of terminal emulator fonts. Bigelow & Holmes and Sun Microsystems have jointly donated a collection of fonts from the *Lucida* family. Sun has also donated a set of OPEN LOOK glyph fonts. Sony has donated a set of Kanji and Kana fonts, and several individuals have donated additional fixed-width fonts. #### ICCCM support *Xlib*, the *X Toolkit Intrinsics*, *twm*, and various clients are now hoped to be ICCCM-compliant. The following window managers in *contrib/windowmgrs/* also claim to be compliant: *gwm*, *olwm*, and *tekwm*. #### new rgb color database A new color database containing many new colors, gray scales, and color spectra tuned for some of the common monitors is included. #### function prototypes ANSI C function prototypes have been added to the \fIXlib\fP and *Xt* header files; the include files should now also be usable from C++ without modification. The *Xlib* prototypes are enabled by default (on systems that support them), while the *Xt* prototypes are disabled (they were added too late in our release cycle). Picky compilers (such as *hc*) will now catch many type incompatibilities. #### shared libraries Support for SunOS-style shared libraries has been added to *Xlib*, *Xt*, *Xaw*, and *Xmu*. This substantially reduces the amount of disk spaced used for executable programs. #### new Xt Intrinsics The *X Toolkit Intrinsics* now provide windowless objects, varargs-style interfaces, better caching of resources, fallback resources, locale-driven finding of data files. #### Athena widget enhancements Most of the *Xaw* library has been rewritten to substantially improve functionality, robustness, and performance. New **SimpleMenu** and **MenuButton** widgets support pop-up and pull-down menus. The **Text** widget has been rewritten and is now quite usable for general editing. The **VPaned** widget has been generalized to include horizontal paning (and is now called **Paned**). The **Label** widget now supports multi-line labels. A new **Toggle** widget has been provided for implementing radio-buttons. Finally, the **Command** widget has been enhanced to use the SHAPE extension to provide true round buttons. #### standard colormap routines A new set of routines for manipulating standard colormaps (see the *XStandardColormap* structure in the *Xlib* documentation) has been added to the *Xmu* library. The *xstdcmap* client uses these routines to create standard colormaps. #### additional converters A variety of new converters have been added to *Xmu*. In addition, multi-display programs should now be able to use these converters (and might find the utilities for managing the multiple display data structures useful). #### new window manager The *uwm* window manager has been moved from the core distribution to the user-contributed distribution. A substantially rewritten version of the *twm* window manager is now supported. #### improvements in xdm The *xdm* display manager has been rewritten to reduce the number of processes it requires and to make it much more robust. This is now the only supported means for starting the server at boot time (the *-L* command line option has been removed from *xterm*). #### new utilities Several new utility programs have been provided: *appres* for determining which resources are loaded into particular applications, *listres* for printing the resource hierarchy for a widget, *oclock* for people who like truly round clocks, *xauth* for manipulating authorization files, *xditview* for previewing *ditroff* files, *xfontsel* for interactively selecting fonts, *xlsatoms* for determining the value of various atoms, *xlsclients* for listing the clients currenting being run, and *xstdcmap* for manipulating standard colormaps. #### new demos A new demo of how various GC attributes (*xgc*) affect what is displayed on the screen is provided. #### new features in *xterm* The following features have been added to *xterm*: 8-bit input and output, on-the-fly changing of the current font through escape sequences and a new menu, new resources for controlling whether or not synthetic key events are ignored, increased portability, and improved menus using the new Athena **SimpleMenu** widget. #### new CLX and documentation A substantially improved version of CLX, the Common Lisp interface to X, is provided. In addition, comprehensive documentation of the CLX interface is provided, courtesy of Texas Instruments. #### sample copyright notice in `mit/COPYRIGHTS` The file `mit/COPYRIGHTS` in the top level directory contains a sample copyright notice recommended for people who are interested in contributing software to the public releases. #### X Standards in `mit/Standards.man` The *XStandards(1)* manual page contains a description of what is and is not an MIT X Consortium standard for the X Window System. For further information about the X Consortium, see the manual page *XConsortium(1)*. ### Highlights of the User-Contributed Distribution The user-contributed distribution is set up in a tree very similar to that used by the core distribution. New versions of several packages are available, and a variety of new donations have been received. Since this is **not** a superset of the previous user-contributed tape, sites are encouraged to save any R3 user-contributed software that they use. Note that this distribution is of no relation to the */contrib* directory available for anonymous ftp on *expo.lcs.mit.edu*. #### XView and olwm The *XView* toolkit and an ICCCM-compliant OPEN LOOK window manager from Sun Microsystems have been added to this release. This toolkit implements the OPEN LOOK graphical user interface guidelines and the SunView application programming interface. #### Gwm The *Generic Window Manager* from Groupe Bull has been added. Unlike other window managers, *gwm* provides a programming language for tailoring its user interface. It is believed to be ICCCM-compliant. #### Tektronix Window Manager The *Tektronix Window Manager*, derived from the *awm* window manager in the previous release, is also new to this release. Like *gwm* and *olwm*, *tekwm* is believed to be ICCCM-compliant. #### Sigma toolkit and window manager The Sigma Project has donated its Sigma User Interface Toolkit (SUIT) and window manager (*m_swm*). #### toolkits updated New versions of *InterViews*, *Xw*, *andrew*, and *clue* are included. New toolkits include: *xgks* and *Xcu*. #### Serpent UIMS The *Serpent* user interface management system is included in this release. #### new libraries Several libraries for doing Japanese input (see *XJ* and *Wnn*), multi-language input (see *mlx* and *im*), and compose processing (see *XCompose*) are provided. #### new programming examples The examples from the O'Reilly and Associates books on *Xlib* and *Xt* have been provided. #### new demos A variety of eye-catching demos have been added. #### new clients A number of useful packages have been added: image analysis (see *NCSA* and *img*), multi-language libraries and utilities (see *kinput*, *kterm*, and *mlxterm*), a user interface prototyping system (see *winterp*), plus improved versions of *xfed*, *xcolors*, *xpic*, *xplaces*, *xtek* (formerly *texx*), *xtroff*, and *xwebster*. #### games A variety of new games have been contributed since the new release.

Copyright © 1989 by the Massachusetts Institute of Technology .

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of M.I.T. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. M.I.T. makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.