X Window System, Version 11, Release 3

X11R3 was the third 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/X11R3/.


Substantial progress has been made in improving the robustness and general usability of the sample server, libraries, and applications. Many bugs have been fixed, support for several new platforms has been added, and backing store and save-unders have been implemented. No incompatible changes have been made to either the core Protocol or to the Xlib programming library.

Several changes have been made to the X Toolkit Intrinsics that will require minor additions to widget class records. Professionally designed font families from Adobe Systems, Inc. and Digital Equipment Corporation, and from Bitstream, Inc. have replaced the chaotic collection that was shipped in the previous releases.

This may require some minor adjustments of user preferences files. Fonts are no longer named according to the files in which they are stored; instead, the server reads a table out of each directory that specifies in which file to look for each font. In addition, support for wildcarding and aliasing font names has been added.

Since the last release, the X Consortium has added the following specifications to the X standard:

  • X Toolkit Intrinsics

    The X Toolkit Intrinsics as specified in the document X Toolkit Intrinsics - C Language Interface have been adopted as a non-exclusive, required standard for toolkit development. Any vendor that ships Xlib is now expected to provide Xt as well. Vendors are free to develop and ship alternative toolkits, but they if they ship Xlib, they should also ship Xt. Applications developers should note that this specification does not include a widget set.

  • BDF Font File Format

    The Bitmap Distribution Format (BDF) as specified in the document Bitmap Distribution Format Format 2.1 has been adopted as a non-exclusive, required standard for font file interchange. Any vendor that ships an X Window System server is expected to provide a way of translating BDF fonts into the appropriate server-specific format.

To avoid conflict with Version 10 applications, all C language source code is expected to use the prefix X11/ when including header files as well as use the library name libX11.a or the loader option -lX11 when linking.

In addition, UNIX programs are expected to use the command line options -display host:dpy and -geometry geometryspec in place of the obsolete host:dpy or =geometryspec formats. Applications that ignore these guidelines will no longer function properly with this release.

Font support in the sample server has been improved in several ways:

  • font names different from file names

    A font's name is now determined by the contents of the property named FONT rather than the name of the file in which it is stored. A new utility named mkfontdir is used to scan the fonts in a directory and build a database listing each font name and the file in which it is stored. The server then uses this database when looking for fonts in a given directory.

  • new font naming scheme

    A new convention for uniquely naming fonts of any style, resolution, and size is now used for all of the new core fonts.

  • wildcarding in font names

    The sample server now supports wildcard characters in font names (such as would be given on a command line or in a resource database). This makes specifying fonts which use the new naming scheme much easier. This behavior is allowed by the Protocol but is not guarranteed in other servers.

  • font name aliasing

    Font directories may now contain a list of font name synonyms which may be used as alternate names for existing fonts. This list is stored in the file fonts.alias and is read whenever the font database is scanned by the server.

  • new fonts

    Adobe Systems, Inc. and Digital Equipment Corporation have jointly donated 5 families of fonts (Courier, Times, Helvetica, New Century Schoolbook, and Symbol) in a variety of sizes, styles and weights. Bitstream, Inc. has donated its Charter font family in the same sizes, styles and weights. Most of the fonts that were shipped in previous releases have been moved to the user-contributed distribution, and all core clients have been converted to use the new fonts. Applications developers and general users are very strongly urged to use the new fonts.

This release should build and install on machines running the following operating systems: 4.3+tahoe, Ultrix, SunOS, HP-UX, Domain/IX, A/UX, and UNICOS, and AOS 4.3. See any README files in the appropriate server/ddx/ directories or *.macros files in util/imake.includes/ for details.

What's New in this Release

The primary focus of this release has been to fix bugs in the server and in the base programming libraries. In addition, several key features have been added so that this release can provide a clean, sturdy foundation for developing applications.

Changes to the core distribution

The following additions, deletions, and modifications have been made to the software in the core distribution. Users of the old fonts will need to edit their resources files. Widget writers will need to following the instructions in the document Converting Widgets from X11 Release 2 to X11 Release 3.

  • many, many bugs fixed

    A large number of bugs have been fixed in the server, the libraries, and the clients. Many parts of the sample server that were broken in the previous release have been fixed. In particular, ink metrics in fonts have been fixed; client errors in computing character sizes will now be easy to spot.

  • build configuration simplified

    The configuration templates in util/imake.includes have been restructured to make per-server and per-site changes easier to make. A README file in that directory now describes each of the parameters that may be set and site-specific changes have been isolated in a new file named site.def. The template file Imake.tmpl should never need to be modified.

  • new servers

    New support has been added to the sample server for the following platforms: Parallax video graphics processor for Suns and Vaxes, and Apple Macintosh II under A/UX.

  • new fonts

    Adobe Systems, Inc. and Digital Equipment Corporation have jointly donated BDF font files for the Courier, Times, Helvetica, New Century Schoolbook, and Symbol families at 8, 10, 12, 14, 18, and 24 point sizes, Roman and Italic or Oblique styles, medium and bold weights, for 75 dot per inch monitors.

    Bitstream, Inc. has donated BDF font files for its Charter family at the same sizes, styles, and weights for both 75 and 100 dpi monitors. Both donations use the ISO Latin-1 character set.

    All of the core clients have been changed to use the new fonts. The fonts that were shipped with previous releases have been moved to the user-contributed distribution (except for 6x10, 6x12, 6x13, 8x13, 8x13bold, and 9x15).

  • font name wildcarding

    The sample server now accepts the same wildcard characters in the OpenFont request as in the ListFonts request. This is very useful for refering to fonts with very long names, such as those in the new font sets. Users are encouraged to carefully select wildcarded names so that they will work properly on monitors with different resolutions (for example, when specifying a size, use a wild card for the pixel size, but specify the point size). Note that this behavior is allowed by the Protocol, but is not required of other servers.

  • font names separated from file names

    Font names are no longer tied to the names of the files in which they are stored. Instead, the name of the font is taken from the FONT property in the font data. A script for generating the appropriate font name from the other properties in a font file may be found in util/scripts/fontname.sh. The sample server no longer scans font directories, but rather looks in a database created by the mkfontdir program.

  • font name aliases support

    The sample server now supports multiple names for a single font. These are stored in a file named fonts.alias in each font directory and may refer to any font. This is very useful for providing collections of symbolic names for fonts.

  • BDF font format now a standard

    The X Consortium has adopted the BDF font format as a non-exclusive standard. Server vendors are now expected to provide a program for converting BDF files to whatever format is used by their server. The sample server font compiler has been renamed bdftosnf and has been fixed to properly generate ink metrics for terminal emulator fonts.

  • bdftosnf and showsnf installed

    The bdftosnf and showsnf utilities are now installed for public use.

  • definition of wide arcs changed

    The definition of wide arcs has been fixed to be a brush centered on and normal to the path described by the arc. The old definition used to draw arcs of non-uniform width.

  • backing store and save-unders supported

    The sample server now supports backing store and save-unders. The backing store hooks which were unused in the previous release have changed; server developers should study the new interfaces.

  • X Toolkit Intrinsics Standard Adopted

    The X Toolkit Intrinsics (frequently refered to as Xt) have been reviewed by the X Consortium and are now part of the X standard. Any vendor that ships Xlib is expected to ship Xt. Some interface and widget class record changes have been made since the previous release. Sources for the document Converting Widgets from X11 Release 2 to X11 Release 3 may be found in doc/tutorials/r3widgets.ms. Applications that used the proper interfaces and data types should simply recompile and work. However, application writers should also read the conversion tutorial as certain programming errors that might not have been visible in previous releases will become noticable in this release. Note that the Xt standard does not include a widget set.

  • Athena widget enhancements

    A new List widget has been added the Athena widget set. A prototype menu widget that will eventually be added to this set is available in the user-contributed distribution in the directory contrib/widgets/MenuBox/. The Athena VendorShell widget now supports specifying icon pixmaps as resources. The text widget now supports selections.

  • new Miscellaneous Utilities library

    A library named Xmu containing miscellaneous utilities to support the MIT clients has been added. It currently has a variety of X Toolkit converters as well as routines for displaying Xlib-like XError messages, drawing rounded rectangles, converting ISO Latin-1 strings to lower case, and reading bitmap files. It is not part of the X standard and is expected to be a repository for generally useful routines. It only uses external interfaces to the standard libraries and should be portable to vendor-supplied platforms.

  • Xlib support for 64bit architectures

    The internals of Xlib have been reworked to support 64 bit machine architectures and Cray supercomputers running UNICOS in particular. Extension writers should look at the new internal interfaces for sending and receiving data.

  • Xlib Property packing semantics clarified

    The XGetWindowProperty and XChangeProperty now take care of converting between host data objects (e.g. unsigned char, unsigned short, and unsigned long) and network data objects (e.g. CARD8, CARD16, and CARD32). Applications which store data in or retreive data from properties should also use arrays of host data objects instead of structures.

  • new routines in Xlib

    The following routines have been added to Xlib for accessing data from opaque structures: XMaxRequestSize, XResourceManagerString, XDisplayMotionBufferSize, XDisplayKeycodes, and XVisualIDFromVisual.

  • new Display Manager xdm

    A new, portable system for running X and starting user sessions has been added to this release. This Display Manager, called xdm, provides a convenient way for sites to run X automatically. Site administrators may easily tailor it provide an wide variety of environments. This new utility superceeds xterm -L as well as many uses of xinit. Future releases will concentrate on providing even nicer user interfaces.

  • new utilities

    Several new utility programs have been provided: xdpyinfo for printing out information about a particular display, xev for printing out the contents of various events, xlswins for listing the windows on a display, xkill for getting rid of unwanted windows, xmag for enlarging parts of the screen, xclipboard for collecting text selections, and xcutsel for converting between cut buffers and selections.

  • xman now supported

    The xman program is now part of the core distribution. Many of the bugs which causes poor performance on some servers have been fixed, making this program one of the prettier demonstrations of the new fonts.

  • new demos

    Two new demos have been added: xeyes and maze.

  • new features in xterm

    The os-specific portion of xterm has been substantially rewritten and now works properly on both BSD and System V derived versions of UNIX. The full translation manager rebinding facilities are supported for both keyboard and VT102-mode pointer input. This includes arbitrary binding of strings to keys (including keys that bind other keys!), making, inserting, and transmitting selections, and popping up of menus. Reverse video has been substantially improved. Several bugs in Tektronix graphics input mode have been fixed. Function keys can now be set to generate Sun keyboard escape sequences instead of ANSI escape sequences. Default settings for various terminal modes are now supported.

  • rewrite of x10tox11

    The x10tox11 protocol translator for running X10 binary programs on X11 displays has been completely rewritten. It should be substantially faster and give better results for a larger number of programs.

  • font path support in xset

    The xset utility now supports adding to and deleting from the font directory list. A new keyword rehash has been added to the fp option to force the server to reread any changed font directories (this is useful after running mkfontdir in a directory).

  • pointer map support in xmodmap

    The xmodmap utility has been enhanced to support changing and displaying the pointer map. A new option for displaying the keyboard map has replaced the old xprkbd program.

  • new coversion utilities for bitmap files

    Two new programs, bmtoa and atobm, have been provided for converting bitmap to and from plain text. They are very useful for generating pictures for including in documents and for creating bitmaps from arbitrary arrays of characters. The pbm package in the user-contributed distribution contains a much wider range of tools.

  • BSD compress sources supplied

    The sources for the BSD compress program are now included for those sites that do not already have this program. Starting with this release, some documentation and bitmap images in the user-contributed distribution have been compressed to save space.

  • public domain cpp supplied

    The sources for a C preprocessor based on Martin Minow's public domain DECUS cpp are now included for sites whose native cpp cannot handle the server and the X Toolkit. This cpp must be built and installed by A/UX 1.0 users.

  • substitute soelim

    A version of the soelim utility for removing .so filename directives from troff sources has been provided for systems that do not have one.

  • sample copyright notice ./COPYRIGHTS

    The file 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 ./STANDARDS

    The file STANDARDS in the top level directory contains a description of what is and is not part of the X Consortium's standard for the X Window System.

Changes to the user-contributed distribution

The user-contributed distribution is now arranged in a hierarchy similar to the core distribution. Generally useful programs are in clients, visually interesting programs are in demos, amusements are in games, server and client extensions are in extensions, server code that has not been integrated into the sample server is in server, font conversion utilities and BDF files are in fonts, native libraries for building applications are in toolkits, X Toolkit widget sets are in widgets, and several popular window managers are in windowmgr.

  • old XMenu library removed

    The old XMenu library has been removed from this release. Applications in need of menus should use a toolkit. A prototype X Toolkit menu widget is available in the contrib/widgets/MenuBox/ directory.

  • new clients

    A variety of new programs have been added to the clients subdirectory:

    • a plotting package (splot),
    • a magnifying application (spy),
    • more previewers (xdvi, xpic, and xtroff),
    • programs for querying the user (alteryorngs, xmessage, and xstring),
    • a utility for looking up words from the SRI-NIC dictionary server (xwebster),
    • versions of xpr for other devices (hpxpr and xipr),
    • several programs for configuring your session (x11startup, xbgsun, xdvorak, xplaces, xpref, and xtools),
    • several tools for displaying images (pbm and xim),
    • and a drawing package (xfig).
  • new demos

    Several striking programs have been added to the demos directory:

    • a multi-screen version of ico (psycho),
    • a utility for creating interstellar backgrounds (spaceout),
    • a random slither program (worm),
    • a program for displaying the phase of the moon (xphoon), and
    • a nasty program for demonstrating what ``going technicolor'' really means (xrotmap).
  • fonts

    A random collection of public domain fonts from the Berkeley Mac Users Group and the INFO-MAC archives have been contributed. BDF versions of many of the X10 fonts have been included as well as the old X11 fonts.

  • games

    Several games have been contributed since the last release: the ancient and honorable mazewar, the ubiquitous tower of xhanoi, two cards games (xmille and xsol), yet another xpuzzle, a version of the video arcade game qix, and the infamous xtrek.

  • toolkits

    New versions of InterViews, Xr11, and andrew along with a prototype implementation of CLUE Common Lisp User Interface Environment are available in the toolkits directory.

  • widgets

    The HP and Sony widget sets, along with a collection of random, interesting widgets may be found in the widgets subdirectory. Since the HP and Sony widgets are temporarily based on the R2 Intrinsics, a version of Xt compatible with the previous release is provided in the contrib/widgets/Xhp/Xt/ subdirectory.

  • windowmgrs

    Relatively recent versions of the awm, rtl, twm and wm window managers are available in the windowmgrs subdirectory. Their interoperability with R3 core clients has not been tested.

We hope you enjoy Release 3.

Copyright © 1988 by the Massachusetts Institute of Technology .

Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, 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.

Ultrix and Ultrix-32 are trademarks of Digital Equipment Corporation; SunOS is a trademark of Sun Microsystems, Inc.; HP-UX is a trademark of the Hewlett-Packard Company; Domain is a trademark of Apollo Computer; PostScript is a trademark of Adobe Systems, Inc.; A/UX is a trademark of Apple Computer; UNICOS is a trademark of Cray Research; AOS is a trademark of the IBM Corporation; UNIX is a registered trademark of AT&T Bell Laboratories; Times, Helvetica, and New Century Schoolbook are registered trademarks of Linotype; and Charter is a registered trademark of Bitstream, Inc.